This commit is contained in:
U-DESKTOP-T772REH\wangyu 2018-06-19 14:04:57 +08:00
parent db7b43001a
commit 086cba4b1d
4 changed files with 38 additions and 25 deletions

View File

@ -98,9 +98,10 @@ int get_sock_errno()
u64_t get_current_time() u64_t get_current_time()
{ {
timespec tmp_time; //timespec tmp_time;
clock_gettime(CLOCK_MONOTONIC, &tmp_time); //clock_gettime(CLOCK_MONOTONIC, &tmp_time);
return ((u64_t)tmp_time.tv_sec)*1000llu+((u64_t)tmp_time.tv_nsec)/(1000*1000llu); //return ((u64_t)tmp_time.tv_sec)*1000llu+((u64_t)tmp_time.tv_nsec)/(1000*1000llu);
return (u64_t)(ev_time()*1000);
} }
u64_t pack_u64(u32_t a,u32_t b) u64_t pack_u64(u32_t a,u32_t b)
@ -335,12 +336,12 @@ int set_buf_size(int fd,int socket_buf_size,int force_socket_buf)
{ {
if(setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &socket_buf_size, sizeof(socket_buf_size))<0) if(setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &socket_buf_size, sizeof(socket_buf_size))<0)
{ {
mylog(log_fatal,"SO_SNDBUF fail socket_buf_size=%d errno=%s\n",socket_buf_size,strerror(errno)); mylog(log_fatal,"SO_SNDBUF fail socket_buf_size=%d errno=%s\n",socket_buf_size,get_sock_error());
myexit(1); myexit(1);
} }
if(setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &socket_buf_size, sizeof(socket_buf_size))<0) if(setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &socket_buf_size, sizeof(socket_buf_size))<0)
{ {
mylog(log_fatal,"SO_RCVBUF fail socket_buf_size=%d errno=%s\n",socket_buf_size,strerror(errno)); mylog(log_fatal,"SO_RCVBUF fail socket_buf_size=%d errno=%s\n",socket_buf_size,get_sock_error());
myexit(1); myexit(1);
} }
} }

View File

@ -181,7 +181,7 @@ int client_on_timer(conn_info_t &conn_info) //for client. called when a timer is
setnonblocking(bind_fd); setnonblocking(bind_fd);
int ret=connect(bind_fd,(struct sockaddr *)&remote_addr_in,sizeof(remote_addr_in)); int ret=connect(bind_fd,(struct sockaddr *)&remote_addr_in,sizeof(remote_addr_in));
mylog(log_info,"ret=%d,errno=%s,%d %d\n",ret,strerror(errno),bind_fd,remote_port); mylog(log_info,"ret=%d,errno=%s,%d %d\n",ret,get_sock_error(),bind_fd,remote_port);
conn_info.state.client_current_state=client_tcp_handshake_dummy; conn_info.state.client_current_state=client_tcp_handshake_dummy;
mylog(log_info,"state changed from client_idle to client_tcp_handshake_dummy\n"); mylog(log_info,"state changed from client_idle to client_tcp_handshake_dummy\n");
} }
@ -597,8 +597,8 @@ void udp_accept_cb(struct ev_loop *loop, struct ev_io *watcher, int revents)
socklen_t udp_new_addr_len = sizeof(sockaddr_in); socklen_t udp_new_addr_len = sizeof(sockaddr_in);
if ((recv_len = recvfrom(udp_fd, buf, max_data_len+1, 0, if ((recv_len = recvfrom(udp_fd, buf, max_data_len+1, 0,
(struct sockaddr *) &udp_new_addr_in, &udp_new_addr_len)) == -1) { (struct sockaddr *) &udp_new_addr_in, &udp_new_addr_len)) == -1) {
mylog(log_error,"recv_from error,this shouldnt happen at client\n"); mylog(log_warn,"recv_from error,this shouldnt happen at client,but lets try to continue\n");
myexit(1); //myexit(1);
}; };
if(recv_len==max_data_len+1) if(recv_len==max_data_len+1)
@ -722,7 +722,7 @@ void fifo_cb(struct ev_loop *loop, struct ev_io *watcher, int revents)
int len=read (fifo_fd, buf, sizeof (buf)); int len=read (fifo_fd, buf, sizeof (buf));
if(len<0) if(len<0)
{ {
mylog(log_warn,"fifo read failed len=%d,errno=%s\n",len,strerror(errno)); mylog(log_warn,"fifo read failed len=%d,errno=%s\n",len,get_sock_error());
return; return;
} }
buf[len]=0; buf[len]=0;

View File

@ -193,7 +193,7 @@ int load_config(char *file_name, int &argc, vector<string> &argv) //load conf fi
std::string line; std::string line;
if(conf_file.fail()) if(conf_file.fail())
{ {
mylog(log_fatal,"conf_file %s open failed,reason :%s\n",file_name,strerror(errno)); mylog(log_fatal,"conf_file %s open failed,reason :%s\n",file_name,get_sock_error());
myexit(-1); myexit(-1);
} }
while(std::getline(conf_file,line)) while(std::getline(conf_file,line))
@ -474,6 +474,13 @@ void process_arg(int argc, char *argv[]) //process all options
mylog(log_info,"source: %d\n",source_port); mylog(log_info,"source: %d\n",source_port);
} }
else if(strcmp(long_options[option_index].name,"raw-mode")==0) else if(strcmp(long_options[option_index].name,"raw-mode")==0)
{
if(strcmp(optarg,"easyfaketcp")==0||strcmp(optarg,"easy_faketcp")==0||strcmp(optarg,"easy-faketcp")==0)
{
raw_mode=mode_faketcp;
use_tcp_dummy_socket=1;
}
else
{ {
for(i=0;i<mode_end;i++) for(i=0;i<mode_end;i++)
{ {
@ -491,6 +498,7 @@ void process_arg(int argc, char *argv[]) //process all options
myexit(-1); myexit(-1);
} }
} }
}
else if(strcmp(long_options[option_index].name,"auth-mode")==0) else if(strcmp(long_options[option_index].name,"auth-mode")==0)
{ {
for(i=0;i<auth_end;i++) for(i=0;i<auth_end;i++)

View File

@ -247,10 +247,14 @@ void *pcap_recv_thread_entry(void *none)
struct pcap_pkthdr *packet_header; struct pcap_pkthdr *packet_header;
const u_char *pkt_data; const u_char *pkt_data;
while(1)
{
int ret=pcap_loop(pcap_handle, 0, my_packet_handler, NULL); int ret=pcap_loop(pcap_handle, 0, my_packet_handler, NULL);
mylog(log_fatal,"pcap_loop returned with value %d\n",ret); mylog(log_warn,"pcap_loop exited with value %d\n",ret);
myexit(-1); sleep(5);
//myexit(-1);
}
/* /*
while(1) while(1)
{ {
@ -959,7 +963,7 @@ int peek_raw(packet_info_t &peek_info)
if(recv_len<int(sizeof(my_iphdr))) if(recv_len<int(sizeof(my_iphdr)))
{ {
mylog(log_trace,"failed here %d %d\n",recv_len,int(sizeof(my_iphdr))); mylog(log_trace,"failed here %d %d\n",recv_len,int(sizeof(my_iphdr)));
mylog(log_trace,"%s\n ",strerror(errno)); mylog(log_trace,"%s\n ",get_sock_error());
return -1; return -1;
} }
peek_info.src_ip=iph->saddr; peek_info.src_ip=iph->saddr;