From 4c6d0af1dd8d411430f5ebb9eabbfcb6aa2e14a7 Mon Sep 17 00:00:00 2001 From: liuyang Date: Wed, 20 Jun 2018 10:45:58 +0800 Subject: [PATCH] =?UTF-8?q?20180620=EF=BC=9A=E5=AF=B9=E5=BA=94issues1?= =?UTF-8?q?=EF=BC=8CKNI=E4=B8=8ETFE=E7=9A=84unix=20domain=20socket?= =?UTF-8?q?=E7=94=B1SOCK=5FSTREAM=E6=94=B9=E4=B8=BASOCK=5FDGRAM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kni.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/kni.c b/kni.c index b584111..9a28015 100644 --- a/kni.c +++ b/kni.c @@ -27,6 +27,7 @@ #include "Maat_rule.h" #include "kni.h" +int g_kni_version_VERSION_20180620; struct kni_var_comm g_kni_comminfo; struct kni_var_struct g_kni_structinfo; @@ -372,11 +373,11 @@ int kni_sendpkt_eth(int thread_seq,int iplen,char* ip,struct stream_tuple4_v4* i int buflen=iplen+KNITEST_ETH_LEN; unsigned char buf[2000]={0}; - char* card_in="p7p1"; - char* card_out="em2"; + char* card_in=(char*)"p7p1"; + char* card_out=(char*)"em2"; unsigned short eth_type=0x0800; - struct ip* iphdr=(struct ip*)ip; +// struct ip* iphdr=(struct ip*)ip; uchar* tmp_smac; uchar* tmp_dmac; @@ -472,9 +473,9 @@ long kni_readtun_htable_cb_v4(void* data,const unsigned char* key,unsigned int s int kni_process_readdata(int thread_seq,int buflen,char* buf) { - int ret=0; +// int ret=0; int iprever_flag=0; - unsigned char routdir=0; +// unsigned char routdir=0; long result=0; struct datainfo_to_tun datainfo; @@ -492,10 +493,10 @@ int kni_process_readdata(int thread_seq,int buflen,char* buf) { if(iprever_flag==1) { - routdir=MESA_dir_reverse(datainfo.route_dir); + // routdir=MESA_dir_reverse(datainfo.route_dir); } - ret=kni_sendpkt_eth(thread_seq,buflen,buf,&ipv4_addr,iprever_flag,datainfo.smac,datainfo.dmac); + kni_sendpkt_eth(thread_seq,buflen,buf,&ipv4_addr,iprever_flag,datainfo.smac,datainfo.dmac); } } @@ -662,15 +663,13 @@ return: *********************************************************************************************************************/ int kni_process_fs(void* a_packet,unsigned int mss) { - int ret=0; - int val = 1; +// int ret=0; +// int val = 1; int fds[2]={0}; - int client_fd=0; - int server_fd=0; - client_fd=socket(AF_INET, SOCK_FORGE, 0); - server_fd=socket(AF_INET, SOCK_FORGE, 0); - if (client_fd < 0 || server_fd< 0) + fds[KNI_FDS_INDEX_CLIENT]=socket(AF_INET, SOCK_FORGE, 0); + fds[KNI_FDS_INDEX_SERVER]=socket(AF_INET, SOCK_FORGE, 0); + if (fds[KNI_FDS_INDEX_CLIENT] < 0 || fds[KNI_FDS_INDEX_SERVER]< 0) { perror("SOCK_FORGE socket"); fprintf(stderr, "(Did you insmod forge_socket.ko?)\n"); @@ -683,19 +682,17 @@ int kni_process_fs(void* a_packet,unsigned int mss) fs_get_modify_state(fake_client,fake_server,a_packet,mss); - fs_set_state(client_fd,fake_server); - fs_set_state(server_fd,fake_client); + fs_set_state(fds[KNI_FDS_INDEX_CLIENT],fake_server); + fs_set_state(fds[KNI_FDS_INDEX_SERVER],fake_client); - fds[KNI_FDS_INDEX_CLIENT]=client_fd; - fds[KNI_FDS_INDEX_SERVER]=server_fd; kni_send_fds(g_kni_comminfo.fd_domain,fds,2); kni_debug_info_v4((char*)KNI_MODULE_SENDFD,STAT_FLAG_SSL_NOBMD,(struct ip*)a_packet); -// close(client_socket); -// close(server_socket); + close(fds[KNI_FDS_INDEX_CLIENT]); + close(fds[KNI_FDS_INDEX_SERVER]); return 0; @@ -939,7 +936,7 @@ unsigned short kni_get_mss(struct kni_tcp_hdr* tcphdr,int tcp_hdr_len) long kni_state_htable_cb_v4(void* data,const unsigned char* key,unsigned int size,void* user_arg) { - unsigned short mss=KNI_DEFAULT_MSS; +// unsigned short mss=KNI_DEFAULT_MSS; long state_flag=STAT_FLAG_NONE; int sni_len=0; @@ -1177,7 +1174,8 @@ int init_domain_fd() char serverpath[32] = "/home/server_unixsocket_file"; int i_addr_len = sizeof( struct sockaddr_un ); - if ( ( i_fd = socket( AF_UNIX, SOCK_STREAM, 0 ) ) < 0 ) +// if ( ( i_fd = socket( AF_UNIX, SOCK_STREAM, 0 ) ) < 0 ) + if ( ( i_fd = socket( AF_UNIX, SOCK_DGRAM, 0 ) ) < 0 ) { MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_INIT,"init_domain_fd():socket error,errno is %d,action:%s",errno,KNI_ACTION_EXIT); return -1;