diff --git a/plugin/business/decrypt-mirroring/include/internal/mirror_stream.h b/plugin/business/decrypt-mirroring/include/internal/mirror_stream.h index 3ece5f4..7e36501 100644 --- a/plugin/business/decrypt-mirroring/include/internal/mirror_stream.h +++ b/plugin/business/decrypt-mirroring/include/internal/mirror_stream.h @@ -6,9 +6,6 @@ #include -#define DELIVER_DIR_C2S 0x01 -#define DELIVER_DIR_S2C 0x02 - struct origin_stream_addr { diff --git a/plugin/business/decrypt-mirroring/include/internal/mirror_stream_inl.h b/plugin/business/decrypt-mirroring/include/internal/mirror_stream_inl.h index b591883..5b813b2 100644 --- a/plugin/business/decrypt-mirroring/include/internal/mirror_stream_inl.h +++ b/plugin/business/decrypt-mirroring/include/internal/mirror_stream_inl.h @@ -99,7 +99,7 @@ struct deliver_session_info struct deliver_pme_info { unsigned char dst_macaddr[DELIVER_MACADDR_LEN]; - struct tfe_stream_addr* addr_info; + const struct tfe_stream_addr* addr_info; struct deliver_pkt_info pkt_info; struct deliver_session_info session_info; }; @@ -121,5 +121,15 @@ struct deliver_sendpkt_info struct deliver_recver_info* receiver_info; }; +struct deliver_globle_info +{ + char *fs2_name[FS2_COLUMN_NUM]; + unsigned char* sendbuf[MAX_THREAD_NUM]; + struct deliver_comm_info comminfo; + struct deliver_sendpkt_info sendinfo; + struct deliver_fs2_info fs2info; + + +}; #endif diff --git a/plugin/business/decrypt-mirroring/include/internal/sendpkt-inl.h b/plugin/business/decrypt-mirroring/include/internal/sendpkt-inl.h index a139b0a..cc9c57a 100644 --- a/plugin/business/decrypt-mirroring/include/internal/sendpkt-inl.h +++ b/plugin/business/decrypt-mirroring/include/internal/sendpkt-inl.h @@ -128,13 +128,13 @@ int deliver_build_ethhdr(unsigned char *dst, unsigned char *src, unsigned short int deliver_build_ipv6(unsigned char traffic_class, unsigned int flow_lable, unsigned short len, unsigned char next_header, unsigned char hop, const struct in6_addr *src, const struct in6_addr *dst, - const char *payload, int payload_s, unsigned char *buf); + const unsigned char *payload, int payload_s, unsigned char *buf); int deliver_build_ipv4(unsigned short carry_layer_len, unsigned char tos, unsigned short id, unsigned short frag, unsigned char ttl, unsigned char prot, unsigned int src, unsigned int dst, - const char *payload,int payload_s, unsigned char *buf); + const unsigned char *payload,int payload_s, unsigned char *buf); int deliver_build_tcp(unsigned short sp, unsigned short dp, unsigned int seq, unsigned int ack, unsigned char th_flags, unsigned short win, unsigned short urg, - const char *payload, int payload_s, unsigned char *buf); + const unsigned char *payload, int payload_s, unsigned char *buf); #endif diff --git a/plugin/business/decrypt-mirroring/src/mirror_stream.cpp b/plugin/business/decrypt-mirroring/src/mirror_stream.cpp index 3896e31..cec661e 100644 --- a/plugin/business/decrypt-mirroring/src/mirror_stream.cpp +++ b/plugin/business/decrypt-mirroring/src/mirror_stream.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -25,26 +26,19 @@ int g_deliver_version_VERSION_20180718; -unsigned char* g_deliver_sendbuf[MAX_THREAD_NUM]; +struct deliver_globle_info g_deliver_globle_info; -struct deliver_comm_info g_deliver_comminfo; -struct deliver_sendpkt_info g_deliver_sendinfo; -struct deliver_fs2_info g_deliver_fs2info; - - -const char *g_deliver_fs2_name[FS2_COLUMN_NUM] ={"RECV_PKTS","RECV_BYTES","SEND_PKTS","SEND_BYTES","ERROR_PKTS"}; - int deliver_set_filestate2(int thread_seq,int colum_index,int value) { - if(thread_seq>=g_deliver_comminfo.threadnum) + if(thread_seq>=g_deliver_globle_info.comminfo.threadnum) { - MESA_handle_runtime_log(g_deliver_comminfo.logger,RLOG_LV_FATAL,"deliver_set_filestate2","thread_seq:%d,thread_num:%d",thread_seq,g_deliver_comminfo.threadnum); + MESA_handle_runtime_log(g_deliver_globle_info.comminfo.logger,RLOG_LV_FATAL,"deliver_set_filestate2","thread_seq:%d,thread_num:%d",thread_seq,g_deliver_globle_info.comminfo.threadnum); } - g_deliver_fs2info.column_value[thread_seq][colum_index]+=value; + g_deliver_globle_info.fs2info.column_value[thread_seq][colum_index]+=value; return 0; @@ -65,27 +59,27 @@ int deliver_filestate2_init(char* filepath) MESA_load_profile_uint_def((char*)filepath,(char*)DELIVER_CONF_MODE,(char*)"filestat2_sport",(unsigned int*)&fs2_sport,8125); MESA_load_profile_uint_def((char*)filepath,(char*)DELIVER_CONF_MODE,(char*)"filestat2_trans_switch",(unsigned int*)&trans_switch,0); - g_deliver_fs2info.handler=FS_create_handle(); + g_deliver_globle_info.fs2info.handler=FS_create_handle(); - FS_set_para(g_deliver_fs2info.handler, OUTPUT_DEVICE,fs2_filename, strlen(fs2_filename)+1); - FS_set_para(g_deliver_fs2info.handler, PRINT_MODE, &value, sizeof(value)); - FS_set_para(g_deliver_fs2info.handler, STAT_CYCLE, &value, sizeof(value)); - FS_set_para(g_deliver_fs2info.handler, CREATE_THREAD, &value, sizeof(value)); - FS_set_para(g_deliver_fs2info.handler, APP_NAME, FS2_APPNAME, strlen(FS2_APPNAME)+1); + FS_set_para(g_deliver_globle_info.fs2info.handler, OUTPUT_DEVICE,fs2_filename, strlen(fs2_filename)+1); + FS_set_para(g_deliver_globle_info.fs2info.handler, PRINT_MODE, &value, sizeof(value)); + FS_set_para(g_deliver_globle_info.fs2info.handler, STAT_CYCLE, &value, sizeof(value)); + FS_set_para(g_deliver_globle_info.fs2info.handler, CREATE_THREAD, &value, sizeof(value)); + FS_set_para(g_deliver_globle_info.fs2info.handler, APP_NAME, FS2_APPNAME, strlen(FS2_APPNAME)+1); if(trans_switch==1) { - FS_set_para(g_deliver_fs2info.handler, STATS_SERVER_IP, fs2_sip, strlen(fs2_sip)+1); - FS_set_para(g_deliver_fs2info.handler, STATS_SERVER_PORT,&fs2_sport,sizeof(int)); + FS_set_para(g_deliver_globle_info.fs2info.handler, STATS_SERVER_IP, fs2_sip, strlen(fs2_sip)+1); + FS_set_para(g_deliver_globle_info.fs2info.handler, STATS_SERVER_PORT,&fs2_sport,sizeof(int)); } for(i=0;ilen,pkt_info->dir, pkt_info->seq,pkt_info->ack,pkt_info->ipid,pkt_info->win,pkt_info->flag); break; case DELIVER_FLAG_RECVPKT: - MESA_handle_runtime_log(g_deliver_comminfo.logger,level,module,"addr:%s,%d,%s,%d,dir:%d,recv_len:%d", + MESA_handle_runtime_log(g_deliver_globle_info.comminfo.logger,level,module,"addr:%s,%d,%s,%d,dir:%d,recv_len:%d", saddr_v6,sport,daddr_v6,dport,pkt_info->dir,recv_len); break; case DELIVER_FLAG_ENT: - MESA_handle_runtime_log(g_deliver_comminfo.logger,level,module,"addr:%s,%d,%s,%d,recvpkt:%d,recvbyte:%lld,sendpkt:%d,sendbytes:%lld", + MESA_handle_runtime_log(g_deliver_globle_info.comminfo.logger,level,module,"addr:%s,%d,%s,%d,recvpkt:%d,recvbyte:%lld,sendpkt:%d,sendbytes:%lld", saddr_v6,sport,daddr_v6,dport,session_info->recv_pkt,session_info->recv_byte, session_info->send_pkt,session_info->recv_byte); break; @@ -183,16 +177,16 @@ int deliver_debug_log_v4(int level,char* module,struct deliver_pme_info* pmeinfo switch(flag) { case DELIVER_FLAG_SENDPKT: - MESA_handle_runtime_log(g_deliver_comminfo.logger,level,module,"addr:%s,%d,%s,%d,len:%d,dir:%d,seq:%u,ack:%u,ipid:%d,win:%d,flag:%d", + MESA_handle_runtime_log(g_deliver_globle_info.comminfo.logger,level,module,"addr:%s,%d,%s,%d,len:%d,dir:%d,seq:%u,ack:%u,ipid:%d,win:%d,flag:%d", saddr_v4,sport,daddr_v4,dport,pkt_info->len,pkt_info->dir, pkt_info->seq,pkt_info->ack,pkt_info->ipid,pkt_info->win,pkt_info->flag); break; case DELIVER_FLAG_RECVPKT: - MESA_handle_runtime_log(g_deliver_comminfo.logger,level,module,"addr:%s,%d,%s,%d,dir:%d,recv_len:%d", + MESA_handle_runtime_log(g_deliver_globle_info.comminfo.logger,level,module,"addr:%s,%d,%s,%d,dir:%d,recv_len:%d", saddr_v4,sport,daddr_v4,dport,pkt_info->dir,recv_len); break; case DELIVER_FLAG_ENT: - MESA_handle_runtime_log(g_deliver_comminfo.logger,level,module,"addr:%s,%d,%s,%d,recvpkt:%d,recvbyte:%lld,sendpkt:%d,sendbytes:%lld", + MESA_handle_runtime_log(g_deliver_globle_info.comminfo.logger,level,module,"addr:%s,%d,%s,%d,recvpkt:%d,recvbyte:%lld,sendpkt:%d,sendbytes:%lld", saddr_v4,sport,daddr_v4,dport,session_info->recv_pkt,session_info->recv_byte, session_info->send_pkt,session_info->recv_byte); break; @@ -206,9 +200,9 @@ int deliver_sendpkt_ether(int thread_seq,int buflen,unsigned char* buf,unsigned { int ret=0; - if(-1==ioctl(g_deliver_sendinfo.send_socket[thread_seq],SIOCGIFINDEX,&(g_deliver_sendinfo.ifr))) + if(-1==ioctl(g_deliver_globle_info.sendinfo.send_socket[thread_seq],SIOCGIFINDEX,&(g_deliver_globle_info.sendinfo.ifr))) { - MESA_handle_runtime_log(g_deliver_comminfo.logger,RLOG_LV_FATAL,DELIVER_MODULE_INIT,"get if index error:%d,%s,name:%d",errno,strerror(errno),g_deliver_sendinfo.senddevice); + MESA_handle_runtime_log(g_deliver_globle_info.comminfo.logger,RLOG_LV_FATAL,DELIVER_MODULE_INIT,"get if index error:%d,%s,name:%d",errno,strerror(errno),g_deliver_globle_info.sendinfo.senddevice); return -1; } @@ -216,21 +210,21 @@ int deliver_sendpkt_ether(int thread_seq,int buflen,unsigned char* buf,unsigned struct sockaddr_ll addr; addr.sll_family=AF_PACKET; addr.sll_halen=ETHER_ADDR_LEN; - addr.sll_ifindex=g_deliver_sendinfo.ifr.ifr_ifindex; + addr.sll_ifindex=g_deliver_globle_info.sendinfo.ifr.ifr_ifindex; addr.sll_protocol=htons(ETH_P_IP); memcpy(addr.sll_addr,dmac,ETHER_ADDR_LEN); - if(ioctl(g_deliver_sendinfo.send_socket[thread_seq],SIOCGIFHWADDR,&(g_deliver_sendinfo.ifr))==-1) + if(ioctl(g_deliver_globle_info.sendinfo.send_socket[thread_seq],SIOCGIFHWADDR,&(g_deliver_globle_info.sendinfo.ifr))==-1) { return -1; } - ret=sendto(g_deliver_sendinfo.send_socket[thread_seq],buf,buflen,0,(struct sockaddr*)&addr,sizeof(addr)); + ret=sendto(g_deliver_globle_info.sendinfo.send_socket[thread_seq],buf,buflen,0,(struct sockaddr*)&addr,sizeof(addr)); if(ret<0) { deliver_set_filestate2(thread_seq,FS2_COLUME_ERROR,1); - MESA_handle_runtime_log(g_deliver_comminfo.logger,RLOG_LV_FATAL,DELIVER_MODULE_SENDPKT,"sendto() error,errno:%d,msg:%s!",errno,strerror(errno)); + MESA_handle_runtime_log(g_deliver_globle_info.comminfo.logger,RLOG_LV_FATAL,DELIVER_MODULE_SENDPKT,"sendto() error,errno:%d,msg:%s!",errno,strerror(errno)); return ret; } @@ -246,12 +240,12 @@ int deliver_sendpkt_ether(int thread_seq,int buflen,unsigned char* buf,unsigned int deliver_init_pmeinfo(const struct tfe_stream_addr* addr,void** pme) { //TODO:choose dst mac - int i=deliver_rand()%(g_deliver_sendinfo.receiver_num); + int i=deliver_rand()%(g_deliver_globle_info.sendinfo.receiver_num); struct deliver_pme_info* pmeinfo=(struct deliver_pme_info*)malloc(sizeof(struct deliver_pme_info)); memset(pmeinfo,0,sizeof(struct deliver_pme_info)); - memcpy((void*)&pmeinfo->addr_info,(void*)addr,sizeof(struct origin_stream_addr)); - memcpy(pmeinfo->dst_macaddr,g_deliver_sendinfo.receiver_info[i].dst_macaddr,DELIVER_MACADDR_LEN); + pmeinfo->addr_info = addr; + memcpy(pmeinfo->dst_macaddr,g_deliver_globle_info.sendinfo.receiver_info[i].dst_macaddr,DELIVER_MACADDR_LEN); *pme=pmeinfo; @@ -263,54 +257,59 @@ int deliver_send_v6(int thread_seq,struct deliver_pme_info* pmeinfo,int payload_ { int offset = 0; unsigned short eth_type=0x0800; -#if 0 - struct sockaddr_in6* client_addr=NULL; - struct sockaddr_in6* server_addr=NULL; int cur_dir=pmeinfo->pkt_info.dir; + const struct tfe_stream_addr* addr_info = pmeinfo->addr_info; struct deliver_pkt_info* curpkt_info=&(pmeinfo->pkt_info); - if(cur_dir==DELIVER_DIR_C2S) + offset = sizeof(struct mesa_ethernet_hdr); + + if(cur_dir==CONN_DIR_DOWNSTREAM) { - client_addr=(struct sockaddr_in6*)&(pmeinfo->addr_info.client); - server_addr=(struct sockaddr_in6*)&(pmeinfo->addr_info.server); + deliver_build_tcp(ntohs(addr_info->tuple4_v6->source), ntohs(addr_info->tuple4_v6->dest), + curpkt_info->seq, curpkt_info->ack,curpkt_info->flag, curpkt_info->win, 0, + payload,payload_len, + g_deliver_globle_info.sendbuf[thread_seq]+offset+sizeof(struct mesa_ip6_hdr)); + + deliver_build_ipv6(0, 0, payload_len + sizeof(struct mesa_tcp_hdr), IPPROTO_TCP, curpkt_info->ttl, + &(addr_info->tuple4_v6->saddr),&(addr_info->tuple4_v6->daddr),NULL, 0, + g_deliver_globle_info.sendbuf[thread_seq]+offset); + } else { - client_addr=(struct sockaddr_in6*)&(pmeinfo->addr_info.server); - server_addr=(struct sockaddr_in6*)&(pmeinfo->addr_info.client); + deliver_build_tcp(ntohs(addr_info->tuple4_v6->dest), ntohs(addr_info->tuple4_v6->source), + curpkt_info->seq, curpkt_info->ack,curpkt_info->flag, curpkt_info->win, 0, + payload,payload_len, + g_deliver_globle_info.sendbuf[thread_seq]+offset+sizeof(struct mesa_ip6_hdr)); + + deliver_build_ipv6(0, 0, payload_len + sizeof(struct mesa_tcp_hdr), IPPROTO_TCP, curpkt_info->ttl, + &(addr_info->tuple4_v6->daddr),&(addr_info->tuple4_v6->saddr),NULL, 0, + g_deliver_globle_info.sendbuf[thread_seq]+offset); } - offset = sizeof(struct mesa_ethernet_hdr); + - deliver_build_tcp(ntohs(client_addr->sin6_port), ntohs(server_addr->sin6_port), - curpkt_info->seq, curpkt_info->ack,curpkt_info->flag, curpkt_info->win, 0, - payload,payload_len, - g_deliver_sendbuf[thread_seq]+offset+sizeof(struct mesa_ip6_hdr)); + + deliver_do_checksum(g_deliver_globle_info.sendbuf[thread_seq]+offset, IPPROTO_TCP, SENDPACKET_TCP_H+payload_len); - deliver_build_ipv6(0, 0, payload_len + sizeof(struct mesa_tcp_hdr), IPPROTO_TCP, curpkt_info->ttl, - &(client_addr->sin6_addr),&(server_addr->sin6_addr),NULL, 0, - g_deliver_sendbuf[thread_seq]+offset); - - deliver_do_checksum(g_deliver_sendbuf[thread_seq]+offset, IPPROTO_TCP, SENDPACKET_TCP_H+payload_len); - - deliver_do_checksum(g_deliver_sendbuf[thread_seq]+offset, IPPROTO_IP, SENDPACKET_IP_H); + deliver_do_checksum(g_deliver_globle_info.sendbuf[thread_seq]+offset, IPPROTO_IP, SENDPACKET_IP_H); - deliver_build_ethernet((unsigned char*)(pmeinfo->dst_macaddr),(unsigned char*)(g_deliver_sendinfo.src_macaddr), - eth_type,NULL,0,(unsigned char*)g_deliver_sendbuf[thread_seq]); + deliver_build_ethernet((unsigned char*)(pmeinfo->dst_macaddr),(unsigned char*)(g_deliver_globle_info.sendinfo.src_macaddr), + eth_type,NULL,0,(unsigned char*)g_deliver_globle_info.sendbuf[thread_seq]); deliver_sendpkt_ether(thread_seq,SENDPACKET_TCP_H+SENDPACKET_IP_H+SENDPACKET_ETH_H+payload_len, - g_deliver_sendbuf[thread_seq],pmeinfo->dst_macaddr); + g_deliver_globle_info.sendbuf[thread_seq],pmeinfo->dst_macaddr); pmeinfo->session_info.send_pkt++; pmeinfo->session_info.send_byte+=payload_len; deliver_debug_log_v6(RLOG_LV_DEBUG,(char*)DELIVER_SENDPKT_DEBUG,pmeinfo,DELIVER_FLAG_SENDPKT,0); -#endif + return 0; @@ -321,54 +320,56 @@ int deliver_send_v4(int thread_seq,struct deliver_pme_info* pmeinfo,int payload_ { int offset = 0; unsigned short eth_type=0x0800; -#if 0 - struct sockaddr_in* client_addr=NULL; - struct sockaddr_in* server_addr=NULL; int cur_dir=pmeinfo->pkt_info.dir; + const struct tfe_stream_addr* addr_info = pmeinfo->addr_info; struct deliver_pkt_info* curpkt_info=&(pmeinfo->pkt_info); - if(cur_dir==DELIVER_DIR_C2S) + offset = sizeof(struct mesa_ethernet_hdr); + + if(cur_dir==CONN_DIR_DOWNSTREAM) { - client_addr=(struct sockaddr_in*)&(pmeinfo->addr_info.client); - server_addr=(struct sockaddr_in*)&(pmeinfo->addr_info.server); + deliver_build_tcp(ntohs(addr_info->tuple4_v4->source), ntohs(addr_info->tuple4_v4->dest), + curpkt_info->seq, curpkt_info->ack,curpkt_info->flag, curpkt_info->win, 0, + payload,payload_len, + g_deliver_globle_info.sendbuf[thread_seq]+offset+sizeof(struct mesa_ip4_hdr)); + + deliver_build_ipv4(SENDPACKET_TCP_H+payload_len, 0, curpkt_info->ipid, 0, 64, IPPROTO_TCP, + addr_info->tuple4_v4->saddr.s_addr,addr_info->tuple4_v4->daddr.s_addr, NULL, 0, + g_deliver_globle_info.sendbuf[thread_seq]+offset); } else { - client_addr=(struct sockaddr_in*)&(pmeinfo->addr_info.server); - server_addr=(struct sockaddr_in*)&(pmeinfo->addr_info.client); - } - - offset = sizeof(struct mesa_ethernet_hdr); - - - deliver_build_tcp(ntohs(client_addr->sin_port), ntohs(server_addr->sin_port), + deliver_build_tcp(ntohs(addr_info->tuple4_v4->dest), ntohs(addr_info->tuple4_v4->source), curpkt_info->seq, curpkt_info->ack,curpkt_info->flag, curpkt_info->win, 0, payload,payload_len, - g_deliver_sendbuf[thread_seq]+offset+sizeof(struct mesa_ip4_hdr)); + g_deliver_globle_info.sendbuf[thread_seq]+offset+sizeof(struct mesa_ip4_hdr)); - deliver_build_ipv4(SENDPACKET_TCP_H+payload_len, 0, curpkt_info->ipid, 0, 64, IPPROTO_TCP, - client_addr->sin_addr.s_addr,server_addr->sin_addr.s_addr, NULL, 0, - g_deliver_sendbuf[thread_seq]+offset); - - deliver_do_checksum(g_deliver_sendbuf[thread_seq]+offset, IPPROTO_TCP, SENDPACKET_TCP_H+payload_len); + deliver_build_ipv4(SENDPACKET_TCP_H+payload_len, 0, curpkt_info->ipid, 0, 64, IPPROTO_TCP, + addr_info->tuple4_v4->daddr.s_addr,addr_info->tuple4_v4->saddr.s_addr, NULL, 0, + g_deliver_globle_info.sendbuf[thread_seq]+offset); + } - deliver_do_checksum(g_deliver_sendbuf[thread_seq]+offset, IPPROTO_IP, SENDPACKET_IP_H); + + deliver_do_checksum(g_deliver_globle_info.sendbuf[thread_seq]+offset, IPPROTO_TCP, SENDPACKET_TCP_H+payload_len); + + deliver_do_checksum(g_deliver_globle_info.sendbuf[thread_seq]+offset, IPPROTO_IP, SENDPACKET_IP_H); - deliver_build_ethernet((unsigned char*)(pmeinfo->dst_macaddr),(unsigned char*)(g_deliver_sendinfo.src_macaddr), - eth_type,NULL,0,(unsigned char*)g_deliver_sendbuf[thread_seq]); + deliver_build_ethernet((unsigned char*)(pmeinfo->dst_macaddr),(unsigned char*)(g_deliver_globle_info.sendinfo.src_macaddr), + eth_type,NULL,0,(unsigned char*)g_deliver_globle_info.sendbuf[thread_seq]); deliver_sendpkt_ether(thread_seq,SENDPACKET_TCP_H+SENDPACKET_IP_H+SENDPACKET_ETH_H+payload_len, - g_deliver_sendbuf[thread_seq],pmeinfo->dst_macaddr); + g_deliver_globle_info.sendbuf[thread_seq],pmeinfo->dst_macaddr); pmeinfo->session_info.send_pkt++; pmeinfo->session_info.send_byte+=payload_len; deliver_debug_log_v4(RLOG_LV_DEBUG,(char*)DELIVER_SENDPKT_DEBUG,pmeinfo,DELIVER_FLAG_SENDPKT,0); -#endif + + return 0; @@ -376,7 +377,7 @@ int deliver_send_v4(int thread_seq,struct deliver_pme_info* pmeinfo,int payload_ int deliver_send_syn(int thread_seq,struct deliver_pme_info* pmeinfo) { - pmeinfo->pkt_info.dir=DELIVER_DIR_C2S; + pmeinfo->pkt_info.dir=CONN_DIR_DOWNSTREAM; pmeinfo->pkt_info.len=0; pmeinfo->pkt_info.seq= deliver_rand(); pmeinfo->pkt_info.ack=0; @@ -400,7 +401,7 @@ int deliver_send_syn(int thread_seq,struct deliver_pme_info* pmeinfo) int deliver_send_syn_ack(int thread_seq,struct deliver_pme_info* pmeinfo) { - pmeinfo->pkt_info.dir=DELIVER_DIR_S2C; + pmeinfo->pkt_info.dir=CONN_DIR_UPSTREAM; pmeinfo->pkt_info.len=0; pmeinfo->pkt_info.ack=pmeinfo->pkt_info.seq+1; pmeinfo->pkt_info.seq= deliver_rand(); @@ -424,7 +425,7 @@ int deliver_send_ack(int thread_seq,struct deliver_pme_info* pmeinfo) { unsigned int ack_tmp=pmeinfo->pkt_info.ack; - pmeinfo->pkt_info.dir=DELIVER_DIR_C2S; + pmeinfo->pkt_info.dir=CONN_DIR_DOWNSTREAM; pmeinfo->pkt_info.len=0; pmeinfo->pkt_info.ack=pmeinfo->pkt_info.seq+1; pmeinfo->pkt_info.seq= ack_tmp; @@ -471,7 +472,7 @@ int deliver_set_pktinfo(struct deliver_pme_info* pmeinfo,int flag, int cur_dir,i int deliver_send_rst(int thread_seq,struct deliver_pme_info* pmeinfo) { - deliver_set_pktinfo(pmeinfo,TH_RST,DELIVER_DIR_C2S,0); + deliver_set_pktinfo(pmeinfo,TH_RST,CONN_DIR_DOWNSTREAM,0); if(pmeinfo->addr_info->addrtype==ADDR_TYPE_IPV4) { deliver_send_v4(thread_seq,pmeinfo,0,NULL); @@ -482,7 +483,7 @@ int deliver_send_rst(int thread_seq,struct deliver_pme_info* pmeinfo) } - deliver_set_pktinfo(pmeinfo,TH_RST,DELIVER_DIR_S2C,0); + deliver_set_pktinfo(pmeinfo,TH_RST,CONN_DIR_UPSTREAM,0); if(pmeinfo->addr_info->addrtype==ADDR_TYPE_IPV4) { deliver_send_v4(thread_seq,pmeinfo,0,NULL); @@ -520,7 +521,7 @@ int mirror_stream_write(int cur_dir,const unsigned char * data, size_t len, void const unsigned char* payload=data; int payload_len=0; int remain_len=len; - int pkt_num=(len/(g_deliver_sendinfo.mtu))+1; + int pkt_num=(len/(g_deliver_globle_info.sendinfo.mtu))+1; struct deliver_pme_info* pmeinfo=(struct deliver_pme_info*)*pme; @@ -540,9 +541,9 @@ int mirror_stream_write(int cur_dir,const unsigned char * data, size_t len, void for(i=0;iaddr_info->addrtype==ADDR_TYPE_IPV4) @@ -577,22 +578,22 @@ void mirror_stream_close(void** pme, int thread_id) int deliver_device_init() { - char* if_name=g_deliver_sendinfo.senddevice; + char* if_name=g_deliver_globle_info.sendinfo.senddevice; //init socket size_t ifname_len=strlen(if_name); - if(ifname_len