Browse Source

debug changes

Joseph Henry 10 years ago
parent
commit
735ae9b369
2 changed files with 21 additions and 23 deletions
  1. 17 17
      netcon/NetconEthernetTap.cpp
  2. 4 6
      netcon/NetconEthernetTap.hpp

+ 17 - 17
netcon/NetconEthernetTap.cpp

@@ -156,6 +156,8 @@ void NetconEthernetTap::put(const MAC &from,const MAC &to,unsigned int etherType
 	if (!_enabled)
 		return;
 
+		fprintf(stderr, "put\n");
+/*
 	if (etherType == ZT_ETHERTYPE_ARP) {
 		char arpReplyBuf[ZT_ARP_BUF_LENGTH];
 		unsigned int arpReplyLen = 0;
@@ -167,8 +169,7 @@ void NetconEthernetTap::put(const MAC &from,const MAC &to,unsigned int etherType
 			fprintf(stderr, "ARP reply generated\n");
 			_handler(_arg,_nwid,_mac,from,ZT_ETHERTYPE_ARP,0,arpReplyBuf,arpReplyLen);
 	}
-	else if (etherType == ZT_ETHERTYPE_IPV4) {
-
+*/
 		// Copy data into a pbuf chain
 		struct pbuf *p, *q;
 	  //u16_t len;
@@ -202,11 +203,12 @@ void NetconEthernetTap::put(const MAC &from,const MAC &to,unsigned int etherType
 		_mac.copyTo(ethhdr->dest.addr, 6);
 		ethhdr->type = ZT_ETHERTYPE_IPV4;
 
-		if(interface.input(p, &interface) != ERR_OK)
-		{
+		if(interface.input(p, &interface) != ERR_OK) {
 			fprintf(stderr, "IP error (netif->input)\n");
 		}
-	}
+		else {
+			fprintf(stderr, "interface.input(...) len = %d\n", len);
+		}
 }
 
 std::string NetconEthernetTap::deviceName() const
@@ -342,29 +344,21 @@ void NetconEthernetTap::threadMain()
   unsigned long since_etharp;
 	struct timeval tv;
 
+	fprintf(stderr, "initializing interface\n");
+
 	/* set up the faux-netif for LWIP's sake */
 	fprintf(stderr, "netif_add\n");
 	lwipstack->netif_add(&interface,&ipaddr, &netmask, &gw, NULL, tapif_init, lwipstack->ethernet_input);
 
-
-	fprintf(stderr, "initializing interface\n");
-	struct tapif *tapif;
-  tapif = (struct tapif *)mem_malloc(sizeof(struct tapif));
-  if (!tapif) {
-  	//return ERR_MEM;
-  }
-  //interface.state = tapif;
   interface.state = this;
 	interface.name[0] = 't';
   interface.name[1] = 'p';
   interface.output = lwipstack->etharp_output;
   interface.linkoutput = low_level_output;
   interface.mtu = 1500;
-  /* hardware address length */
   interface.hwaddr_len = 6;
-  tapif->ethaddr = (struct eth_addr *)&(interface.hwaddr[0]);
+	_mac.copyTo(interface.hwaddr, 6);
   interface.flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP;
-  low_level_init(&interface);
 
 	fprintf(stderr, "netif_set_default\n");
   lwipstack->netif_set_default(&interface);
@@ -383,11 +377,13 @@ void NetconEthernetTap::threadMain()
 	  if(since_tcp > tcp_time)
 	  {
 	    prev_tcp_time = curr_time+1;
+			fprintf(stderr, "tcp_tmr\n");
 	    lwipstack->tcp_tmr();
 	  }
 		if(since_etharp > etharp_time)
 		{
 			prev_etharp_time = curr_time;
+			fprintf(stderr, "etharp_tmr\n");
 			lwipstack->etharp_tmr();
 		}
 		fprintf(stderr, "_run\n");
@@ -660,7 +656,9 @@ void NetconEthernetTap::handle_bind(NetconClient *client, struct bind_st *bind_r
   connaddr = (struct sockaddr_in *) &bind_rpc->addr;
   int conn_port = lwipstack->ntohs(connaddr->sin_port);
   ip_addr_t conn_addr;
-  IP4_ADDR(&conn_addr, 192,168,0,2);
+  //IP4_ADDR(&conn_addr, 192,168,0,2);
+	conn_addr.addr = *((u32_t *)_ips[0].rawIpData());
+
 
 	/*
   int ip = connaddr->sin_addr.s_addr;
@@ -671,6 +669,8 @@ void NetconEthernetTap::handle_bind(NetconClient *client, struct bind_st *bind_r
   bytes[3] = (ip >> 24) & 0xFF;
   "binding to: %d.%d.%d.%d", bytes[0], bytes[1], bytes[2], bytes[3]
   */
+
+	fprintf(stderr, "PORT = %d\n", conn_port);
 	NetconConnection *c = client->getConnectionByTheirFD(bind_rpc->sockfd);
   if(c) {
     if(c->pcb->state == CLOSED){

+ 4 - 6
netcon/NetconEthernetTap.hpp

@@ -188,10 +188,12 @@ private:
 
   static void low_level_init(struct netif *netif)
   {
+    fprintf(stderr, "low_level_init\n");
   }
 
   static err_t tapif_init(struct netif *netif)
   {
+    fprintf(stderr, "tapif_init\n");
     return ERR_OK;
   }
 
@@ -206,12 +208,6 @@ private:
     //tapif = (struct tapif *)netif->state;
     ZeroTier::NetconEthernetTap *tap = (ZeroTier::NetconEthernetTap*)netif->state;
 
-  #if 0
-      if(((double)rand()/(double)RAND_MAX) < 0.2) {
-      printf("drop output\n");
-      return ERR_OK;
-      }
-  #endif
     /* initiate transfer(); */
 
     bufptr = &buf[0];
@@ -238,6 +234,8 @@ private:
     dest_mac.setTo(ethhdr->dest.addr, 6);
 
     tap->_handler(tap->_arg,tap->_nwid,src_mac,dest_mac,ZT_ETHERTYPE_IPV4,0,buf,p->tot_len);
+    fprintf(stderr, "low_level_output(%d)\n", tap->_nwid);
+
     return ERR_OK;
   }