Free (GPLv2) TCP/IP stack developed by TASS Belgium

Fork of PicoTCP by Daniele Lacamera

Files at this revision

API Documentation at this revision

Comitter:
tass
Date:
Wed Jul 17 07:28:27 2013 +0000
Parent:
41:4c18c62b31b9
Child:
43:5f2146814b83
Commit message:
Debug can be enabled now by defining eth_dbg or ptsock_dbg.; Made DHCP callback go to failed branch when error is reported.

Changed in this revision

EthernetInterface/EthernetInterface.cpp Show annotated file Show diff for this revision Revisions of this file
Socket/bsd/stack_endpoint.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/EthernetInterface/EthernetInterface.cpp	Tue Jul 16 07:41:44 2013 +0000
+++ b/EthernetInterface/EthernetInterface.cpp	Wed Jul 17 07:28:27 2013 +0000
@@ -41,6 +41,8 @@
 #include "pico_dhcp_client.h"
 #include "pico_dns_client.h"
 
+#define eth_dbg(...)
+
 void (*linkCb)(uint32_t link) = NULL;
 }
 
@@ -63,7 +65,7 @@
     void *id = NULL;
     struct pico_ip4 address, gateway, zero = {};
     
-    if (PICO_DHCP_SUCCESS != code)
+    if (PICO_DHCP_ERROR == code)
         goto fail;
         
     id = pico_dhcp_get_identifier(dhcp_xid);
@@ -87,7 +89,7 @@
     return;
     
 fail:
-    printf("DHCP request failed!\n");
+    eth_dbg("DHCP request failed!\n");
     dhcp_retval = -1;
     dhcp_mx.unlock();
 }
@@ -107,9 +109,9 @@
     }
     
     if(lpc_eth)
-        printf("Ethernet initialized...\n");
+        eth_dbg("Ethernet initialized...\n");
     else
-        printf("Failed to start Ethernet...\n");
+        eth_dbg("Failed to start Ethernet...\n");
        
 }
 
--- a/Socket/bsd/stack_endpoint.cpp	Tue Jul 16 07:41:44 2013 +0000
+++ b/Socket/bsd/stack_endpoint.cpp	Wed Jul 17 07:28:27 2013 +0000
@@ -49,7 +49,7 @@
   while ((ep->events & ep->revents) == 0) {
     ep->queue->get(time);
     if ((time != osWaitForever) && (PICO_TIME_MS() > in_time + time)) {
-        printf("TIMEOUT in critical select... (ev:%04x rev:%04x \n", ep->events, ep->revents);
+        ptsock_dbg("TIMEOUT in critical select... (ev:%04x rev:%04x \n", ep->events, ep->revents);
         if(lock) PicoTcpLock->lock();
         return 0;
     }
@@ -63,10 +63,10 @@
   struct stack_endpoint *ep = (struct stack_endpoint *)s->priv;
   if (!ep) {
     if (ep_accepting != NULL) {
-        //printf("Delivering %02x to accepting socket...\n", ev);
+        ptsock_dbg("Delivering %02x to accepting socket...\n", ev);
         ep = ep_accepting;
     } else {
-        printf("WAKEUP: socket not found! ev=%04x\n", ev);
+        ptsock_dbg("WAKEUP: socket not found! ev=%04x\n", ev);
         return;
     }
   }
@@ -78,7 +78,7 @@
   {
     if(pico_err == PICO_ERR_ECONNRESET)
     {   
-      printf("Connection reset by peer...\n");
+      ptsock_dbg("Connection reset by peer...\n");
       ep->state = SOCK_RESET_BY_PEER;
       pico_socket_close(ep->s);
       ep->s->priv = NULL;
@@ -108,10 +108,10 @@
     delete(ep->queue);
     pico_free(ep);
     ep = NULL;
-    printf("Error opening socket!\n");
+    ptsock_dbg("Error opening socket!\n");
   } else {
     ep->s->priv = ep;
-    printf("Added socket (open)\n");
+    ptsock_dbg("Added socket (open)\n");
     ep->state = SOCK_OPEN;
     ep->queue = new Queue<void,1>();
   }
@@ -193,15 +193,15 @@
   ep->events = PICO_SOCK_EV_CONN | PICO_SOCK_EV_ERR;
   __critical_select(ep, osWaitForever, 1);
   if (ep->revents & PICO_SOCK_EV_CONN) {
-    printf("Calling Accept\n");
+    ptsock_dbg("Calling Accept\n");
     aep->s = pico_socket_accept(ep->s, (struct pico_ip4 *)(&cli_addr->sin_addr.s_addr), &cli_addr->sin_port);
-    printf("Accept returned\n");
+    ptsock_dbg("Accept returned\n");
     aep->s->priv = aep;
     ep->revents &= (~PICO_SOCK_EV_CONN);
     aep->revents = 0; // set this to 0 to allow seq connections
     aep->revents |= PICO_SOCK_EV_WR;
     aep->state = SOCK_CONNECTED;
-    printf("Added socket (accept)\n");
+    ptsock_dbg("Added socket (accept)\n");
     
     *len = sizeof(struct sockaddr_in);
     ptsock_dbg("Established. sock state: %x\n", aep->s->state);
@@ -369,7 +369,7 @@
   PicoTcpLock->lock();
   while (tot_len < len) {
     retval = pico_socket_write(ep->s, ((uint8_t *)buf) + tot_len ,  len - tot_len);
-    //retval = pico_socket_read(ep->s, ((uint8_t *)buf) + tot_len ,  len - tot_len);
+    
     if (retval == 0) {
         if (tot_len < len)
             ep->revents &= ~PICO_SOCK_EV_WR;
@@ -423,7 +423,7 @@
     pico_socket_close(ep->s);
     ep->s->priv = NULL;
   }
-  printf("Socket closed!\n");
+  ptsock_dbg("Socket closed!\n");
   delete(ep->queue);
   pico_free(ep);
   PicoTcpLock->unlock();
@@ -473,7 +473,7 @@
   if (serverThread == NULL) {
     PicoTcpLock = new Mutex();
     PicoTcpEvents = new Queue<void,32>();
-    printf (" *** PicoTCP initialized *** \n");
+    ptsock_dbg (" *** PicoTCP initialized *** \n");
     serverThread = new Thread(pico_wrapper_loop);
     serverThread->set_priority(osPriorityIdle);
   }