From b0f6dc43b4e7450320c76b034d04094a36883e00 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Mon, 16 Nov 2015 19:53:59 -0800 Subject: [PATCH] Revised fd RX logic --- netcon/Common.c | 2 +- netcon/Intercept.c | 23 ++++++++++++++++------- netcon/NetconEthernetTap.cpp | 35 ++++++++++++++++------------------- netcon/libintercept.so.1.0 | Bin 57152 -> 57440 bytes 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/netcon/Common.c b/netcon/Common.c index 0ce048ec0..41a6c2a21 100755 --- a/netcon/Common.c +++ b/netcon/Common.c @@ -39,7 +39,7 @@ #include -#define DEBUG_LEVEL 2 +#define DEBUG_LEVEL 3 #define MSG_ERROR 0 // Errors #define MSG_INFO 1 // Information which is generally useful to any user diff --git a/netcon/Intercept.c b/netcon/Intercept.c index 5b5c56f87..e34b5470f 100755 --- a/netcon/Intercept.c +++ b/netcon/Intercept.c @@ -156,7 +156,7 @@ int checkpid() { if(thispid != getpid()) { printf("clone/fork detected. re-initializing this instance.\n"); set_up_intercept(); - fdret_sock = init_service_connection(); + //fdret_sock = init_service_connection(); thispid = getpid(); } return 0; @@ -226,6 +226,16 @@ int get_retval() return -1; } +/* Reads a new file descriptor from the service */ +int get_new_fd(int oversock) +{ + char buf[BUF_SZ]; + int newfd; + ssize_t size = sock_fd_read(oversock, buf, sizeof(buf), &newfd); + dwr(MSG_DEBUG, "get_new_fd(): RX: fd = %d\n", newfd); + return newfd; +} + /* Check whether the socket is mapped to the service or not. We need to know if this is a regular AF_LOCAL socket or an end of a socketpair that the service uses. We don't want to keep state in the intercept, so @@ -505,9 +515,8 @@ int socket(SOCKET_SIG) /* get new fd */ char rbuf[16]; - ssize_t sz = sock_fd_read(fdret_sock, rbuf, sizeof(rbuf), &newfd); - dwr(MSG_DEBUG,"read %d bytes (%s)\n", sz, &rbuf); - if(sz > 0) + newfd = get_new_fd(fdret_sock); + if(newfd > 0) { dwr(MSG_DEBUG,"sending fd = %d to Service over (%d)\n", newfd, fdret_sock); /* send our local-fd number back to service so @@ -800,8 +809,8 @@ int accept(ACCEPT_SIG) int n = read(sockfd, c, sizeof(c)); // Read signal byte if(n > 0) { - ssize_t size = sock_fd_read(fdret_sock, rbuf, sizeof(rbuf), &new_conn_socket); - if(size > 0) { + new_conn_socket = get_new_fd(fdret_sock); + if(new_conn_socket > 0) { /* Send our local-fd number back to service so it can complete its mapping table */ memset(cmd, '\0', BUF_SZ); cmd[0] = RPC_MAP; @@ -927,7 +936,7 @@ int poll(POLL_SIG) // int fd int close(CLOSE_SIG) { - checkpid(); + checkpid(); // Required for httpd-2.4.17-3.x86_64 -- After clone, some symbols aren't initialized yet dwr(MSG_DEBUG,"close(%d)\n", fd); if(fd == fdret_sock) return 0; // FIXME: Ignore request to shut down our rpc fd, this is *almost always* safe diff --git a/netcon/NetconEthernetTap.cpp b/netcon/NetconEthernetTap.cpp index 568ad1882..ae1604fbd 100644 --- a/netcon/NetconEthernetTap.cpp +++ b/netcon/NetconEthernetTap.cpp @@ -50,10 +50,9 @@ #include "NetconUtilities.hpp" #include "Common.c" -#define APPLICATION_POLL_FREQ 20 +#define APPLICATION_POLL_FREQ 20 #define ZT_LWIP_TCP_TIMER_INTERVAL 5 -#define STATUS_TMR_INTERVAL 2000 // How often we check connection statuses -#define DEBUG_LEVEL 3 +#define STATUS_TMR_INTERVAL 3000 // How often we check connection statuses namespace ZeroTier { @@ -151,13 +150,10 @@ bool NetconEthernetTap::removeIp(const InetAddress &ip) std::vector::iterator i(std::find(_ips.begin(),_ips.end(),ip)); if (i == _ips.end()) return false; - _ips.erase(i); - if (ip.isV4()) { // TODO: dealloc from LWIP } - return true; } @@ -259,11 +255,6 @@ TcpConnection *NetconEthernetTap::getConnectionByTheirFD(PhySocket *sock, int fd void NetconEthernetTap::compact_dump() { /* - // - refresh(); - clear(); - gotoxy(0,0); - */ clearscreen(); gotoxy(0,0); @@ -286,6 +277,14 @@ void NetconEthernetTap::compact_dump() } } } + */ + for(size_t i=0; irpcSock) == _phy.getDescriptor(rpc_sockets[i])) + fprintf(stderr, "\t(%d) ----> (%d)\n\n", _phy.getDescriptor(tcp_connections[j]->dataSock), tcp_connections[j]->perceived_fd); + } + } } /* @@ -301,7 +300,7 @@ void NetconEthernetTap::dump() fprintf(stderr, "*** IF YOU SEE THIS, EMAIL THE DUMP TEXT TO joseph.henry@zerotier.com ***\n"); fprintf(stderr, " tcp_conns = %d, rpc_socks = %d\n", tcp_connections.size(), rpc_sockets.size()); - // TODO: Add logic to detect bad mapping conditions + // TODO: Add logic to detect bad mapping conditions for(size_t i=0; ipcb, _phy.getDescriptor(conn->dataSock)); - //lwipstack->_tcp_sent(conn->pcb, NULL); - //lwipstack->_tcp_recv(conn->pcb, NULL); - //lwipstack->_tcp_err(conn->pcb, NULL); - //lwipstack->_tcp_poll(conn->pcb, NULL, 0); + //lwipstack->_tcp_sent(conn->pcb, NULL); + //lwipstack->_tcp_recv(conn->pcb, NULL); + //lwipstack->_tcp_err(conn->pcb, NULL); + //lwipstack->_tcp_poll(conn->pcb, NULL, 0); //lwipstack->_tcp_arg(conn->pcb, NULL); if(lwipstack->_tcp_close(conn->pcb) != ERR_OK) { dwr(MSG_ERROR, " closeConnection(): Error while calling tcp_close()\n"); @@ -409,7 +408,6 @@ void NetconEthernetTap::closeAll() void NetconEthernetTap::threadMain() throw() { - //initscr(); //signal(SIGPIPE, SIG_IGN); uint64_t prev_tcp_time = 0; uint64_t prev_status_time = 0; @@ -436,7 +434,6 @@ void NetconEthernetTap::threadMain() fprintf(stderr, "- IP_TMR_INTERVAL = %d\n", IP_TMR_INTERVAL); */ - // Main timer loop while (_run) { uint64_t now = OSUtils::now(); @@ -449,7 +446,7 @@ void NetconEthernetTap::threadMain() // Connection prunning if (since_status >= STATUS_TMR_INTERVAL) { - //compact_dump(); + compact_dump(); prev_status_time = now; if(rpc_sockets.size() || tcp_connections.size()) { diff --git a/netcon/libintercept.so.1.0 b/netcon/libintercept.so.1.0 index 30a9a0afccb82f4e8add74d01cee961ec3279597..70418e6268c91cc103225cb2fdf2e57e420533ee 100755 GIT binary patch literal 57440 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

uty#F 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 n)DHv=y~5Hnto{O($*{BwQU}8uE