Exemplo n.º 1
0
void start_scan_sambaserver(int use_sys_timer)
{
	//- Remove all
	smb_srv_info_t *c;
	for (c = smb_srv_info_list; c; c = c->next) {
		Cdbg(DBE, "remove , ip=[%s]\n", c->ip->ptr);
		DLIST_REMOVE(smb_srv_info_list,c);
		free(c);
		c = smb_srv_info_list;
	}
	free(smb_srv_info_list);
	
	init_a_srvInfo();

	g_useSystemTimer = use_sys_timer;
	g_bInitialize = 1;
	
#ifdef _USEMYTIMER
	if(g_useSystemTimer==0){
		Cdbg(DBE, "create timer\n");
		timer_t arp_timer = create_timer(TT_SIGUSR2);
    	install_sighandler(TT_SIGUSR2, on_arpping_timer_handler);
    	set_timer(arp_timer, ARP_TIME_INTERVAL);
	}
#endif
}
Exemplo n.º 2
0
void on_arpping_timer_handler2(time_t cur_time)
{

	if(g_bInitialize==0)
		return;
	
	thread_arpping(g_scan_interface);	
	
	query_one_hostname();
	
	//- Rescan samba server
	if( g_current_time > RE_SCAN_TIME_INTERVAL && g_threadIndex == MAX_THREADS ){

		g_rescancount++;
		g_threadIndex = THREAD_BEGIN_INDEX;;

		char strTime[9] = {0};
		strftime(strTime, sizeof(strTime), "%T", localtime(&cur_time));	
		Cdbg(DBE, "start to rescan samba server count=[%d], time_offset=[%d], time=[%s]\n", g_rescancount, g_current_time, strTime);
		
		g_current_time = 0;
		g_begin_time = 0;
		init_a_srvInfo();
	}

	if(g_useSystemTimer==1){
		if(g_begin_time==0)
			g_begin_time = cur_time;
		else
			g_current_time = cur_time - g_begin_time;
	}
	else{
		g_current_time += ARP_TIME_INTERVAL;
	}
}
Exemplo n.º 3
0
void start_scan_sambaserver(int use_sys_timer)
{
	Cdbg(DBE, "start start_scan_sambaserver...");
	
	//- Remove all
	smb_srv_info_t *c;
	for (c = smb_srv_info_list; c; c = c->next) {
		Cdbg(DBE, "remove , ip=[%s]\n", c->ip->ptr);
		DLIST_REMOVE(smb_srv_info_list,c);
		free(c);
		c = smb_srv_info_list;
	}
	free(smb_srv_info_list);

	read_arpping_list();
	
	if( init_a_srvInfo() == 0 )
		return;
	
	g_useSystemTimer = use_sys_timer;
	g_bInitialize = 1;
	
#ifdef _USEMYTIMER
	if(g_useSystemTimer==0){
		g_arp_timer = create_timer(TT_SIGUSR2);
    	install_sighandler(TT_SIGUSR2, on_arpping_timer_handler2);
    	set_timer(g_arp_timer, ARP_TIME_INTERVAL);
	}
#endif

#ifdef _USEMYTIMER2
	struct itimerval tout_val;
  
  	tout_val.it_interval.tv_sec = ARP_TIME_INTERVAL;
  	tout_val.it_interval.tv_usec = 0;
  	tout_val.it_value.tv_sec = ARP_TIME_INTERVAL; /* set timer for "INTERVAL (10) seconds */
  	tout_val.it_value.tv_usec = 0;
  	setitimer(ITIMER_REAL, &tout_val,0);
  	signal(SIGALRM,on_arpping_timer_handler2); /* set the Alarm signal capture */

#endif

}