Changeset 3448

Show
Ignore:
Timestamp:
08/08/07 18:29:47 (1 year ago)
Author:
spaetzle
Message:

updated network script environment enhancement patch

- added custom per interface hooks as environment variables

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/freewrt/package/busybox/Makefile

    r3390 r3448  
    99PKG_NAME:=              busybox 
    1010PKG_VERSION:=           1.4.2 
    11 PKG_RELEASE:=           27 
     11PKG_RELEASE:=           28 
    1212PKG_MD5SUM:=            b4c61fb15642be9dde20e8493788c585 
    1313DISTFILES:=             $(PKG_NAME)-$(PKG_VERSION).tar.bz2 
  • trunk/freewrt/package/busybox/patches/960-ifupdown-env.patch

    r3294 r3448  
    11 
    2         what's this supposed to do? 
     2        extends network script environment 
    33 
    4 --- old/networking/ifupdown.c   2007-04-10 18:02:16.000000000 +0200 
    5 +++ new/networking/ifupdown.c   2007-04-17 20:14:10.780486423 +0200 
    6 @@ -874,8 +874,9 @@ 
     4--- old/networking/ifupdown.c   2007-08-08 15:01:35.623395757 +0200 
     5+++ new/networking/ifupdown.c   2007-08-08 18:16:44.364153942 +0200 
     6@@ -919,8 +919,15 @@ 
    77 { 
    88        char **environend; 
    99        int i; 
    1010-       const int n_env_entries = iface->n_options + 5; 
     11+       int j = 0;  /* iterator pre-up */ 
     12+       int k = 0;  /* iterator up */ 
     13+       int l = 0;  /* iterator down */ 
     14+       int m = 0;  /* iterator post-down */ 
     15+       int t_suffix;  /* pre-post-up-down suffix */ 
    1116+       const int n_env_entries = iface->n_options + 6; 
    1217        char **ppch; 
    1318+       char *ifupdown_env; 
     19+       char t_var_name[80]; 
    1420  
    1521        if (my_environ != NULL) { 
    1622                for (ppch = my_environ; *ppch; ppch++) { 
    17 @@ -896,12 +897,17 @@ 
     23@@ -933,20 +940,33 @@ 
     24        environend = my_environ; 
     25  
     26        for (i = 0; i < iface->n_options; i++) { 
     27-               if (strcmp(iface->option[i].name, "up") == 0 
     28-                               || strcmp(iface->option[i].name, "down") == 0 
     29-                               || strcmp(iface->option[i].name, "pre-up") == 0 
     30-                               || strcmp(iface->option[i].name, "post-down") == 0) { 
     31+               if (strcmp(iface->option[i].name, "pre-up") == 0) 
     32+                       t_suffix = j++; 
     33+               else if (strcmp(iface->option[i].name, "up") == 0) 
     34+                       t_suffix = k++; 
     35+               else if (strcmp(iface->option[i].name, "down") == 0) 
     36+                       t_suffix = l++; 
     37+               else if (strcmp(iface->option[i].name, "post-down") == 0) 
     38+                       t_suffix = m++; 
     39+               else { 
     40+                       *(environend++) = setlocalenv("IF_%s=%s", iface->option[i].name, iface->option[i].value); 
     41                        continue; 
    1842                } 
    19                 *(environend++) = setlocalenv("IF_%s=%s", iface->option[i].name, iface->option[i].value); 
     43-               *(environend++) = setlocalenv("IF_%s=%s", iface->option[i].name, iface->option[i].value); 
     44
     45+               sprintf(t_var_name, "IF_%s_%i=%s", "%s", t_suffix, "%s"); 
     46+               *(environend++) = setlocalenv(t_var_name, iface->option[i].name, iface->option[i].value); 
    2047        } 
    2148+        
     
    3360  
    3461 static int doit(char *str) 
    35 @@ -956,6 +962,7 @@ 
     62@@ -1001,6 +1021,7 @@ 
    3663 { 
    3764        if (!iface->method->up(iface, check)) return -1; 
     
    4168        if (!iface->method->up(iface, doit)) return 0; 
    4269        if (!execute_all(iface, "up")) return 0; 
    43 @@ -966,6 +973,7 @@ 
     70@@ -1011,6 +1032,7 @@ 
    4471 { 
    4572        if (!iface->method->down(iface,check)) return -1;