[BusyBox] How to get parameter httpd.?
Simon Poole
simon.armlinux at themalago.net
Wed May 11 09:19:04 UTC 2005
Martijn de Gouw wrote:
> function ParseQueryString {
> if [ -n "$1" ]; then
> for args in `echo "$1" | tr "&" " "`
> do
> param=`echo "$args" | cut -d "=" -f 1`
> value=`echo "$args" | cut -d "=" -f 2`
> eval "export FORM_${param}=${value}"
> done
> fi
> }
>
I do something very similar, but also use a couple of little sed tricks
to make it a bit more secure. This works in Busybox ash and uses
Busybox httpd for URL decoding:
ParseQueryString () {
SAFE_STRING=$( echo "$1" | sed -e 's/"/\\"/g' )
IFS="&"
showpackagelist=false
for param in $SAFE_STRING ; do
decparam=$(httpd -d "$param")
param_name=$(echo "${decparam%%=*}" | sed
's/[^[:alnum:]_]/_/g')
param_value=$(echo "${decparam#*=}" | sed -e
's/\\/\\\\/g' -e 's/"/\\"/g' )
eval "WWW_${param_name}=\"${param_value}\""
done
unset IFS
}
More information about the busybox
mailing list