亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? data.cpp

?? D-ITG2.4源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
 /*	Component of the D-ITG 2.4 Platform
 *
 * 	
 *	copyright	: (C) 2004  	by Stefano Avallone, Alessio Botta, Donato Emma, 
 *					Salvatore Guadagno, Antonio Pescape'
 *					DIS Dipartimento di Informatica e Sistemistica				 
 *					(Computer Science Department)
 *					University of Naples "Federico II"	
 *	email:		: {stavallo, pescape}@unina.it, {abotta, demma, sguadagno}@napoli.consorzio-cini.it
 *
 *	This program is free software; you can redistribute it and/or modify
 *	it under the terms of the GNU General Public License as published by
 *	the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 */
 
 


#include "../common/ITG.h"
#include "../common/serial.h"
#include "../common/pipes.h"
#include "../common/thread.h"
#include "../common/timestamp.h"
#include "ITGRecv.h"
#include "data.h"

#ifdef LINUX_OS
#include <netinet/ip.h>
#endif




void *icmpSock(void *param)
{
#ifdef WIN32
	
	int first = 1;
#endif
   	
	int dimheader = 0;
	
	     
   	HANDLE hComm;

	
	paramThread *paraThread;
	
	paraThread = (paramThread *) param;
	
	int sock = 0;
	
	unsigned char buffer[MAX_PAYLOAD_SIZE + 32];
	
	unsigned char payload[MAX_PAYLOAD_SIZE];
	
	struct info *infos = (struct info *) malloc(DIM * sizeof(info));
	
	struct addrinfo SrcAddress;

	
	int size_r = 0;
	
	struct timeval RcvTime;
	#ifdef WIN32
	
	struct addrinfo* sockAddress;

	

	
	LARGE_INTEGER _tstart, _tend;
	

	
	unsigned long secs = 0, msecs = 0;
#endif

#ifdef DEBUG
	
	int numRecvdPkt = 0;
#endif

	
	char *ptrSeqNum = (char *) payload + sizeof(unsigned int);
	
	char *ptrTimeSec = ptrSeqNum + sizeof(unsigned int);
	
	char *ptrTimeUsec = ptrTimeSec + sizeof(long int);

	
	paraThread->addressInfos = infos;
	
	paraThread->count = 0;

	if (strcmp(paraThread->serial,"noSerial")!=0) {
		hComm = serialUp(paraThread->serial);
        if (hComm == INVALID_HANDLE_VALUE)
             printf("Error opening interface %s \n", paraThread->serial);
    }

	
	sock = socket(paraThread->destHost.ai_family, SOCK_RAW,
		(paraThread->destHost.ai_family == AF_INET) ? IPPROTO_ICMP : IPPROTO_ICMPV6);
	if (sock < 0) {
		
		struct pipeMsg msg;
		printf("icmpSock - error into create socket");

		msg.code = MSG_FT_ERR2;
		msg.flowId = paraThread->flowId;
		if (sendPipeMsg(paraThread->rPipe, &msg) < 0) {
			printf(" sending msg error");
		}
		sleep(INFINITE);
	}

#ifdef WIN32

#ifdef IPv6RECV
	if ( getaddrinfo("::", NULL, NULL, &sockAddress) != 0)
		reportErrorAndExit("icmpSock","getaddrinfo IPv6","Cannot set the default IP log address");

#else
	if ( getaddrinfo("0.0.0.0", NULL, NULL, &sockAddress) != 0)
		reportErrorAndExit("icmpSock","getaddrinfo IPv4","Cannot set the default IP log address");
#endif
	
	if ( bind(sock, sockAddress->ai_addr, sockAddress->ai_addrlen))
		reportErrorAndExit("icmpSock","bind","Cannot bind a socket on port");
#endif


	
	
	struct pipeMsg msg;
	msg.code = MSG_FT_OK;
	msg.flowId = paraThread->flowId;
	if (sendPipeMsg(paraThread->rPipe, &msg) < 0) {
		printf("error into sending msg to signal manager");
	}

	printf("Listening ICMP traffic \n");
	
	paraThread->socketClose = sock;
	
	SrcAddress.ai_family = paraThread->destHost.ai_family;
	
	if (SrcAddress.ai_family == PF_INET) {
		
		SrcAddress.ai_addr = (struct sockaddr *) malloc(sizeof(struct sockaddr_in));
		
		SrcAddress.ai_addrlen = sizeof(struct sockaddr_in);
		
		dimheader = sizeof(icmp) + sizeof(iphdr);

	
	} else if (SrcAddress.ai_family == PF_INET6) {
		
		SrcAddress.ai_addr = (struct sockaddr *) malloc(sizeof(struct sockaddr_in6));
		
		SrcAddress.ai_addrlen = sizeof(struct sockaddr_in6);
		
		dimheader = sizeof(icmpv6);
	}
	
	int firstpacket = 1;
	char HelpSrcAddress[INET6_ADDRSTRLEN];
	char HelpDstAddress[INET6_ADDRSTRLEN];
	int tmpPort_SrcPort;
	int tmpPort_DstPort;
	
	TSTART(_tstart, secs, msecs, first, 0, RECEIVER);
	
	while (1) {
		
		size_r =
		    recvfrom(sock, (char *) buffer, MAX_PAYLOAD_SIZE + dimheader, 0,
		    SrcAddress.ai_addr, (socklen_t *) & SrcAddress.ai_addrlen);

			printf("ICMP Pkt Receiver : Received RAW Packet :%d\n", size_r);

#ifdef DEBUG
			printf("ICMP Pkt Receiver : Received RAW Packet :%d\n", size_r);
#endif
		if (size_r < 0)
			reportErrorAndExit("icmpSock","recvfrom","Cannot receive RAW packets");
		
		char *ptr = (char *) buffer;		
		
		
		ptr = ptr + dimheader;
		
		
		size_r = size_r - dimheader;
		
		
		memcpy(&payload, ptr, size_r);

	        if (hComm != INVALID_HANDLE_VALUE){
        	      DTR_Disable(hComm);
              	      DTR_Enable(hComm);
        	}

		
		GET_TIME_OF_DAY(&RcvTime, _tend, _tstart, secs, msecs, 0, RECEIVER);

		

		
		if ((logCheck != 0) || (logRemote != 0)) {
			if (firstpacket == 1) {
				getInfo(&SrcAddress, tmpPort_SrcPort, HelpSrcAddress);
				getInfo(&paraThread->destHost, tmpPort_DstPort, HelpDstAddress);
				firstpacket = 0;
			}
			writeInBuffer(&infos[paraThread->count],*(unsigned int *) payload,*(unsigned int *) ptrSeqNum,
                               HelpSrcAddress, HelpDstAddress, tmpPort_SrcPort, tmpPort_DstPort, *(long int *) ptrTimeSec, RcvTime.tv_sec % 86400L,
                               *(long int *) ptrTimeUsec, RcvTime.tv_usec, size_r);
#ifdef DEBUG
numRecvdPkt:++;
#endif
			
			paraThread->count++;
			
			if (paraThread->count == DIM) {
			

			if (logCheck ==!0)
				flushBuffer((ofstream *) paraThread->fileLog, infos , DIM);
			
			else  if (logRemote != 0) {
					if ( sendto(paraThread->logSock, (char *) infos,
							DIM * sizeof(struct info), 0, paraThread->logHost->ai_addr,
							paraThread->logHost->ai_addrlen) < 0)
						reportErrorAndExit("icmpSock","sendto","Cannot send log infos to LogServer");
#ifdef DEBUG
					printf("ICMP Pkt Receiver : Sent Infos to LogServer\n");
#endif
				}
				
				paraThread->count = 0;
			}	
		}	
	}	
}	





void *udpSock(void *param)
{
#ifdef WIN32
	
	int first = 1;
#endif
	
	HANDLE hComm;

	
	paramThread *paraThread;

	
	paraThread = (paramThread *) param;
	
	int sock = 0;
	
	unsigned char payload[MAX_PAYLOAD_SIZE];
	
	struct info *infos = (struct info *) malloc(DIM * sizeof(info));
	
	struct addrinfo SrcAddress;
	
	in_port_t tmpPort = 0;
	
	int size_r = 0;
	
	unsigned char *ptrSeqNum = payload + sizeof(unsigned int);
	
	unsigned char *ptrTimeSec = ptrSeqNum + sizeof(unsigned int);
	
	unsigned char *ptrTimeUsec = ptrTimeSec + sizeof(long int);
	
	struct timeval RcvTime;
#ifdef WIN32
	

	
	LARGE_INTEGER _tstart, _tend;
	

	
	unsigned long secs = 0, msecs = 0;
#endif

#ifdef DEBUG
	
	int numRecvdPkt = 0;
#endif
	
	paraThread->addressInfos = infos;
	
	paraThread->count = 0;

	if (strcmp(paraThread->serial,"noSerial")!=0) {
		hComm = serialUp(paraThread->serial);
        if (hComm == INVALID_HANDLE_VALUE)
             printf("Error opening interface %s \n", paraThread->serial);
 	}

	
	sock = socket(paraThread->destHost.ai_family, SOCK_DGRAM, 0);
	if (sock < 0)
		reportErrorAndExit("udpSock","socket","Cannot create a DATAGRAM socket on port");


       if (bind(sock, paraThread->destHost.ai_addr, paraThread->destHost.ai_addrlen) < 0) {
	      
	 	printf("Error into bind function!\n");
		struct pipeMsg msg;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品亚洲aⅴ乱码一区二区三区| 国产精品国产精品国产专区不蜜 | 91麻豆精东视频| 久久婷婷成人综合色| 美女精品自拍一二三四| 欧美一级精品大片| 麻豆精品精品国产自在97香蕉| 日韩一二三四区| 国产一区亚洲一区| 国产日本一区二区| 91蜜桃在线观看| 午夜精品国产更新| 欧美一级在线免费| 国产成人亚洲综合a∨婷婷| 中文字幕一区二区三区在线不卡| 91久久精品一区二区二区| 亚洲高清免费在线| 日韩欧美色综合网站| 国产精品影视网| 亚洲女同ⅹxx女同tv| 欧美日韩久久一区| 国产一区二区免费在线| 91精品国产黑色紧身裤美女| 精品日韩av一区二区| 一区二区欧美视频| 成人午夜在线视频| 欧美mv和日韩mv的网站| 亚洲自拍偷拍网站| 国产福利视频一区二区三区| 在线观看91av| 亚洲午夜精品在线| 91麻豆国产精品久久| 国产精品视频你懂的| 亚洲精品国产一区二区精华液| 国产不卡免费视频| 亚洲免费在线视频一区 二区| 在线观看日韩毛片| 蜜桃视频在线观看一区| 亚洲视频1区2区| 91精品国产色综合久久不卡蜜臀| 五月天国产精品| 国产日产欧美一区| 欧亚洲嫩模精品一区三区| 久久91精品国产91久久小草 | 亚洲丝袜另类动漫二区| 欧美老肥妇做.爰bbww视频| 久久66热偷产精品| 亚洲综合男人的天堂| 欧美v日韩v国产v| 色婷婷精品久久二区二区蜜臀av| 丝袜诱惑制服诱惑色一区在线观看| 国产亚洲一区二区在线观看| 国产成人免费高清| 婷婷综合久久一区二区三区| 久久人人97超碰com| 4438x成人网最大色成网站| 国产精品综合二区| 麻豆久久一区二区| 亚洲综合无码一区二区| 国产精品妹子av| 欧美xxxxx牲另类人与| 成人开心网精品视频| 午夜精品久久久久久久蜜桃app| 国产亚洲人成网站| 久久蜜桃一区二区| 在线不卡中文字幕| 欧美三级在线视频| 成人黄页毛片网站| 国产91精品露脸国语对白| 日本欧美加勒比视频| 亚洲国产精品自拍| 亚洲人成伊人成综合网小说| 欧美一级夜夜爽| 欧美一区二区久久久| 色中色一区二区| 91黄色免费网站| 99精品久久免费看蜜臀剧情介绍| 久久精品国产99| 日韩国产精品大片| 免费观看在线综合| 亚洲成在线观看| 亚洲18影院在线观看| 亚洲精品视频在线观看免费 | 亚洲人吸女人奶水| 专区另类欧美日韩| 国产精品色眯眯| 亚洲欧洲日韩av| 国产精品网曝门| 最新高清无码专区| 亚洲色图19p| 国产精品毛片a∨一区二区三区| 久久久99精品免费观看| 欧美一区二区三区在线观看 | 三级在线观看一区二区| 秋霞成人午夜伦在线观看| 视频一区二区三区在线| 激情另类小说区图片区视频区| 奇米影视一区二区三区| 韩国午夜理伦三级不卡影院| 国内精品视频一区二区三区八戒 | 黄页网站大全一区二区| 一区二区三区在线看| 亚洲高清免费观看| 一区二区三区四区乱视频| 亚洲一二三级电影| 日韩av一级片| 国产.欧美.日韩| 成人av免费在线| 欧美喷潮久久久xxxxx| 51精品秘密在线观看| 国产午夜精品一区二区三区嫩草| 久久久综合视频| 一区二区三区久久| 婷婷国产在线综合| 国产ts人妖一区二区| 成人av在线影院| 欧美美女激情18p| 久久久久久一二三区| 亚洲美女区一区| 天天综合网 天天综合色| 国产激情一区二区三区四区 | 色欧美片视频在线观看| 欧美日韩一卡二卡三卡| 国产人成一区二区三区影院| 亚洲欧美一区二区久久| 极品销魂美女一区二区三区| 成人av在线看| 精品国产麻豆免费人成网站| 日韩美女天天操| 亚洲精品一卡二卡| 日韩高清国产一区在线| 成人91在线观看| 欧美亚洲自拍偷拍| 亚洲国产精品激情在线观看| 中文字幕佐山爱一区二区免费| 蜜臀av亚洲一区中文字幕| 丁香六月久久综合狠狠色| 欧美日本在线播放| 国产女同互慰高潮91漫画| 蜜桃久久久久久久| 97精品电影院| 久久精品一区八戒影视| 中文字幕一区二区三区不卡在线 | 国产亚洲短视频| 免费不卡在线视频| 国产麻豆精品久久一二三| 欧美日韩亚洲另类| 久久久久久夜精品精品免费| 麻豆精品一区二区| 91理论电影在线观看| 国产日韩精品久久久| 午夜精品久久久久久久99樱桃| 99久久99久久久精品齐齐| 欧美一级日韩免费不卡| 亚洲h精品动漫在线观看| 成人涩涩免费视频| 久久久三级国产网站| 亚洲一区二区综合| 日本高清成人免费播放| 欧美精品第一页| 亚洲成人7777| 欧美日韩一卡二卡三卡| 亚洲婷婷国产精品电影人久久| 国产成人在线电影| 精品久久久久久久久久久久久久久久久 | 成人在线综合网| 欧美日韩精品一区二区三区| 夜夜爽夜夜爽精品视频| 国产一区二区伦理片| 久久一夜天堂av一区二区三区| 亚洲一区在线免费观看| 在线视频欧美精品| 中文字幕不卡在线观看| 成人福利视频在线看| 国产精品久久久久久久久免费相片| 免费久久精品视频| 精品日本一线二线三线不卡| 老司机精品视频在线| 日韩一区二区精品葵司在线| 日日夜夜免费精品视频| 91麻豆精品国产91久久久久久久久| 亚洲欧美日韩国产综合| 欧美日韩在线观看一区二区| 一区二区三区加勒比av| 欧美日韩精品免费观看视频| 亚洲综合图片区| 91精品欧美福利在线观看| 香蕉久久夜色精品国产使用方法| 欧美高清你懂得| 日本免费新一区视频| 久久欧美一区二区| 国产成人在线色| 亚洲专区一二三| 7777精品伊人久久久大香线蕉| 久久成人免费电影| 久久美女艺术照精彩视频福利播放 | 国产精品国产精品国产专区不片| 色综合天天综合给合国产| 亚洲激情自拍偷拍| 91精品国产丝袜白色高跟鞋|