void listen_and_process_wps_event(struct network_info_t *info) { printf("listening wps notification...\n"); while(1){ inband_wait_event(info); } }
int main(int argc, char *argv[]) { int pid_fd, pid, scr; char tmpbuf[100]; int chan; /* INBAND_HOST ---> */ if (parse_argument(argc, argv) != 0) return 0; // printf("%s,%d, ****************\n",__FUNCTION__,__LINE__); // create pid file pid_fd = pidfile_acquire(PID_FILE); if (pid_fd < 0) { printf("Create PID file failed!\n"); return 0; } pidfile_write_release(pid_fd); DISPLAY_BANNER; // register signal handler #ifdef CMD_LINE signal(SIGUSR2, manual_cmd_handler); #endif signal(SIGCHLD, sigchld_handler); chan = inband_open(INBAND_NETIF,NULL,ETH_P_RTK,INBAND_DEBUG); if(chan < 0) { printf(" inband_open failed!\n"); return -1; } else hcd_inband_chan = chan; //event_channel = inband_open(INBAND_INTF,NULL,INBAND_EVENT_TYPE,INBAND_DEBUG); //if( event_channel < 0 ) // return -1; while(1){ inband_wait_event(); } }
int main(int argc, char *argv[]) { int pid_fd, pid, scr; char tmpbuf[100]; int chan; /* INBAND_HOST ---> */ struct iwreq wrq; /* INBAND_HOST <--- */ if (parse_argument(argc, argv) != 0) return 0; // become daemon if (daemon(0,1) == -1) { printf("fork daemon error!\n"); return 0; } // create pid file pid_fd = pidfile_acquire(PID_FILE); if (pid_fd < 0) { printf("Create PID file failed!\n"); return 0; } pidfile_write_release(pid_fd); DISPLAY_BANNER; // initialize mib init_config_mib(); // register signal handler #ifdef CMD_LINE signal(SIGUSR2, manual_cmd_handler); #endif signal(SIGCHLD, sigchld_handler); // open mdio driver #ifdef RTK_NFBI_AP_HCM mdio_fd = open(DEV_NAME, O_RDWR); if (!mdio_fd) { printf("open driver failed!\n"); return 1; } #endif init_bridge(); bring_up_lan(); bring_up_br(); sleep(1); chan = inband_open(INBAND_NETIF,NULL,ETH_P_RTK,INBAND_DEBUG); if(chan < 0) { printf(" inband_open failed!\n"); return -1; } else hcd_inband_chan = chan; // Set daemon pid to driver. // When this ioctl is set, driver will set AllSoftwareReady bit to 'CPU System Status' Register pid = getpid(); #ifdef RTK_NFBI_AP_HCM if (do_mdio_ioctl(id_set_host_pid, (void *)&pid)) //mark_issue , if it is need then mdio_open must be done return 1; #endif ioctl_sock = socket(PF_INET, SOCK_DGRAM, 0); if (ioctl_sock < 0) { perror("socket[PF_INET,SOCK_DGRAM]"); return -1; } /* INBAND_HOST ---> */ /* Get wireless name */ memset(wrq.ifr_ifrn.ifrn_name, 0, sizeof wrq.ifr_ifrn.ifrn_name); strncpy(wrq.ifr_ifrn.ifrn_name, "wlan0", IFNAMSIZ); pid = getpid(); wrq.u.data.pointer = (caddr_t)&pid; wrq.u.data.length = sizeof(pid_t); if(ioctl(ioctl_sock, SIOCSAPPPID, &wrq) < 0) { // If no wireless name : no wireless extensions return(-1); } event_channel = inband_open(INBAND_INTF,INBAND_HOST,INBAND_EVENT_TYPE,INBAND_DEBUG); if( event_channel < 0 ) return -1; signal(SIGIO, notify_host); /* INBAND_HOST <--- */ //init_system(INIT_ALL); //mark_debug while(1){ inband_wait_event(); } }