Changeset 33092


Ignore:
Timestamp:
Aug 10, 2017, 3:24:08 PM (13 days ago)
Author:
brainslayer
Message:

keep init small as possible

Location:
src/router
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • src/router/rc/init.c

    r32881 r33092  
    3636#define start_service_force_f(a) eval("startservice_f",a,"-f");
    3737#define start_services() eval("startservices");
    38 #define start_single_service() eval("start_single_service");
    3938#define stop_service(a) eval("stopservice",a);
    4039#define stop_service_force(a) eval("stopservice","-f",a);
     
    613612
    614613#ifndef HAVE_MADWIFI
    615         int cnt = get_wl_instances();
    616614#ifdef HAVE_QTN
    617         cnt = 1;
    618615        nvram_seti("qtn_ready", 0);
    619616#endif
     
    630627                        lcdmessage("RESTART SERVICES");
    631628                        cprintf("USER1\n");
    632                         start_single_service();
    633 #ifdef HAVE_CHILLI
    634                         start_service_f("chilli");
    635 #endif
    636 #ifdef HAVE_WIFIDOG
    637                         start_service_f("wifidog");
    638 #endif
     629                        start_service_force_f("init_user");
    639630
    640631                        state = IDLE;
     
    643634                case RESTART:
    644635                        lcdmessage("RESTART SYSTEM");
    645 #ifdef HAVE_OVERCLOCKING
    646                         start_service_force("overclocking");
    647 #endif
    648                         cprintf("RESET NVRAM VARS\n");
    649                         nvram_set("wl0_lazy_wds", nvram_safe_get("wl_lazy_wds"));
    650 
    651                         cprintf("RESTART\n");
    652 
    653 #if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880)
    654                         for (c = 0; c < cnt; c++) {
    655                                 sysprintf("wlconf %s down", get_wl_instance_name(c));
    656                                 char *next;
    657                                 char var[80];
    658                                 char *vifs = nvram_nget("wl%d_vifs", c);
    659 
    660                                 if (vifs != NULL)
    661                                         foreach(var, vifs, next) {
    662                                         sysprintf("ifconfig %s down", var);
    663                                         }
    664                         }
    665 #endif
     636                        start_service_force("init_restart");
    666637
    667638                        /*
     
    673644                                break;  //force reboot on upgrade
    674645                        }
     646                        setenv("PATH", "/sbin:/bin:/usr/sbin:/usr/bin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs/usr/bin:/mmc/sbin:/mmc/bin:/mmc/usr/sbin:/mmc/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin", 1);
     647                        setenv("LD_LIBRARY_PATH", "/lib:/usr/lib:/jffs/lib:/jffs/usr/lib:/mmc/lib:/mmc/usr/lib:/opt/lib:/opt/usr/lib", 1);
    675648#ifdef HAVE_REGISTER
    676649                        if (isregistered_real())
     
    684657                                break;
    685658                        }
    686 
    687                         lcdmessage("STOPPING SERVICES");
    688                         cprintf("STOP\n");
    689                         killall("udhcpc", SIGKILL);
    690                         setenv("PATH", "/sbin:/bin:/usr/sbin:/usr/bin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs/usr/bin:/mmc/sbin:/mmc/bin:/mmc/usr/sbin:/mmc/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin", 1);
    691                         setenv("LD_LIBRARY_PATH", "/lib:/usr/lib:/jffs/lib:/jffs/usr/lib:/mmc/lib:/mmc/usr/lib:/opt/lib:/opt/usr/lib", 1);
    692 
    693                         cprintf("STOP SERVICES\n");
    694 
    695                         stop_services();
    696                         stop_service("radio_timer");
    697 #if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880)
    698                         stop_service("nas");
    699 #endif
    700                         cprintf("STOP WAN\n");
    701                         stop_service("ttraff");
    702                         stop_service_force("wan");
    703                         stop_service("mkfiles");
    704 #if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880)
    705                         stop_service("wlconf");
    706 #endif
    707                         cprintf("STOP LAN\n");
    708 #ifdef HAVE_MADWIFI
    709                         stop_service("stabridge");
    710 #endif
    711 #ifdef HAVE_EMF
    712                         stop_service("emf");
    713 #endif
    714 #ifdef HAVE_IPVS
    715                         stop_service("ipvs");
    716 #endif
    717 #ifdef HAVE_VLANTAGGING
    718                         stop_service("bridging");
    719 #endif
    720 #ifdef HAVE_BONDING
    721                         stop_service("bonding");
    722 #endif
    723 
    724 #ifdef HAVE_VLANTAGGING
    725                         stop_service("bridgesif");
    726                         stop_service("vlantagging");
    727 #endif
    728                         stop_service("lan");
    729 #ifndef HAVE_RB500
    730                         stop_service("resetbutton");
    731 #endif
    732 #ifdef HAVE_IPV6
    733                         stop_service("ipv6");
    734 #endif
    735 #ifdef HAVE_REGISTER
    736                         if (isregistered_real())
    737 #endif
    738                         {
    739                                 start_service("run_rc_shutdown");
    740                         }
     659                        start_service_force("init_stop");
    741660                        /*
    742661                         * Fall through
     
    750669                        setenv("LD_LIBRARY_PATH", "/lib:/usr/lib:/jffs/lib:/jffs/usr/lib:/mmc/lib:/mmc/usr/lib:/opt/lib:/opt/usr/lib", 1);
    751670                        update_timezone();
    752 #ifdef HAVE_IPV6
    753                         start_service_f("ipv6");
    754 #endif
    755 #ifndef HAVE_RB500
    756                         start_service_f("resetbutton");
    757 #endif
    758                         start_service_force("setup_vlans");
    759 #if !defined(HAVE_MADWIFI) && !defined(HAVE_RT2880)
    760 //                      start_service("wlconf"); // doesnt make any sense. its already triggered by start lan
    761 #endif
    762 #ifdef HAVE_VLANTAGGING
    763                         start_service("bridging");
    764 #endif
    765                         start_service_force("lan");
    766 #ifdef HAVE_IPVS
    767                         start_service("ipvs");
    768 #endif
    769 #ifdef HAVE_BONDING
    770                         start_service("bonding");
    771 #endif
    772 #ifdef HAVE_REGISTER
    773                         start_service_force("mkfiles");
    774 #endif
    775 #ifdef HAVE_MADWIFI
    776                         start_service_f("stabridge");
    777 #endif
    778 
    779                         cprintf("start services\n");
    780                         start_services();
    781 
    782                         cprintf("start wan boot\n");
    783 #ifdef HAVE_VLANTAGGING
    784                         start_service("vlantagging");
    785                         start_service("bridgesif");
    786 #endif
    787                         start_service_force("wan_boot");
    788                         start_service_f("ttraff");
    789 
    790                         cprintf("diag STOP LED\n");
    791                         diag_led(DIAG, STOP_LED);
    792                         cprintf("set led release wan control\n");
    793                         SET_LED(RELEASE_WAN_CONTROL);
    794 
    795 #ifdef HAVE_RADIOOFF
    796                         if (nvram_matchi("radiooff_button", 1)
    797                             && nvram_matchi("radiooff_boot_off", 1)) {
    798                                 start_service_force("radio_off");
    799                                 led_control(LED_SEC0, LED_OFF);
    800                                 led_control(LED_SEC1, LED_OFF);
    801                         } else
    802 #endif
    803                         {
    804                                 start_service_force("radio_off");
    805                                 start_service_force("radio_on");
    806 
    807                         }
    808                         start_service_f("radio_timer");
    809 #ifdef HAVE_EMF
    810                         start_service("emf");
    811 #endif
    812 
    813                         cprintf("run rc file\n");
    814 #ifdef HAVE_REGISTER
    815 #ifndef HAVE_ERC
    816                         if (isregistered_real())
    817 #endif
    818 #endif
    819                         {
    820                                 startstop_f("run_rc_startup");
    821 // start init scripts                           
    822                                 eval("/etc/init.d/rcS");
    823                                 eval("/opt/etc/init.d/rcS");
    824                                 eval("/jffs/etc/init.d/rcS");
    825                                 eval("/mmc/etc/init.d/rcS");
    826                                 // startup script
    827                                 // (siPath impl)
    828                                 cprintf("start modules\n");
    829                                 start_service_force_f("modules");
    830 #ifdef HAVE_MILKFISH
    831                                 start_service_force_f("milkfish_boot");
    832 #endif
    833                                 if (nvram_invmatch("rc_custom", ""))    // create
    834                                         // custom
    835                                         // script
    836                                 {
    837                                         nvram2file("rc_custom", "/tmp/custom.sh");
    838                                         chmod("/tmp/custom.sh", 0700);
    839                                 }
    840                         }
    841 #ifdef HAVE_CHILLI
    842                         start_service_f("chilli");
    843 #endif
    844 #ifdef HAVE_WIFIDOG
    845                         start_service_f("wifidog");
    846 #endif
    847                         cprintf("start syslog\n");
    848 #ifdef HAVE_SYSLOG
    849                         startstop_f("syslog");
    850 #endif
    851                         system("/etc/postinit&");
    852                         start_service_f("httpd");
    853                         led_control(LED_DIAG, LED_OFF);
    854                         lcdmessage("System Ready");
    855 #ifndef HAVE_RB500
    856                         startstop_f("resetbutton");
    857 #endif
     671                        start_service_force("init_start");
    858672                        /*
    859673                         * Fall through
  • src/router/services/Makefile

    r32914 r33092  
    8585
    8686
    87 OBJS = services.o network.o firewall.o mssid.o wshaper.o ddns.o devinit.o sysinit.o sysinit-$(ARCHITECTURE).o interface.o udhcpc.o mkfiles.o defaults.o \
     87OBJS = init.o services.o network.o firewall.o mssid.o wshaper.o ddns.o devinit.o sysinit.o sysinit-$(ARCHITECTURE).o interface.o udhcpc.o mkfiles.o defaults.o \
    8888       bridgetools.o igmp.o wpa.o vlantagging.o httpd.o setuserpw.o gpio.o mask.o reset_defaults.o vpn.o cron.o syslog.o redial.o       \
    8989       pppoe_dual.o pppoe.o pptpclient.o ttraff.o radiotimer.o processmonitor.o wland.o radiofunctions.o processmanager.o utils.o iptable.o conntrack.o
  • src/router/services/include/services.h

    r29062 r33092  
    240240void start_cloud4wi_provisioning(void);
    241241#endif
     242
     243
     244void start_modules(void);
     245void start_radio_on(void);
     246void start_radio_off(void);
     247
     248void start_radio_timer(void);
     249void stop_radio_timer(void);
     250void start_milkfish_boot(void);
     251
     252void start_bridging(void);
     253void stop_bridging(void);
     254void start_bridgesif(void);
     255void stop_bridgesif(void);
     256void start_vlantagging(void);
     257void stop_vlantagging(void);
     258void start_stabridge(void);
     259void stop_stabridge(void);
     260void start_bonding(void);
     261void stop_bonding(void);
     262void start_ttraff(void);
     263void stop_ttraff(void);
     264void start_run_rc_shutdown(void);
     265void start_run_rc_startup(void);
     266void stop_run_rc_startup(void);
     267void start_bonding(void);
     268void start_overclocking(void);
     269void stop_mkfiles(void);
     270void stop_ipv6(void);
Note: See TracChangeset for help on using the changeset viewer.