⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itgrecv.h

📁 D-ITG2.4源代码
💻 H
字号:
 /*	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.
 */
 
 




#define MSG_FT_OK 1
#define MSG_FT_ERR1 2
#define MSG_FT_ERR2 3





struct paramThread {
	BYTE l7Proto;				    
	struct addrinfo destHost;		
	int flowId;				        
	info *addressInfos;			    
	int count;				        
	int socket;				        
	int socketClose;		    	
	BYTE meter;				        
	char *fileLog;
	int logSock;				        
    struct addrinfo *logHost;
    char serial[DIM_NAME_SERIAL_INTERFACE];
#ifdef LINUX_OS
	int rPipe[2];
#endif
#ifdef WIN32
	HANDLE rPipe[3];
#endif

};


struct memChannel {		
	int flowId;				
	BYTE l4Proto;			
};


struct manageLogFile{
	ofstream out;				 
	int num;
	char logFile[DIM_LOG_FILE]; 
};



extern const char DEFAULT_LOG_FILE[];


extern int flagTerm;


extern struct addrinfo *logHost;


extern int logCheck;


extern int logRemote;


extern BYTE l4ProtoLog;	


extern ofstream out;


extern int sockSignaling;


extern char logFile[DIM_LOG_FILE];

#ifdef WIN32

extern HANDLE mutexLog;

extern int userId;
#endif

#ifdef LINUX_OS

extern pthread_mutex_t mutexLog;

extern uid_t userId;
#endif




void *signalManager(void *param);


void printHelpAndExit();



void terminate(int sign);


void reportErrorAndExit(char *function, char *program, char *msg);


int sendAck(int signaling, BYTE typeMessage);


int sendAckFlow(int signaling,BYTE typeMessage,int flowId);



void recvInit();



void parserRecv(int argc , char *argv[]);






#ifdef WIN32
int typeParser(BYTE type, int &numFlow, int newSockSignaling , memChannel flowIdNum[],
		  paramThread paraThread[], pthread_t hThr[], HANDLE rPipe[], char *fileLog, int logSock, int logSockSignaling,
          struct addrinfo *logHost);
#endif

#ifdef LINUX_OS
int typeParser(BYTE type, int &numFlow, int newSockSignaling , memChannel flowIdNum[],
		  paramThread paraThread[], pthread_t hThr[], int rPipe[], char *fileLog, int logSock, int logSockSignaling,
          struct addrinfo *logHost);
#endif


#ifdef WIN32
void pipeParser(int newSockSignaling,int &numFlow, HANDLE rPipe[], memChannel flowIdNum[],
		   paramThread paraThread[], pthread_t hThr[]);
#endif

#ifdef LINUX_OS
void pipeParser(int newSockSignaling,int &numFlow, int rPipe[], memChannel flowIdNum[],
		   paramThread paraThread[], pthread_t hThr[]);
#endif



void createRemoteLogFile(struct addrinfo &logHost, char logFile[DIM_LOG_FILE], BYTE protocolLog, int & logSockSignaling, int & logSock);



void createSignalingLogChannel(struct addrinfo logHost, char logFile[DIM_LOG_FILE], BYTE protocolLog, int & logSockSignaling);


void recvFlowLog(int newSockSignaling, struct addrinfo & logHost, BYTE &protocolLog, char logFile[]);



void flushBuffer(ofstream *, struct info *infos , int count);
void recvNameLog(char nameFile[DIM_LOG_FILE],int newSockSignaling);
void copia(const struct addrinfo* src, struct addrinfo & dst);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -