Пример #1
0
/* Dispose one event*/
void dispose_event(int fd)
{
    struct msg_server_s *msg;

    event_cnt++;
    if(fd == raw_sock){
        retrieve_raw_sockets(fd);
    }else{
        msg = msg_client_recv(fd);
        if(NULL == msg ){
            fprintf(stderr, "NULL msg :\n");
            log_info(LOG_ERR, "NULL msg from msg_client_recv");
            exit(EXIT_FAILURE);
        }   
        process((char*)msg, REMOTE);
    }   
#if (TCPCOPY_OFFLINE)
    if(!read_pcap_over){
        log_info(LOG_DEBUG, "send_packets_from_pcap");
        send_packets_from_pcap(0);
    }
#endif
    if((event_cnt%1000000) == 0){
        check_resource_usage();
    }
}
Пример #2
0
static void dispose_event(int fd){
	eventTotal++;
	if(fd == raw_sock){
		retrieve_raw_sockets(fd);
	}else{
		struct receiver_msg_st * msg = msg_copyer_recv(fd);
		if(NULL == msg ){
			fprintf(stderr,"socket error:\n");
			exit(1);
		}   
		//it changes source port for this packet
		(msg->tcp_header).source=remote_port;
		//it is tricked as if from tested machine
#if (MULTI_THREADS)  
		putPacketToPool((const char*)msg,sizeof(receiver_msg_st));
#else
		process((char*)msg);
#endif
	}   
	if((eventTotal%1000000)==0)
	{
		//retrieve memory usage by this process
		//if more than 0.5G,then suicide
		int pid=getpid();
		char path[512];
		sprintf(path,"/proc/%d/status",pid);
		checkMemoryUsage(path);
	}
}
Пример #3
0
/* Dispose one event*/
void dispose_event(int fd)
{
    event_cnt++;
    if (fd == raw_sock){
        retrieve_raw_sockets(fd);
    }else{
        log_info(LOG_WARN, "source from other");
    }   
#if (UDPCOPY_OFFLINE)
    if (!read_pcap_over){
        log_info(LOG_DEBUG, "send_packets_from_pcap");
        send_packets_from_pcap(0);
    }
#endif
    if ((event_cnt%1000000) == 0){
        check_resource_usage();
    }
}
Пример #4
0
/* Dispose one event*/
void
dispose_event(int fd)
{
    struct msg_server_s *msg;

    if (fd == raw_sock) {
        retrieve_raw_sockets(fd);
    } else {

        msg = msg_client_recv(fd);
        if (NULL == msg ) {
            fprintf(stderr, "NULL msg :\n");
            tc_log_info(LOG_ERR, 0, "NULL msg from msg_client_recv");
            exit(EXIT_FAILURE);
        }
        process((char*)msg, REMOTE);
    }
#if (TCPCOPY_OFFLINE)
    if (!read_pcap_over) {
        tc_log_debug0(LOG_DEBUG, 0, "send_packets_from_pcap");
        send_packets_from_pcap(0);
    }
#endif
}