Changeset 10367


Ignore:
Timestamp:
2008-02-03T07:48:15+01:00 (8 years ago)
Author:
nbd
Message:

Here comes the new UCI. Enjoy :)

Location:
trunk/package
Files:
11 added
14 edited
3 moved

Legend:

Unmodified
Added
Removed
  • trunk/package/base-files/files/etc/functions.sh

    r10086 r10367  
    1111_C=0 
    1212NO_EXPORT=1 
     13LOAD_STATE=1 
    1314 
    1415hotplug_dev() { 
     
    2425} 
    2526 
     27config_load() { 
     28        [ -n "$IPKG_INSTROOT" ] && return 0 
     29        uci_load "$@" 
     30} 
     31 
    2632reset_cb() { 
    2733        config_cb() { return 0; } 
     
    2935} 
    3036reset_cb 
     37 
     38package() { 
     39        return 0 
     40} 
    3141 
    3242config () { 
     
    8393                unset $oldvar  
    8494        done 
    85 } 
    86  
    87 config_load() { 
    88         local cfg 
    89         local uci 
    90         local PACKAGE="$1" 
    91  
    92         case "$PACKAGE" in 
    93                 /*)     cfg="$PACKAGE" 
    94                         uci="" 
    95                 ;; 
    96                 *)      cfg="$UCI_ROOT/etc/config/$PACKAGE" 
    97                         uci="/tmp/.uci/${PACKAGE}" 
    98                 ;; 
    99         esac 
    100  
    101         [ -e "$cfg" ] || cfg="" 
    102         [ -e "$uci" ] || uci="" 
    103  
    104         # no config 
    105         [ -z "$cfg" -a -z "$uci" ] && return 1 
    106  
    107         _C=0 
    108         export ${NO_EXPORT:+-n} CONFIG_SECTIONS= 
    109         export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=0 
    110         export ${NO_EXPORT:+-n} CONFIG_SECTION= 
    111  
    112         ${cfg:+. "$cfg"} 
    113         ${uci:+. "$uci"} 
    114          
    115         ${CONFIG_SECTION:+config_cb} 
    11695} 
    11796 
     
    219198} 
    220199 
    221 uci_set_default() { 
    222         local PACKAGE="$1" 
    223         [ -e "/etc/config/$1" ] && return 0 
    224         cat > "/etc/config/$1" 
    225 } 
     200uci_apply_defaults() {( 
     201        cd /etc/uci-defaults || return 0 
     202        files="$(ls)" 
     203        [ -z "$files" ] && return 0 
     204        mkdir -p /tmp/.uci 
     205        for file in $files; do 
     206                ( . "./$(basename $file)" ) && rm -f "$file" 
     207        done 
     208        uci commit 
     209)} 
     210 
     211[ -z "$IPKG_INSTROOT" ] && . /lib/config/uci.sh 
  • trunk/package/base-files/files/etc/hotplug.d/iface/00-netstate

    r8343 r10367  
    11[ ifup = "$ACTION" ] && { 
    2         uci set "/var/state/network.$INTERFACE.up=1" 
     2        uci_set_state network "$INTERFACE" up 1  
    33} 
  • trunk/package/base-files/files/etc/hotplug.d/iface/10-routes

    r9337 r10367  
    6464                include /lib/network 
    6565                scan_interfaces 
    66                 . /var/state/network 
    6766                config_foreach "add_route" route 
    6867                config_foreach "add_route6" route6 
  • trunk/package/base-files/files/etc/init.d/boot

    r9606 r10367  
    3737        mkdir -p /var/lock 
    3838        mkdir -p /var/state 
     39        mkdir -p /tmp/.uci 
     40        chown 0700 /tmp/.uci 
    3941        touch /var/log/wtmp 
    4042        touch /var/log/lastlog 
  • trunk/package/base-files/files/lib/network/config.sh

    r9634 r10367  
    141141        grep "$iface:" /proc/net/dev > /dev/null && \ 
    142142                $DEBUG ifconfig "$iface" ${macaddr:+hw ether "$macaddr"} ${mtu:+mtu $mtu} up 
    143         uci set "/var/state/network.$config.ifname=$iface" 
     143        uci_set_state network "$config" ifname "$iface" 
    144144 
    145145        pidfile="/var/run/$iface.pid" 
  • trunk/package/base-files/files/sbin/ifdown

    r8765 r10367  
    1212} 
    1313 
    14 config_load /var/state/network 
    15  
    1614# remove the interface's network state 
    17 FILE=/var/state/network.$$ 
    18 grep -v "^config_set '$1' " /var/state/network > "$FILE" 
    19 mv "$FILE" /var/state/network 
     15uci_revert_state network "$1" 
    2016 
    2117include /lib/network 
  • trunk/package/base-files/files/sbin/wifi

    r8338 r10367  
    7676        local cfg="$1" 
    7777        local ifname="$2" 
    78         uci set "/var/state/wireless.${cfg}.up=1" 
    79         uci set "/var/state/wireless.${cfg}.ifname=$ifname" 
     78        uci_set_state wireless "$cfg" up 1 
     79        uci_set_state wireless "$cfg" ifname "$ifname" 
    8080} 
    8181 
     
    8383        local cfg="$1" 
    8484        local vifs vif vifstr 
    85         [ -f /var/state/wireless ] || return 
    8685 
     86        uci_revert_state wireless "$cfg" 
    8787        config_get vifs "$cfg" vifs 
    8888        for vif in $vifs; do 
    89                 append vifstr "$vif" "|" 
     89                uci_revert_state wireless "$vif" 
    9090        done 
    91         FILE="/var/state/wireless.$$" 
    92         grep -vE "^config_set '($vifstr)' " /var/state/wireless > "$FILE" 
    93         mv "$FILE" /var/state/wireless 
    9491} 
    9592 
  • trunk/package/base-files/files/usr/share/udhcpc/default.script

    r8765 r10367  
    88hotplug_event() { 
    99        scan_interfaces 
    10         config_load /var/state/network 
    1110        for ifc in $interfaces; do 
    1211                config_get ifname $ifc ifname 
     
    1615                [ "$proto" = "dhcp" ] || continue 
    1716                [ ifup = "$1" ] && { 
    18                         uci set "/var/state/network.$ifc.ipaddr=$ip" 
    19                         uci set "/var/state/network.$ifc.netmask=${subnet:-255.255.255.0}" 
    20                         uci set "/var/state/network.$ifc.dnsdomain=$domain" 
    21                         uci set "/var/state/network.$ifc.dns=$dns" 
    22                         uci set "/var/state/network.$ifc.gateway=$router" 
     17                        uci_set_state network "$ifc" ipaddr "$ip" 
     18                        uci_set_state network "$ifc" netmask "${subnet:-255.255.255.0}" 
     19                        uci_set_state network "$ifc" dnsdomain "$domain" 
     20                        uci_set_state network "$ifc" dns "$dns" 
     21                        uci_set_state network "$ifc" gateway "$router" 
    2322                } 
    2423                env -i ACTION="$1" INTERFACE="$ifc" DEVICE="$ifname" PROTO=dhcp /sbin/hotplug-call iface 
  • trunk/package/dnsmasq/files/dnsmasq.init

    r10216 r10367  
    232232        include /lib/network 
    233233        scan_interfaces 
    234         config_load /var/state/network 
    235234        config_load dhcp 
    236235 
  • trunk/package/iptables/files/firewall.init

    r9503 r10367  
    77        include /lib/network 
    88        scan_interfaces 
    9         config_load /var/state/network 
    109         
    1110        config_get WAN wan ifname 
  • trunk/package/ppp/files/etc/ppp/ip-down

    r7643 r10367  
    1111 
    1212        # remove the interface's network state 
    13         FILE=/var/state/network.$$ 
    14         grep -v "^config_set '$PPP_IPPARAM' " /var/state/network > "$FILE" 
    15         mv "$FILE" /var/state/network 
     13        uci_revert_state network "$PPP_IPPARAM" 
    1614} 
    1715 
  • trunk/package/ppp/files/etc/ppp/ip-up

    r7643 r10367  
    99[ -z "$PPP_IPPARAM" ] || env -i ACTION="ifup" INTERFACE="$PPP_IPPARAM" DEVICE="$PPP_IFACE" PROTO=ppp /sbin/hotplug-call "iface" 
    1010[ -z "$PPP_IPPARAM" -o -z "$PPP_LOCAL" ] || { 
    11         uci set "/var/state/network.$PPP_IPPARAM.ipaddr=$PPP_LOCAL" 
    12         uci set "/var/state/network.$PPP_IPPARAM.gateway=$PPP_REMOTE" 
     11        uci_set_state network "$PPP_IPPARAM" ipaddr "$PPP_LOCAL" 
     12        uci_set_state network "$PPP_IPPARAM" gateway "$PPP_REMOTE" 
    1313} 
    1414 
  • trunk/package/pptp/files/pptp.sh

    r8552 r10367  
    2424        scan_ppp "$config" 
    2525        config_get ifname "$config" ifname 
    26         uci set "/var/state/network.$config.ifname=$ifname" 
     26        uci_set_state network "$config" ifname "$ifname" 
    2727 
    2828        config_get mtu "$cfg" mtu 
  • trunk/package/qos-scripts/files/usr/lib/qos/generate.sh

    r8860 r10367  
    1818                include /lib/network 
    1919                scan_interfaces 
    20                 config_load /var/state/network 
    2120                config_get "$1" ifname 
    2221        )} 
  • trunk/package/uci/files/uci-sh/lib/config/uci.awk

    r10366 r10367  
    8181                delete l 
    8282                rest = line 
    83                 while (length(rest)) { 
     83                while (length(rest)) { 
    8484                        if (match(rest, /[ \t\"]+/)) { 
    8585                                if (RSTART>1) { 
     
    103103                } 
    104104                line = lines[n] 
    105                  
     105 
    106106                # when a command wants to set a config value for the current 
    107107                # section and a blank line is encountered before an option with 
     
    129129                                        gsub("^" section ".", "", update) 
    130130                                        cfg = cfg uci_cmd2option(update) "\n" 
    131                                          
     131 
    132132                                        update = "-" section "." update 
    133                                 }  
     133                                } 
    134134                                if (flag!=0) cfg = cfg "\n" 
    135135                        } 
    136                          
     136 
    137137                        remove = "" 
    138138                        section = l[3] 
    139139                        if (!length(section)) { 
    140140                                section = "cfg" scnt 
    141                         }        
     141                        } 
    142142                        scnt++ 
    143143                        if (update == "-" section) { 
     
    148148                        } else if (update ~ "^&" section "=") { 
    149149                                gsub("^&" section "=", "", update) 
    150                                 line = uci_cmd2config(l[2],update)  
     150                                line = uci_cmd2config(l[2],update) 
    151151                                update = "" 
    152152                        } 
     
    164164                if (remove == "") cfg = cfg line "\n" 
    165165        } 
    166          
     166 
    167167        # any new options for the last section?? 
    168168        if (section != "") { 
     
    172172 
    173173                        update = "-" section "." update 
    174                 }  
     174                } 
    175175        } 
    176176 
  • trunk/package/uci/files/uci-sh/lib/config/uci.sh

    r10366 r10367  
    1919# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
    2020 
     21uci_set_default() { 
     22        local PACKAGE="$1" 
     23        [ -e "/etc/config/$1" ] && return 0 
     24        cat > "/etc/config/$1" 
     25} 
     26 
    2127uci_load() { 
    22         config_load "$1" 
    23 } 
    24  
    25 uci_apply_defaults() {( 
    26         cd /etc/uci-defaults || return 0 
    27         files="$(ls)" 
    28         [ -z "$files" ] && return 0 
    29         mkdir -p /tmp/.uci 
    30         for file in $files; do 
    31                 ( . "./$(basename $file)" ) && rm -f "$file" 
    32         done 
    33         uci commit 
    34 )} 
     28        local cfg 
     29        local uci 
     30 
     31        _C=0 
     32        export ${NO_EXPORT:+-n} CONFIG_SECTIONS= 
     33        export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=0 
     34        export ${NO_EXPORT:+-n} CONFIG_SECTION= 
     35 
     36        case "$PACKAGE" in 
     37                /*) cfg="$PACKAGE";; 
     38                 *)  
     39                        cfg="$UCI_ROOT/etc/config/$PACKAGE" 
     40                        uci="$UCI_ROOT/tmp/.uci/$PACKAGE" 
     41                        state="$UCI_ROOT/var/state/$PACKAGE" 
     42                ;; 
     43        esac 
     44 
     45        # no config? 
     46        [ -z "$cfg" -o \! -f "$cfg" ] && return 1 
     47        . "$cfg" 
     48 
     49        ${CONFIG_SECTION:+config_cb} 
     50 
     51        [ -z "$uci" -o \! -f "$uci" ] || . "$uci" 
     52        [ -z "$LOAD_STATE" -z "$state" -o \! -f "$state" ] || . "$state" 
     53 
     54        return 0 
     55} 
    3556 
    3657uci_call_awk() { 
     
    7091        echo "$UPDATE" >> "$UCIFILE" 
    7192} 
     93 
     94uci_revert_state() { 
     95        local PACKAGE="$1" 
     96        local CONFIG="$2" 
     97        FILE="/var/state/$PACKAGE.$$" 
     98        grep -v "^config_set '$CONFIG' " "/var/state/$PAKAGE" > "$FILE" 
     99        mv "$FILE" "/var/state/$PACKAGE" 
     100} 
     101 
     102uci_set_state() { 
     103        local PACKAGE="$1" 
     104        local CONFIG="$2" 
     105        local OPTION="$3" 
     106        local VALUE="$4" 
     107 
     108        [ -z "$VALUE" ] && return 1 
     109        uci_set "/var/state/$PACKAGE" "$CONFIG" "$OPTION" "$VALUE" 
     110} 
     111 
    72112 
    73113uci_set() { 
Note: See TracChangeset for help on using the changeset viewer.