source: packages/net/ez-ipupdate/files/ez-ipupdate.hotplug @ 19867

Last change on this file since 19867 was 19867, checked in by thepeople, 6 years ago

add server option, closes #4816

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1NAME=ez-ipupdate
2COMMAND=/usr/sbin/$NAME
3
4case "$ACTION" in
5    ifup|ifdown)
6        cleanup() {
7            [ -e $1 ] && {
8                kill -9 $(cat $1)
9                rm $1
10            }
11        }
12
13        ddns() {
14            local cfg="$1"
15            config_get program $cfg program
16            [ "$program" = "$NAME" ] && {
17                config_get interface $cfg interface
18                [ "$interface" = "$INTERFACE" ] && {
19                    config_get dev "$INTERFACE" ifname
20
21                    config_get enabled $cfg enabled
22                    enabled=${enabled:-1}
23
24                    config_get service  $cfg service
25
26                    config_get pidfile $cfg pidfile
27                    pidfile=${pidfile:-/var/run/$NAME-$service-$dev.pid}
28                           
29                    case "$ACTION" in
30                        ifdown)
31                            cleanup $pidfile
32                            ;;
33                        *)
34                            case "$enabled" in
35                                1|yes|true)
36                                    [ ! -e $pidfile ] && {
37                                        config_get cache $cfg cache
38                                        [ -z "$cache" ] && cache=/tmp/$NAME-$service-$dev.cache
39                                       
40                                        config_get config $cfg config
41                                        [ -z "$config" ] && {
42                                            config=/var/run/$NAME-$service-$dev.conf
43                                            config_get username $cfg username
44                                            config_get password $cfg password
45                                            config_get hostname $cfg hostname
46                                            service=${service:-"dyndns"}
47                                            config_get server   $cfg server
48                                            cat > $config <<EOF
49service-type=$service
50server=$server
51user=$username:$password
52host=$hostname
53cache-file=$cache
54pid-file=$pidfile
55interface=$dev
56quiet
57EOF
58                                        }
59                                       
60                                        $COMMAND -c $config 2>&1 | logger -t $NAME &
61                                    }
62                                    ;;
63                                *)
64                                    cleanup $pidfile
65                                    ;;
66                            esac
67                    esac
68                }
69            }
70        }
71       
72       
73        include /lib/network
74        scan_interfaces
75        config_load ddns
76       
77        config_foreach ddns ddns
78        ;;
79esac
Note: See TracBrowser for help on using the repository browser.