Exemplo n.º 1
0
void listen_and_process_wps_event(struct network_info_t *info)
{
	printf("listening wps notification...\n");
	while(1){		
		inband_wait_event(info);   
	}
}
Exemplo n.º 2
0
Arquivo: hcd.c Projeto: jhbsz/cpe-1
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();   
	}	
}
Exemplo n.º 3
0
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();   
	}	
}