Browse Source

More code cleanup, just moving some stuff into NetconEthernetTap that is not used elsewhere.

Adam Ierymenko 9 years ago
parent
commit
2a6ea38718
4 changed files with 50 additions and 94 deletions
  1. 2 3
      netcon/Common.c
  2. 39 7
      netcon/NetconEthernetTap.cpp
  3. 9 2
      netcon/NetconEthernetTap.hpp
  4. 0 82
      netcon/NetconService.hpp

+ 2 - 3
netcon/Common.c

@@ -25,6 +25,8 @@
  * LLC. Start here: http://www.zerotier.com/
  */
 
+#ifndef ZT_LWIPSTACK_H
+#define ZT_LWIPSTACK_H
 
 #include "lwip/mem.h"
 #include "lwip/pbuf.h"
@@ -36,9 +38,6 @@
 #include <stdio.h>
 #include <dlfcn.h>
 
-#ifndef LWIPSTACK_H
-#define LWIPSTACK_H
-
 #ifdef D_GNU_SOURCE
   #define _GNU_SOURCE
 #endif

+ 39 - 7
netcon/NetconEthernetTap.cpp

@@ -30,6 +30,7 @@
 #include <algorithm>
 #include <utility>
 #include <dlfcn.h>
+#include <sys/poll.h>
 
 #include "NetconEthernetTap.hpp"
 
@@ -37,17 +38,18 @@
 #include "../osdep/OSUtils.hpp"
 #include "../osdep/Phy.hpp"
 
+#include "Intercept.h"
+#include "LWIPStack.hpp"
+#include "NetconUtilities.hpp"
+
 #include "lwip/tcp_impl.h"
 #include "netif/etharp.h"
+#include "lwip/api.h"
 #include "lwip/ip.h"
 #include "lwip/ip_addr.h"
 #include "lwip/ip_frag.h"
 #include "lwip/tcp.h"
 
-#include "LWIPStack.hpp"
-#include "NetconService.hpp"
-#include "Intercept.h"
-#include "NetconUtilities.hpp"
 #include "Common.c"
 #include "Sendfd.c"
 
@@ -57,8 +59,6 @@
 
 namespace ZeroTier {
 
-namespace {
-
 static err_t tapif_init(struct netif *netif)
 {
   // Actual init functionality is in addIp() of tap
@@ -103,7 +103,39 @@ static err_t low_level_output(struct netif *netif, struct pbuf *p)
   return ERR_OK;
 }
 
-} // anonymous namespace
+/*
+ * TCP connection administered by service
+ */
+class TcpConnection
+{
+public:
+  int perceived_fd;
+  int their_fd;
+  bool pending;
+  bool listening;
+  int pid;
+
+  unsigned long written;
+  unsigned long acked;
+
+  PhySocket *rpcSock;
+  PhySocket *dataSock;
+  struct tcp_pcb *pcb;
+
+  unsigned char buf[DEFAULT_READ_BUFFER_SIZE];
+  int idx;
+};
+
+/*
+ * A helper class for passing a reference to _phy to LWIP callbacks as a "state"
+ */
+class Larg
+{
+public:
+  NetconEthernetTap *tap;
+  TcpConnection *conn;
+  Larg(NetconEthernetTap *_tap, TcpConnection *conn) : tap(_tap), conn(conn) {}
+};
 
 NetconEthernetTap::NetconEthernetTap(
 	const char *homePath,

+ 9 - 2
netcon/NetconEthernetTap.hpp

@@ -44,15 +44,22 @@
 #include "../osdep/Thread.hpp"
 #include "../osdep/Phy.hpp"
 
-#include "NetconService.hpp"
 #include "NetconUtilities.hpp"
 
 #include "netif/etharp.h"
 
+struct tcp_pcb;
+struct socket_st;
+struct listen_st;
+struct bind_st;
+struct connect_st;
+
 namespace ZeroTier {
 
 class NetconEthernetTap;
-
+class TcpConnection;
+class Larg;
+class LWIPStack;
 
 /**
  * Network Containers instance -- emulates an Ethernet tap device as far as OneService knows

+ 0 - 82
netcon/NetconService.hpp

@@ -1,82 +0,0 @@
-/*
- * ZeroTier One - Network Virtualization Everywhere
- * Copyright (C) 2011-2015  ZeroTier, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * --
- *
- * ZeroTier may be used and distributed under the terms of the GPLv3, which
- * are available at: http://www.gnu.org/licenses/gpl-3.0.html
- *
- * If you would like to embed ZeroTier into a commercial application or
- * redistribute it in a modified binary form, please contact ZeroTier Networks
- * LLC. Start here: http://www.zerotier.com/
- */
-
-#include <sys/poll.h>
-#include <string>
-
-#include "../osdep/Phy.hpp"
-#include "NetconEthernetTap.hpp"
-
-#include "Intercept.h"
-#include "LWIPStack.hpp"
-
-#ifndef _NETCON_SERVICE_HPP
-#define _NETCON_SERVICE_HPP
-
-using namespace std;
-
-namespace ZeroTier {
-
-  class NetconEthernetTap;
-  class TcpConnection;
-
-  /*
-   * TCP connection administered by service
-   */
-  class TcpConnection
-  {
-  public:
-    int perceived_fd;
-    int their_fd;
-    bool pending;
-    bool listening;
-    int pid;
-
-    unsigned long written;
-    unsigned long acked;
-
-    PhySocket *rpcSock;
-    PhySocket *dataSock;
-    struct tcp_pcb *pcb;
-
-    unsigned char buf[DEFAULT_READ_BUFFER_SIZE];
-    int idx;
-  };
-
-  /*
-   * A helper class for passing a reference to _phy to LWIP callbacks as a "state"
-   */
-  class Larg
-  {
-  public:
-    NetconEthernetTap *tap;
-    TcpConnection *conn;
-    Larg(NetconEthernetTap *_tap, TcpConnection *conn) : tap(_tap), conn(conn) {}
-  };
-} // namespace ZeroTier
-
-#endif