Changeset 12395
- Timestamp:
- 06/29/09 16:28:32 (5 months ago)
- Files:
-
- src/router/services/Makefile (modified) (4 diffs)
- src/router/services/sysinit/defaults.c (modified) (2 diffs)
- src/router/services/sysinit/sysinit-adm5120.c (modified) (6 diffs)
- src/router/services/sysinit/sysinit-broadcom.c (modified) (4 diffs)
- src/router/services/sysinit/sysinit-ca8.c (modified) (1 diff)
- src/router/services/sysinit/sysinit-dir300.c (modified) (2 diffs)
- src/router/services/sysinit/sysinit-fonera.c (modified) (1 diff)
- src/router/services/sysinit/sysinit-gateworx.c (modified) (2 diffs)
- src/router/services/sysinit/sysinit-rcaa01.c (modified) (1 diff)
- src/router/services/sysinit/sysinit.c (modified) (5 diffs)
- src/router/services/tools/reset_defaults.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
src/router/services/Makefile
r12269 r12395 11 11 LDFLAGS += -lm 12 12 CFLAGS += -I$(TOP)/iptables/include -I$(TOP)/rc -I$(TOP)/iptables/include/libipq -I$(TOP)/libnet/include -DL_ENDIAN -DLIBNET_LIL_ENDIAN -DLIB1X_LIL_ENDIAN 13 CFLAGS += $(COPTS)-fpic -I$(TOP)/services/include13 CFLAGS += -fpic -I$(TOP)/services/include 14 14 OBJS = services.o network.o firewall.o mssid.o wshaper.o ddns.o sysinit.o sysinit-$(ARCHITECTURE).o interface.o udhcpc.o mkfiles.o iptable.o defaults.o \ 15 15 bridgetools.o igmp.o wpa.o vlantagging.o httpd.o setuserpw.o anchorfree.o gpio.o mask.o reset_defaults.o … … 779 779 $(CC) $(CFLAGS) -DNEED_PRINTF -o switch tools/switch.c 780 780 endif 781 gcc -o bin/defaults $(CFLAGS) bin/defaults.c 782 cd bin && ./defaults 781 783 782 784 clean: … … 787 789 install: all 788 790 install -d $(INSTALLDIR)/services/usr/lib 791 install -d $(INSTALLDIR)/services/etc 789 792 install services.so $(INSTALLDIR)/services/usr/lib 793 install bin/defaults.bin $(INSTALLDIR)/services/etc 790 794 ifeq ($(CONFIG_RT2880),y) 791 795 install -d $(INSTALLDIR)/services/sbin … … 795 799 services.so: $(OBJS) 796 800 # $(AR) arc -o $@.a $^ 797 $(CC) --shared $(C FLAGS) -o $@ $^ $(LDFLAGS)801 $(CC) --shared $(COPTS) $(CFLAGS) -o $@ $^ $(LDFLAGS) 798 802 # $(CC) $(CFLAGS) -o wland $^ $(LDFLAGS) 799 803 src/router/services/sysinit/defaults.c
r12386 r12395 39 39 #define HAVE_POWERNOC 1 40 40 #endif 41 42 #ifdef STORE_DEFAULTS 41 43 42 44 struct nvram_tuple srouter_defaults[] = { … … 2615 2617 {0, 0, 0} 2616 2618 }; 2619 #else 2620 struct nvram_tuple *srouter_defaults = NULL; 2621 static int defaultnum; 2622 void load_defaults(void) 2623 { 2624 FILE *in = fopen("/etc/defaults.bin", "rb"); 2625 if (in == NULL) 2626 return; 2627 fread(&defaultnum, 4, 1, in); 2628 int i; 2629 srouter_defaults = 2630 (struct nvram_tuple *)malloc(sizeof(struct nvram_tuple) * 2631 defaultnum); 2632 for (i = 0; i < defaultnum; i++) { 2633 int vl = getc(in); 2634 if (vl) { 2635 srouter_defaults[i].name = malloc(vl + 1); 2636 fread(srouter_defaults[i].name, vl, 1, in); 2637 srouter_defaults[i].name[vl] = 0; 2638 vl = getc(in); 2639 srouter_defaults[i].value = malloc(vl + 1); 2640 fread(srouter_defaults[i].value, vl, 1, in); 2641 srouter_defaults[i].value[vl] = 0; 2642 } else { 2643 srouter_defaults[i].name = NULL; 2644 srouter_defaults[i].value = NULL; 2645 } 2646 } 2647 } 2648 2649 void free_defaults(void) 2650 { 2651 int i; 2652 for (i = defaultnum - 1; i > -1; i--) { 2653 if (srouter_defaults[i].name) { 2654 free(srouter_defaults[i].value); 2655 free(srouter_defaults[i].name); 2656 } 2657 } 2658 free(srouter_defaults); 2659 2660 } 2661 #endif 2617 2662 2618 2663 #ifdef HAVE_SKYTEL src/router/services/sysinit/sysinit-adm5120.c
r12235 r12395 295 295 strncpy(ifr.ifr_name, "eth0", IFNAMSIZ); 296 296 ioctl(s, SIOCGIFHWADDR, &ifr); 297 memcpy((unsigned char *)ifr. 298 ifr_hwaddr.sa_data, mac, 6);297 memcpy((unsigned char *)ifr.ifr_hwaddr. 298 sa_data, mac, 6); 299 299 ioctl(s, SIOCSIFHWADDR, &ifr); 300 300 close(s); … … 306 306 nvram_set("et0macaddr_safe", 307 307 ether_etoa((unsigned char *) 308 ifr.ifr_hwaddr. 309 sa_data, eabuf)); 308 ifr. 309 ifr_hwaddr.sa_data, 310 eabuf)); 310 311 close(s); 311 312 } … … 342 343 ether_etoa((unsigned 343 344 char *) 344 ifr. 345 ifr_hwaddr.sa_data, 346 eabuf)); 345 ifr.ifr_hwaddr.sa_data, eabuf)); 347 346 close(s); 348 347 } … … 378 377 strncpy(ifr.ifr_name, "eth0", IFNAMSIZ); 379 378 ioctl(s, SIOCGIFHWADDR, &ifr); 380 memcpy((unsigned char *)ifr. 381 ifr_hwaddr.sa_data, 382 params.addr[0].mac, 6); 379 memcpy((unsigned char *)ifr.ifr_hwaddr. 380 sa_data, params.addr[0].mac, 6); 383 381 ioctl(s, SIOCSIFHWADDR, &ifr); 384 382 close(s); … … 388 386 strncpy(ifr.ifr_name, "eth1", IFNAMSIZ); 389 387 ioctl(s, SIOCGIFHWADDR, &ifr); 390 memcpy((unsigned char *)ifr. 391 ifr_hwaddr.sa_data, 392 params.addr[1].mac, 6); 388 memcpy((unsigned char *)ifr.ifr_hwaddr. 389 sa_data, params.addr[1].mac, 6); 393 390 ioctl(s, SIOCSIFHWADDR, &ifr); 394 391 close(s); … … 400 397 nvram_set("et0macaddr_safe", 401 398 ether_etoa((unsigned char *) 402 ifr.ifr_hwaddr. 403 sa_data, eabuf)); 399 ifr. 400 ifr_hwaddr.sa_data, 401 eabuf)); 404 402 close(s); 405 403 } src/router/services/sysinit/sysinit-broadcom.c
r12367 r12395 910 910 nvram_set("wan_ifname", "vlan2"); 911 911 break; 912 912 913 913 case ROUTER_WRT610N: 914 914 nvram_set("wan_ifname", "vlan2"); … … 919 919 nvram_set("pci/1/1/boardflags2", "0x0400"); 920 920 nvram_set("pci/1/2/boardflags2", "0x0602"); 921 922 if (startswith(nvram_safe_get("pci/1/1/macaddr"), "00:90:4C") 923 || startswith(nvram_safe_get("pci/1/2/macaddr"), "00:90:4C"))924 {925 unsigned char mac[20];926 strcpy(mac, nvram_safe_get("et0macaddr"));927 MAC_ADD(mac);928 MAC_ADD(mac);929 nvram_set("pci/1/1/macaddr", mac);930 MAC_ADD(mac);931 nvram_set("pci/1/2/macaddr", mac);932 need_reboot = 1;921 922 if (startswith(nvram_safe_get("pci/1/1/macaddr"), "00:90:4C") 923 || startswith(nvram_safe_get("pci/1/2/macaddr"), 924 "00:90:4C")) { 925 unsigned char mac[20]; 926 strcpy(mac, nvram_safe_get("et0macaddr")); 927 MAC_ADD(mac); 928 MAC_ADD(mac); 929 nvram_set("pci/1/1/macaddr", mac); 930 MAC_ADD(mac); 931 nvram_set("pci/1/2/macaddr", mac); 932 need_reboot = 1; 933 933 } 934 934 break; … … 1136 1136 nvram_set("boardflags", "0x0f58"); 1137 1137 need_reboot = 1; 1138 }1139 break; 1140 1138 } 1139 break; 1140 1141 1141 case ROUTER_ASKEY_RT220XD: 1142 1142 if (nvram_match("boardflags", "0x388") … … 1144 1144 nvram_set("boardflags", "0x0208"); 1145 1145 need_reboot = 1; 1146 }1146 } 1147 1147 break; 1148 1148 src/router/services/sysinit/sysinit-ca8.c
r12235 r12395 141 141 142 142 strcpy(macaddr, 143 ether_etoa((unsigned char *)ifr. 144 ifr_hwaddr.sa_data, eabuf));143 ether_etoa((unsigned char *)ifr.ifr_hwaddr. 144 sa_data, eabuf)); 145 145 nvram_set("et0macaddr", macaddr); 146 146 // MAC_ADD( macaddr ); src/router/services/sysinit/sysinit-dir300.c
r12235 r12395 255 255 256 256 strcpy(macaddr, 257 ether_etoa((unsigned char *)ifr. 258 ifr_hwaddr.sa_data, eabuf));257 ether_etoa((unsigned char *)ifr.ifr_hwaddr. 258 sa_data, eabuf)); 259 259 nvram_set("et0macaddr", macaddr); 260 260 // MAC_ADD( macaddr ); … … 290 290 291 291 strcpy(macaddr, 292 ether_etoa((unsigned char *)ifr. 293 ifr_hwaddr.sa_data, eabuf));292 ether_etoa((unsigned char *)ifr.ifr_hwaddr. 293 sa_data, eabuf)); 294 294 nvram_set("et0macaddr", macaddr); 295 295 // MAC_ADD (macaddr); src/router/services/sysinit/sysinit-fonera.c
r12235 r12395 166 166 167 167 strcpy(macaddr, 168 ether_etoa((unsigned char *)ifr. 169 ifr_hwaddr.sa_data, eabuf));168 ether_etoa((unsigned char *)ifr.ifr_hwaddr. 169 sa_data, eabuf)); 170 170 nvram_set("et0macaddr", macaddr); 171 171 // MAC_ADD( macaddr ); src/router/services/sysinit/sysinit-gateworx.c
r12235 r12395 420 420 ioctl(s, SIOCGIFHWADDR, &ifr); 421 421 nvram_set("et0macaddr_safe", 422 ether_etoa((unsigned char *)ifr. 423 ifr_hwaddr.sa_data, eabuf));422 ether_etoa((unsigned char *)ifr.ifr_hwaddr. 423 sa_data, eabuf)); 424 424 close(s); 425 425 } … … 471 471 ioctl(s, SIOCGIFHWADDR, &ifr); 472 472 nvram_set("et0macaddr_safe", 473 ether_etoa((unsigned char *)ifr. 474 ifr_hwaddr.sa_data, eabuf));473 ether_etoa((unsigned char *)ifr.ifr_hwaddr. 474 sa_data, eabuf)); 475 475 close(s); 476 476 } src/router/services/sysinit/sysinit-rcaa01.c
r12235 r12395 158 158 159 159 strcpy(macaddr, 160 ether_etoa((unsigned char *)ifr. 161 ifr_hwaddr.sa_data, eabuf));160 ether_etoa((unsigned char *)ifr.ifr_hwaddr. 161 sa_data, eabuf)); 162 162 nvram_set("et0macaddr", macaddr); 163 163 // MAC_ADD( macaddr ); src/router/services/sysinit/sysinit.c
r12305 r12395 80 80 void start_nvram(void); 81 81 82 extern struct nvram_tuple srouter_defaults[]; 82 extern struct nvram_tuple *srouter_defaults; 83 extern void load_defaults(void); 84 extern void free_defaults(void); 83 85 84 86 int endswith(char *str, char *cmp) … … 170 172 create_rc_file(RC_STARTUP); 171 173 if (f_exists("/tmp/.rc_startup")) 172 system("/tmp/.rc_startup");174 system("/tmp/.rc_startup"); 173 175 return; 174 176 } … … 178 180 create_rc_file(RC_SHUTDOWN); 179 181 if (f_exists("/tmp/.rc_shutdown")) 180 system("/tmp/.rc_shutdown");182 system("/tmp/.rc_shutdown"); 181 183 return; 182 184 } … … 628 630 // } 629 631 // } 630 632 load_defaults(); 631 633 #ifdef HAVE_RB500 632 634 linux_overrides = generic; … … 1028 1030 } 1029 1031 } 1032 free_defaults(); 1030 1033 if (strlen(nvram_safe_get("http_username")) == 0) { 1031 1034 nvram_set("http_username", zencrypt("root")); src/router/services/tools/reset_defaults.c
r12224 r12395 79 79 }; 80 80 81 extern struct nvram_tuple srouter_defaults[];81 extern struct nvram_tuple *srouter_defaults; 82 82 83 83 static int isCritical(char *name) … … 92 92 return 0; 93 93 } 94 extern void load_defaults(void); 95 extern void free_defaults(void); 94 96 95 97 void start_defaults(void) … … 116 118 p += len + 1; 117 119 } 120 load_defaults(); 118 121 for (t = srouter_defaults; t->name; t++) { 119 122 nvram_set(t->name, t->value); 120 123 } 124 free_defaults(); 121 125 free(buf); 122 126 nvram_commit();
