diff options
| author | Joseph Henry <joseph.henry@gmail.com> | 2015-10-23 14:23:04 -0700 |
|---|---|---|
| committer | Joseph Henry <joseph.henry@gmail.com> | 2015-10-23 14:23:04 -0700 |
| commit | 80a73cb14b1e6b02f8789f11506933592e554bb2 (patch) | |
| tree | 9d70aadad916f3aa4867d6b364450b9804fbce2c /netcon/NetconEthernetTap.cpp | |
| parent | b48ed824e60babf4b142fe6b874d53ca382bb2db (diff) | |
| download | infinitytier-80a73cb14b1e6b02f8789f11506933592e554bb2.tar.gz infinitytier-80a73cb14b1e6b02f8789f11506933592e554bb2.zip | |
Minor cleanup
Diffstat (limited to 'netcon/NetconEthernetTap.cpp')
| -rw-r--r-- | netcon/NetconEthernetTap.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/netcon/NetconEthernetTap.cpp b/netcon/NetconEthernetTap.cpp index ec3a9994..ad573fed 100644 --- a/netcon/NetconEthernetTap.cpp +++ b/netcon/NetconEthernetTap.cpp @@ -53,7 +53,6 @@ #define ZT_LWIP_TCP_TIMER_INTERVAL 10 #define STATUS_TMR_INTERVAL 500 // How often we check connection statuses - namespace ZeroTier { NetconEthernetTap::NetconEthernetTap( @@ -361,16 +360,16 @@ void NetconEthernetTap::threadMain() that the client has closed their end and we can close ours */ for(size_t i = 0; i<tcp_connections.size(); i++) { if(tcp_connections[i]->listening) { - char c; - if (read(_phy.getDescriptor(tcp_connections[i]->dataSock), &c, 1) < 0) { - // Still in listening state - } - else { - // Here we should handle the case there there is incoming data (?) - fprintf(stderr, "Listening socketpair closed. Removing RPC connection (%d)\n", - _phy.getDescriptor(tcp_connections[i]->dataSock)); - closeConnection(tcp_connections[i]); - } + char c; + if (read(_phy.getDescriptor(tcp_connections[i]->dataSock), &c, 1) < 0) { + // Still in listening state + } + else { + // Here we should handle the case there there is incoming data (?) + fprintf(stderr, "Listening socketpair closed. Removing RPC connection (%d)\n", + _phy.getDescriptor(tcp_connections[i]->dataSock)); + closeConnection(tcp_connections[i]); + } } } } @@ -382,13 +381,15 @@ void NetconEthernetTap::threadMain() } if(!associated){ // No TCP connections are associated, this is a candidate for removal - char c; - if(read(_phy.getDescriptor(rpc_sockets[i]),&c,1) < 0) { + unsigned char tmpbuf[BUF_SZ]; + if(read(_phy.getDescriptor(rpc_sockets[i]),&tmpbuf,BUF_SZ) < 0) { closeClient(rpc_sockets[i]); } else { // Handle RPC call, this is rare - // phyOnUnixData(PhySocket *sock,void **uptr,void *data,unsigned long len) + fprintf(stderr, "run(): RPC read during connection check\n"); + exit(0); + phyOnUnixData(rpc_sockets[i],NULL,&tmpbuf,BUF_SZ); } } } |
