Re: Automatic proxy configuration in dispatcher.d



Hello Jose Moyano,

"sudo" only works if run from a valid terminal. This may be the problem with your script.

2011/9/21 José Moyano <josehmoyano gmail com>
Hi everybody,

I write the following script to make network manager dispatcher to
change the proxy automagically based on site IP.

#!/bin/sh

IF=$1
STATUS=$2

echo "-----------------------------------------------------------------" >> \
   /var/log/autoproxy.log

date >> /var/log/autoproxy.log

echo "Configuring proxy..." >> /var/log/autoproxy.log
NETMASK=<somemask>

if [ -n "`/sbin/ip addr show to $NETMASK`" ]; then
   echo "Address with proxy detected..." >> /var/log/autoproxy.log

   PROXY_HOST="proxy.something.ar"
   PROXY_PORT="8080"

   for user in "jose"
   do
       echo "Setting proxy for user $user" >> /var/log/autoproxy.log

       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf --type string \
           --set /system/http_proxy/host $PROXY_HOST >> \
           /var/log/autoproxy.log

       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf --type int \
           --set /system/http_proxy/port $PROXY_PORT >> \
           /var/log/autoproxy.log

       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf --type bool \
           --set /system/http_proxy/use_same_proxy true >> \
           /var/log/autoproxy.log

       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf --type bool \
           --set /system/http_proxy/use_http_proxy true >> \
           /var/log/autoproxy.log

       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf --type string \
           --set /system/proxy/mode manual >> /var/log/autoproxy.log
   done
else
   echo "The address has no proxy known" >> /var/log/autoproxy.log

   # Clear proxy configuration for all users
   for user in "jose"
   do
       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf \
           --unset /system/http_proxy/host

       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf \
           --unset /system/http_proxy/port

       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf \
           --unset /system/http_proxy/use_same_proxy

       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf \
           --unset /system/http_proxy/use_http_proxy

       /usr/bin/sudo -u $user /usr/bin/gconftool-2 \
           --config-source=xml::/home/$user/.gconf \
           --unset /system/proxy/mode
   done
fi

echo "Proxy configuration done" >> /var/log/autoproxy.log

Funny thing, the script works if executed manually as root. When the
script is executed by network manager dispatcher, the calls to
gconftool-2 do nothing. The script is executed because all the log
printing can be seen in the /var/log/autoproxy.log file. I tried
adding other commands to the script, printing whoami (replies "root")
and everything seems to be fine. However, gconftool-2 has no effect in
the gnome configuration.
Does anyone know what can be the problem?
Thanks in advance!

José.
_______________________________________________
networkmanager-list mailing list
networkmanager-list gnome org
http://mail.gnome.org/mailman/listinfo/networkmanager-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]