Changeset 13109
- Timestamp:
- 10/20/09 16:28:21 (1 month ago)
- Files:
-
- src/router/libutils/Makefile (modified) (5 diffs)
- src/router/libutils/wl.c (modified) (2 diffs)
- src/router/libutils/wl_basic.c (added)
- src/router/rc/Makefile (modified) (4 diffs)
- src/router/rc/init.c (modified) (8 diffs)
- src/router/rc/rc.c (modified) (1 diff)
- src/router/rc/resetbutton.c (modified) (1 diff)
- src/router/rc/roaming_daemon.c (modified) (1 diff)
- src/router/services/Makefile (modified) (1 diff)
- src/router/services/networking/network.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
src/router/libutils/Makefile
r13102 r13109 33 33 34 34 #CFLAGS += -g -DDEBUG 35 CFLAGS += -f pic35 CFLAGS += -fPIC 36 36 LDFLAGS += -L. 37 OBJS := utils.o shutils.o wl.o linux_timer.o wl_linux.o gpio.o md5c.o crc.o 37 OBJS := utils.o shutils.o wl_basic.o linux_timer.o wl_linux.o gpio.o md5c.o crc.o 38 WOBJS := wl.o 39 38 40 #defaults.o 39 41 ifeq ($(CONFIG_MAGICBOX),y) … … 55 57 ifeq ($(CONFIG_MADWIFI),y) 56 58 ifeq ($(CONFIG_MADWIFI_MIMO),y) 57 CFLAGS += -DHAVE_MADWIFI -DMADWIFI_MIMO -I../services/networking -I../madwifi.dev/madwifi_mimo.dev/core -include ../madwifi.dev/madwifi_mimo.dev/core/include/compat.h -I../wireless-tools -DHEADERS_KERNEL 59 CFLAGS += -DHAVE_MADWIFI -DMADWIFI_MIMO -I../services/networking -I../madwifi.dev/madwifi_mimo.dev/core -include ../madwifi.dev/madwifi_mimo.dev/core/include/compat.h -I../wireless-tools -DHEADERS_KERNEL 58 60 else 59 CFLAGS += -DHAVE_MADWIFI -I../services/networking -I../madwifi.dev/madwifi.dev -include ../madwifi.dev/madwifi.dev/include/compat.h -I../wireless-tools -DHEADERS_KERNEL 60 endif 61 62 63 OBJS += ../wireless-tools/libiw.so.29 61 CFLAGS += -DHAVE_MADWIFI -I../services/networking -I../madwifi.dev/madwifi.dev -include ../madwifi.dev/madwifi.dev/include/compat.h -I../wireless-tools -DHEADERS_KERNEL 62 endif 63 WLDFLAGS = ../wireless-tools/libiw.so.29 64 64 endif 65 65 OBJS += country.o … … 578 578 HFLAGS := $(CFLAGS) 579 579 CFLAGS += $(COPTS) 580 all: libutils.so libutils.a 581 # gcc -o defaults $(HFLAGS) defaults.c 582 # ./defaults 580 all: libutils.so libutils.a libwireless.so libwireless.a 583 581 584 582 install: all … … 586 584 install -d $(INSTALLDIR)/libutils/lib 587 585 install -m 755 libutils.so $(INSTALLDIR)/libutils/lib 586 install -m 755 libwireless.so $(INSTALLDIR)/libutils/lib 588 587 else 589 588 install -d $(INSTALLDIR)/libutils/usr/lib 590 589 install -m 755 libutils.so $(INSTALLDIR)/libutils/usr/lib 590 install -m 755 libwireless.so $(INSTALLDIR)/libutils/usr/lib 591 591 endif 592 592 … … 599 599 600 600 libutils.so: $(OBJS) 601 $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ $^ -L../nvram -lnvram -lm 601 $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ $^ -L../nvram -lnvram 602 603 libwireless.so: $(WOBJS) 604 $(CC) -shared $(CFLAGS) $(LDFLAGS) -o $@ $^ -L../nvram -lnvram $(WLDFLAGS) 605 602 606 603 607 libutils.a: $(OBJS) 604 608 $(AR) arc -o $@ $^ 605 609 610 libwireless.a: $(WOBJS) 611 $(AR) arc -o $@ $^ 612 606 613 *.o: $(CY_DEPS) src/router/libutils/wl.c
r13001 r13109 1698 1698 #endif 1699 1699 1700 #ifdef HAVE_RT2880 1701 char *get_wl_instance_name(int instance) 1702 { 1703 return "ra0"; 1704 } 1705 1706 int get_wl_instances(void) 1707 { 1708 return 1; 1709 } 1710 1711 int get_wl_instance(char *name) 1712 { 1713 return 1; 1714 } 1715 1716 #else 1717 char *get_wl_instance_name(int instance) 1718 { 1719 if (get_wl_instance("eth1") == instance) 1720 return "eth1"; 1721 if (get_wl_instance("eth2") == instance) 1722 return "eth2"; 1723 if (get_wl_instance("eth0") == instance) 1724 return "eth0"; 1725 if (get_wl_instance("eth3") == instance) 1726 return "eth3"; 1727 fprintf(stderr, "get_wl_instance doesnt return the right value %d\n", 1728 instance); 1729 return nvram_safe_get("wl0_ifname"); // dirty for debugging 1730 } 1731 1732 int get_wl_instances(void) 1733 { 1734 if (get_wl_instance("eth1") == 1) 1735 return 2; 1736 if (get_wl_instance("eth2") == 1) 1737 return 2; 1738 if (get_wl_instance("eth3") == 1) 1739 return 2; 1740 return 1; 1741 } 1742 1743 int get_wl_instance(char *name) 1744 { 1745 int unit; 1746 int ret; 1747 1748 if (!ifexists(name)) 1749 return -1; 1750 if (wl_probe(name)) 1751 return -1; 1752 ret = wl_ioctl(name, WLC_GET_INSTANCE, &unit, sizeof(unit)); 1753 // fprintf(stderr,"wl_instance = %d\n",unit); 1754 if (ret == 0) 1755 return unit; 1756 return ret; 1757 } 1758 1759 int bcm_gettxpower(char *wlname) 1760 { 1761 int pwr = 0; 1762 int realpwr; 1763 int c; 1764 char cmd[32]; 1765 char wl[16]; 1766 1767 sprintf(wl, "%s_txpwr", wlname); 1768 pwr = atoi(nvram_safe_get(wl)); 1769 1770 if (!strcmp(wlname, "wl0")) 1771 c = 0; 1772 else if (!strcmp(wlname, "wl1")) 1773 c = 1; 1774 else 1775 return pwr; 1776 1777 sprintf(cmd, "wl -i %s txpwr1", get_wl_instance_name(c)); 1778 1779 FILE *in = popen(cmd, "rb"); 1780 if (in == NULL) 1781 return pwr; 1782 // TxPower is 74 qdbm, 18.50 dbm, 71 mW Override is Off 1783 if (fscanf(in, "%*s %*s %*s %*s %*s %*s %d", &realpwr) == 1) 1784 pwr = realpwr; 1785 1786 pclose(in); 1787 1788 return pwr; 1789 } 1790 1791 #endif 1792 /* 1793 * return 1st wireless interface 1794 */ 1795 char *get_wdev(void) 1796 { 1797 #ifdef HAVE_MADWIFI 1798 if (nvram_match("wifi_bonding", "1")) 1799 return "bond0"; 1800 else { 1801 return "ath0"; 1802 } 1803 #elif HAVE_RT2880 1804 return "ra0"; 1805 #else 1806 return get_wl_instance_name(0); 1807 #endif 1808 } 1809 1810 int wl_probe(char *name) 1811 { 1812 int ret, val; 1813 1814 if (isListed("probe_blacklist", name)) 1815 return -1; 1816 1817 #if 0 //defined(linux) 1818 char buf[DEV_TYPE_LEN]; 1819 1820 if ((ret = wl_get_dev_type(name, buf, DEV_TYPE_LEN)) < 0) { 1821 // fprintf(stderr,"dev type=%s fail\n",name); 1822 addList("probe_blacklist", name); 1823 return ret; 1824 } 1825 /* 1826 * Check interface 1827 */ 1828 // fprintf(stderr,"dev type=%s\n",buf); 1829 if (strncmp(buf, "wl", 2)) { 1830 addList("probe_blacklist", name); 1831 return -1; 1832 } 1833 #else 1834 /* 1835 * Check interface 1836 */ 1837 if ((ret = wl_ioctl(name, WLC_GET_MAGIC, &val, sizeof(val)))) { 1838 // fprintf(stderr,"magic fail\n"); 1839 addList("probe_blacklist", name); 1840 return ret; 1841 } 1842 #endif 1843 if ((ret = wl_ioctl(name, WLC_GET_VERSION, &val, sizeof(val)))) { 1844 // fprintf(stderr,"version fail\n"); 1845 addList("probe_blacklist", name); 1846 return ret; 1847 } 1848 if (val > WLC_IOCTL_VERSION) { 1849 // fprintf(stderr,"version fail %d\n",val); 1850 addList("probe_blacklist", name); 1851 return -1; 1852 } 1853 return ret; 1854 } 1700 1701 1702 #if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880) 1703 1855 1704 1856 1705 /* … … 2163 2012 */ 2164 2013 2165 //#endif2014 #endif src/router/rc/Makefile
r13102 r13109 190 190 endif 191 191 192 ifeq ($(CONFIG_MADWIFI),y)193 CFLAGS += -DHAVE_MADWIFI -DHAVE_ROAMING194 OBJS += ../wireless-tools/libiw.so.29195 OBJS += roaming_daemon.o196 endif197 192 ifeq ($(CONFIG_FON),y) 198 193 CFLAGS += -DHAVE_FON … … 457 452 CFLAGS += -DHAVE_RSTP 458 453 endif 454 ifeq ($(CONFIG_MADWIFI),y) 455 CFLAGS += -DHAVE_MADWIFI -DHAVE_ROAMING 456 endif 457 458 459 459 460 460 ifeq ($(CONFIG_SNMP),y) … … 564 564 endif 565 565 cd $(INSTALLDIR)/sbin && ln -sf rc erase 566 cd $(INSTALLDIR)/sbin && ln -sf rc roaming_daemon566 # cd $(INSTALLDIR)/sbin && ln -sf rc roaming_daemon 567 567 cd $(INSTALLDIR)/sbin && ln -sf rc get_wanface 568 568 # cd $(INSTALLDIR)/sbin && ln -sf rc ledtool … … 665 665 rc: $(OBJS) 666 666 # $(AR) arc -o $@.a $^ 667 $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) 667 $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) -lwireless 668 $(CC) $(CFLAGS) -o roaming_daemon roaming_daemon.c $(LDFLAGS) ../wireless-tools/libiw.so.29 668 669 $(CC) $(CFLAGS) -o ttraff ttraff.c $(LDFLAGS) 669 $(CC) $(CFLAGS) -o wland wland.c $(LDFLAGS) 670 $(CC) $(CFLAGS) -o wland wland.c $(LDFLAGS) -lwireless 670 671 $(CC) $(CFLAGS) -o process_monitor process_monitor.c ntp.c $(LDFLAGS) 671 $(CC) $(CFLAGS) -o resetbutton resetbutton.c $(LDFLAGS) 672 $(CC) $(CFLAGS) -o init init.c $(LDFLAGS)672 $(CC) $(CFLAGS) -o resetbutton resetbutton.c $(LDFLAGS) -lwireless 673 $(CC) $(CFLAGS) -o init init.c -L$(TOP)/nvram -I$(LINUXDIR) -L$(INSTALLDIR)/nvram/usr/lib -lnvram -L$(TOP)/libutils -ldl -lutils 673 674 $(CC) $(CFLAGS) -o check_ps check_ps.c $(LDFLAGS) 674 675 $(CC) $(CFLAGS) -o nvram nvram.c -L../nvram -lnvram src/router/rc/init.c
r13102 r13109 29 29 #define _PATH_CONSOLE "/dev/console" 30 30 31 #define start_service(a) eval("startservice",a); 32 #define start_service_f(a) eval("startservice_f",a); 33 #define start_services() eval("startservices"); 34 #define start_single_service() eval("start_single_service"); 35 #define stop_service(a) eval("stopservice",a); 36 #define stop_services() eval("stopservices"); 37 #define startstop(a) eval("startstop",a); 38 #define startstop_f(a) eval("startstop_f",a); 31 int sysprintf(const char *fmt, ...) 32 { 33 char varbuf[256]; 34 va_list args; 35 36 va_start(args, (char *)fmt); 37 vsnprintf(varbuf, sizeof(varbuf), fmt, args); 38 va_end(args); 39 return system(varbuf); 40 } 41 42 43 44 #define start_service(a) sysprintf("startservice %s",a); 45 #define start_service_f(a) sysprintf("startservice_f %s",a); 46 #define start_services() system("startservices"); 47 #define start_single_service() system("start_single_service"); 48 #define stop_service(a) sysprintf("stopservice %s",a); 49 #define stop_services() system("stopservices"); 50 #define startstop(a) sysprintf("startstop %s",a); 51 #define startstop_f(a) sysprintf("startstop_f %s",a); 39 52 40 53 static void set_term(int fd) … … 231 244 sleep(1); 232 245 233 #ifdef HAVE_RB500234 eval("umount", "/");235 #endif236 246 } 237 247 … … 542 552 fclose(fp); 543 553 554 #ifndef HAVE_MADWIFI 544 555 int cnt = get_wl_instances(); 556 #endif 545 557 int c; 546 558 … … 578 590 #if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880) 579 591 for (c = 0; c < cnt; c++) { 580 eval("wlconf", get_wl_instance_name(c), "down");592 sysprintf("wlconf %s down", get_wl_instance_name(c)); 581 593 char *next; 582 594 char var[80]; … … 585 597 if (vifs != NULL) 586 598 foreach(var, vifs, next) { 587 eval("ifconfig", var, "down");599 sysprintf ("ifconfig %s down", var); 588 600 } 589 601 } … … 618 630 #endif 619 631 #ifdef HAVE_RSTP 620 eval("killall", "rstpd");632 system("killall rstpd"); 621 633 unlink("/tmp/.rstp_server"); 622 634 #endif … … 707 719 && nvram_match("radiooff_boot_off", "1")) { 708 720 for (c = 0; c < cnt; c++) { 709 eval("wl", "-i", 710 get_wl_instance_name(c), "radio", 711 "off"); 721 sysprintf("wl -i %s radio off", 722 get_wl_instance_name(c)); 712 723 } 713 724 led_control(LED_SEC0, LED_OFF); … … 758 769 #ifdef HAVE_RSTP 759 770 // just experimental for playing 760 eval("brctl", "stp", "br0", "off");761 eval("rstpd");762 eval("rstpctl", "rstp", "br0", "on");771 system("brctl stp br0 off"); 772 system("rstpd"); 773 system("rstpctl rstp br0 on"); 763 774 #endif 764 775 src/router/rc/rc.c
r12224 r13109 226 226 // {"nvram", NULL, &nvram_main}, 227 227 #ifdef HAVE_ROAMING 228 {"roaming_daemon", NULL, &roaming_daemon_main},228 // {"roaming_daemon", NULL, &roaming_daemon_main}, 229 229 {"supplicant", "supplicant", NULL}, 230 230 #endif src/router/rc/resetbutton.c
r13085 r13109 351 351 initses = 0; 352 352 } 353 #ifndef HAVE_MADWIFI 353 354 int cc = get_wl_instances(); 355 #endif 354 356 int ii; 355 357 #endif src/router/rc/roaming_daemon.c
r12224 r13109 168 168 } 169 169 170 int roaming_daemon_main(int argc, char *argv[])170 int main(int argc, char *argv[]) 171 171 { 172 172 src/router/services/Makefile
r13105 r13109 7 7 endif 8 8 9 LDFLAGS = -L$(TOP)/nvram -L$(INSTALLDIR)/nvram/usr/lib -lnvram -L$(TOP)/shared -L$(INSTALLDIR)/shared/usr/lib -lshared -lcrypt -L../libnet/lib -lnet -L../libutils -lutils 9 LDFLAGS = -L$(TOP)/nvram -L$(INSTALLDIR)/nvram/usr/lib -lnvram -L$(TOP)/shared -L$(INSTALLDIR)/shared/usr/lib -lshared -lcrypt -L../libnet/lib -lnet -L../libutils -lutils -lwireless 10 10 ifneq ($(CONFIG_DIST),"micro") 11 11 ifneq ($(CONFIG_DIST),"micro-special") src/router/services/networking/network.c
r13094 r13109 390 390 * Enable WET DHCP relay for ethernet clients 391 391 */ 392 #if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880) 392 393 static int enable_dhcprelay(char *ifname) 393 394 { … … 434 435 return 0; 435 436 } 436 437 #endif 437 438 static int wlconf_up(char *name) 438 439 { … … 1553 1554 led_control(LED_BRIDGE, LED_ON); 1554 1555 /* Enable host DHCP relay */ 1556 #if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880) 1555 1557 if (nvram_match("lan_dhcp", "1")) { 1556 1558 wl_iovar_set(name, … … 1565 1567 enable_dhcprelay(lan_ifname); 1566 1568 } 1569 #endif 1567 1570 do_mssid(name); 1568 1571 }
