/* 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(); } }
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); } }
/* 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(); } }
/* 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 }