diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-11-20 21:55:06 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-11-20 21:55:06 +0000 |
commit | ab97d30ecb919fdc582b287f6ed195f56f8b940a (patch) | |
tree | 15db36e30fe30075661d8ba3b420f56af529a68d | |
parent | 78dd0de872d9bef518f3ef395b4913197e1b2077 (diff) | |
download | nuttx-ab97d30ecb919fdc582b287f6ed195f56f8b940a.tar.gz nuttx-ab97d30ecb919fdc582b287f6ed195f56f8b940a.tar.bz2 nuttx-ab97d30ecb919fdc582b287f6ed195f56f8b940a.zip |
Fix TCP list managment bug
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@392 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r-- | nuttx/ChangeLog | 1 | ||||
-rw-r--r-- | nuttx/Documentation/NuttX.html | 3 | ||||
-rw-r--r-- | nuttx/net/uip/uip-tcpconn.c | 2 | ||||
-rw-r--r-- | nuttx/netutils/webserver/httpd.c | 4 | ||||
-rw-r--r-- | nuttx/netutils/webserver/httpd.h | 15 |
5 files changed, 20 insertions, 5 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index e0316a37a..6543fbad9 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -232,4 +232,5 @@ * Add strcat() and strncat() * Integrated uIP micro webserver + * Corrected a serious bug in TCP queue management diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index d277aaa2b..2bee653cd 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: November 19, 2007</p> + <p>Last Updated: November 20, 2007</p> </td> </tr> </table> @@ -693,6 +693,7 @@ Other memory: * Add strcat() and strncat() * Integrated uIP micro webserver + * Corrected a serious bug in TCP queue management </pre></ul> <table width ="100%"> diff --git a/nuttx/net/uip/uip-tcpconn.c b/nuttx/net/uip/uip-tcpconn.c index 952db8774..96849d926 100644 --- a/nuttx/net/uip/uip-tcpconn.c +++ b/nuttx/net/uip/uip-tcpconn.c @@ -304,7 +304,7 @@ void uip_tcpfree(struct uip_conn *conn) { /* Remove the connection from the active list */ - dq_rem(&conn->node, &g_free_tcp_connections); + dq_rem(&conn->node, &g_active_tcp_connections); } /* Release any read-ahead buffers attached to the connection */ diff --git a/nuttx/netutils/webserver/httpd.c b/nuttx/netutils/webserver/httpd.c index 4564a7652..1f360c1ab 100644 --- a/nuttx/netutils/webserver/httpd.c +++ b/nuttx/netutils/webserver/httpd.c @@ -469,7 +469,7 @@ static void *httpd_handler(void *arg) if (pstate) { /* Loop processing each HTTP command */ - do +// do { /* Re-initialize the thread state structure */ @@ -480,7 +480,7 @@ static void *httpd_handler(void *arg) ret = httpd_cmd(pstate); } - while (ret == OK); +// while (ret == OK); /* End of command processing -- Clean up and exit */ diff --git a/nuttx/netutils/webserver/httpd.h b/nuttx/netutils/webserver/httpd.h index 031d90187..7e70ccd41 100644 --- a/nuttx/netutils/webserver/httpd.h +++ b/nuttx/netutils/webserver/httpd.h @@ -54,9 +54,22 @@ ****************************************************************************/ #define HTTPD_FS_STATISTICS 1 -#define HTTPD_IOBUFFER_SIZE UIP_TCP_MSS + +/* For efficiency reasons, the size of the IO buffer should be a multiple + * of the TCP MSS value. Also, the current design requires that the IO + * buffer be sufficiently large to contain the entire GET request. + */ + +#define HTTPD_IOBUFFER_SIZE (3*UIP_TCP_MSS) + +/* this is the maximum size of a file path */ + #define HTTPD_MAX_FILENAME 20 +/* As threads are created to handle each request, a stack must be allocated + * for the thread. Use a default if the user provided no stacksize. + */ + #ifndef CONFIG_EXAMPLES_UIP_HTTPDSTACKSIZE # define CONFIG_EXAMPLES_UIP_HTTPDSTACKSIZE 4096 #endif |