diff --git a/main.cpp b/main.cpp index dff93f2..aa765c3 100755 --- a/main.cpp +++ b/main.cpp @@ -826,6 +826,7 @@ int server_on_raw_recv_ready(conn_info_t &conn_info,char * ip_port,char type,cha struct epoll_event ev; fd64_t new_udp_fd64 = fd_manager.create(new_udp_fd); + fd_manager.get_info(new_udp_fd64).ip_port=conn_info.ip_port; mylog(log_trace, "[%s]u64: %lld\n",ip_port, new_udp_fd64); ev.events = EPOLLIN; @@ -842,7 +843,7 @@ int server_on_raw_recv_ready(conn_info_t &conn_info,char * ip_port,char type,cha conn_info.blob->conv_manager.insert_conv(tmp_conv_id, new_udp_fd64); - fd_manager.get_info(new_udp_fd64).ip_port=conn_info.ip_port; + //assert(conn_manager.udp_fd_mp.find(new_udp_fd)==conn_manager.udp_fd_mp.end()); @@ -857,11 +858,11 @@ int server_on_raw_recv_ready(conn_info_t &conn_info,char * ip_port,char type,cha } - u64_t u64 = conn_info.blob->conv_manager.find_u64_by_conv(tmp_conv_id); + fd64_t fd64 = conn_info.blob->conv_manager.find_u64_by_conv(tmp_conv_id); conn_info.blob->conv_manager.update_active_time(tmp_conv_id); - int fd = int((u64 << 32u) >> 32u); + int fd = fd_manager.to_fd(fd64); mylog(log_trace, "[%s]received a data from fake tcp,len:%d\n",ip_port, data_len); int ret = send(fd, data + sizeof(u32_t), @@ -1484,7 +1485,7 @@ int server_event_loop() fd64_t fd64=events[idx].data.u64; - if(fd_manager.exist(fd64)) + if(!fd_manager.exist(fd64)) { mylog(log_trace ,"fd64 no longer exist\n"); continue;