diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index d7c7753ce..e97c07abd 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -839,7 +839,7 @@ * net/accept.c: Fix bug in accept(). The logic expected parts of the return address structure to be initialized or it would return an error. -0.4.11 2009-xx-xx Gregory Nutt +0.4.11 2009-09-16 Gregory Nutt * fs/fs_read.c and fs/fs_write.c. read() and write() to socket is the same as recv() and send() with flags = 0. Fixed! @@ -878,4 +878,19 @@ to new tasks. * net/net_clone.c. Similarly, after a socket is cloned, its reference count was not being initialized. + * lib/lib_strstr.c. Improperly incremented pointer could cause comparison + failures. + * net/. Connection reference count must always be set to zero before calling + uip_tcpfree() or it could trigger a DEBUGASSERT that verifies that the + reference count is zero before freeing a connection structure. + * net/uip/uip_listen.c. uip_accept() consulted the wrong list to find the + listener on a socket. The previous logic worked most of the time, but + occasionally picked the wrong listener. + * net/net_close.c and net/net_sockets.c. Sockets were not being closed + when a task exits. If many server tasks are created and exit without closing + sockets (such as with CGI tasks), then eventually, you will run out of sockets. + * netutils/thttpd. Basic functionality of THTTPD is complete. This includes + serving up files from a file system and executing NXFLAT-based CGI programs + and pipe the stdout back to the HTTP client. +0.4.12 2009-xx-xx Gregory Nutt diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 834ba4075..4af7ab33a 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@

NuttX RTOS

-

Last Updated: September 15, 2009

+

Last Updated: September 16, 2009

@@ -706,32 +706,32 @@ -

nuttx-0.4.10. - This 42nd release of NuttX (nuttx-0.4.10) was made on August 8, 2009 - and is available for download from the - SourceForge - website. +

nuttx-0.4.11. + +

+ This 43rd release of NuttX was made on September 16, 2009 and is available for download from the + SourceForge website. The change log associated with the release is available here. Unreleased changes after this release are available in CVS. These unreleased changes are listed here. + This release of NuttX incorporates the verified port of Jeff Poskanzer's THTTPD HTTP server. + Many of the key features of THTTPD have been tested on the Micromint Eagle-100 development board (Cortex-M3). + These tests verify:

- The changes in thsi release focus on the port of Jeff Poskanzer's - THTTPD to NuttX. - Do to limited time to work on NuttX, that port is still not fully functional. - However, numerous related bug-fixes and functional additions for THTTPD were - added: -
    -
  • Several new standard C-library functions (fileno, strstr, - strpbrk, fcntl).
  • -
  • Improved and extended timing APIs (mktime, gmtime, gmtime_r, - gettimeofday, localtime, localtime_r, and - strftime)
  • -
  • Networking enhancements: recvfrom and accept now work with non-blocking - sockets.
  • -
  • NXFLAT extensions (exec)
  • -
  • Pattern matching logic.
  • -
  • And miscellaneous bug fixes (see the ChangeLog for a complete list).
  • -
+
    +
  • Serving of files from any file system, and
  • +
  • Execution of CGI executable. + This release supports execution of NXFLAT executables residing on a ROMFS file system. +
+

+ A standard CGI interface is used: Information is pasted to the CGI program via POST commands and via environment variables. + CGI socket I/O is redirected to stdin and stdout so that the CGI program only need to printf() to send its content back to the HTTP client. +

+

+ Another value to this THTTPD integration effort has been that THTTPD has provided a very good test bed for finding NuttX networking bugs. + Several very critical networking bugs have been fixed with this 0.4.11 release (see the ChangeLog for details). + Networking throughput has also been greatly improved. + Anyone using NuttX networking should consider upgrading to this release.

@@ -1435,70 +1435,6 @@ Other memory:
-
    -nuttx-0.4.10 2009-08-08 Gregory Nutt <spudmonkey@racsa.co.cr>
    -
    -	* lib/: Added some basic regex-subset, pattern matching functions
    -	* lib/: Greatly simplified mktime() and gmtime_r().  The Gregorian and
    -	  Julian time calculations were interesting, but not necessary in the
    -	  typical embeddd system.
    -	* sched/: Added gettimeofday().  This implementation is simply a thin
    -	  wrapper around clock_gettimer().
    -	* lib/: Add gmtime(), localtime(), and strftime()
    -	* binfmt/: Add exec().  This is just a wrapper that executes both
    -	  load_ and exec_module() in a more familiar manner.  It is not consistent
    -	  with more standard exec() functions, however, because (1) it returns
    -	  and (2) it requires symbol table arguments.
    -	* lib/: Add fileno()
    -	* examples/ostest: Several of the tests used a big, hard-coded stack size
    -	  when creating test threads (16Kb stacksize).  The stack size should
    -	  be controlled by the .config file or the OSTest won't work on platforms
    -	  with memory constraints.
    -	* netutils/thttpd: An initial port of Jef Poskanzer's THTTPD HTTP server.
    -	  See http://acme.com/software/thttpd/.
    -	* examples/thttpd: A basic test program for THTTPD
    -	* configs/eagle100/thttpd: A build configuration for THTTPD on the Micromint
    -	  Eagle-100 LMS6918 (Cortex-M3) board.
    -	* configs/ntosd-dm320/thttpd: A build configuration for THTTPD on the Neuros
    -	  DM320 platform.
    -	* lib/: Added strstr() and strpbrk().
    -	* net/recvfrom.c and net/accept(): Sockets now support some non-blocking
    -	  operations, specifically for (1) TCP/IP read operations when read-ahead
    -	  buffering is enabled, and (2) TCP/IP accept() operations when TCP/IP
    -	  connection backlog is enabled.
    -	* fs/fs_fcntl.c and net/net_vfcntl.c: Minimal support provided for fcntl().
    -	  It can, at least, be used to mark sockets as blocking or non-blocking.
    -	* net/net_close.c: Fix bug in close().  If reference count not set to zero
    -	  then uip_tcpfree() will assert when DEBUG is enabled.
    -	* net/accept.c: Fix bug in accept().  The logic expected parts of the
    -	  return address structure to be initialized or it would return an error.
    -
    -pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr>
    -
    -	* Add logic to build and link with the ZDS-II toolchain
    -	  use with the z16f.
    -	* Make sure that POFF header structures are aligned
    -	* Standardized POFF file format to big-endian
    -	* Break up large switch statements to lower complexity
    -	  and eliminate a compiler bug
    -	* Changes so that runtime compiles with SDCC.
    -
    -buildroot-0.1.7 2009-06-26 <spudmonkey@racsa.co.cr>
    -
    -	* configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX
    -	  port of the ATmega128.
    -	* toolchain/nxflat:  Added logic to build NuttX NXFLAT binding support tools
    -	* toolchain/genromfs:  Added support for the genromfs tool
    -
- - - - - -
- Unreleased Changes -
-
     nuttx-0.4.11 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
     
    @@ -1538,6 +1474,49 @@ nuttx-0.4.11 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
     	  to new tasks.
     	* net/net_clone.c.  Similarly, after a socket is cloned, its reference count
     	  was not being initialized.
    +	* lib/lib_strstr.c.  Improperly incremented pointer could cause comparison
    +	  failures.
    +	* net/.  Connection reference count must always be set to zero before calling
    +	  uip_tcpfree() or it could trigger a DEBUGASSERT that verifies that the
    +	  reference count is zero before freeing a connection structure.
    +	* net/uip/uip_listen.c.  uip_accept() consulted the wrong list to find the
    +	  listener on a socket.  The previous logic worked most of the time, but
    +	  occasionally picked the wrong listener.
    +	* net/net_close.c and net/net_sockets.c.  Sockets were not being closed
    +	  when a task exits.  If many server tasks are created and exit without closing
    +	  sockets (such as with CGI tasks), then eventually, you will run out of sockets.
    +	* netutils/thttpd.  Basic functionality of THTTPD is complete.  This includes
    +	  serving up files from a file system and executing NXFLAT-based CGI programs
    +	  and pipe the stdout back to the HTTP client.
    +
    +pascal-0.1.2 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr>
    +
    +	* Add logic to build and link with the ZDS-II toolchain
    +	  use with the z16f.
    +	* Make sure that POFF header structures are aligned
    +	* Standardized POFF file format to big-endian
    +	* Break up large switch statements to lower complexity
    +	  and eliminate a compiler bug
    +	* Changes so that runtime compiles with SDCC.
    +
    +buildroot-0.1.7 2009-06-26 <spudmonkey@racsa.co.cr>
    +
    +	* configs/avr-defconfig-4.3.3: Added support for AVR to support a NuttX
    +	  port of the ATmega128.
    +	* toolchain/nxflat:  Added logic to build NuttX NXFLAT binding support tools
    +	* toolchain/genromfs:  Added support for the genromfs tool
    +
+ + + + + +
+ Unreleased Changes +
+ +
    +nuttx-0.4.12 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
     
     pascal-0.1.3 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
     
    diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes
    index 3cee98d42..be965692b 100644
    --- a/nuttx/ReleaseNotes
    +++ b/nuttx/ReleaseNotes
    @@ -957,4 +957,27 @@ added:
     
     This tarball contains a complete CVS snapshot from August 8, 2009.
     
    +nuttx-0.4.11
    +^^^^^^^^^^^^
     
    +This is the 43rd release of NuttX. This release of NuttX incorporates the
    +verified port of Jeff Poskanzer's THTTPD HTTP server (see http://acme.com/software/thttpd/.).
    +Many of the key features of THTTPD have been tested on the Micromint Eagle-100
    +development board (Cortex-M3).  These tests verify:
    +
    +	* Serving of files from any file system
    +	* Execution of CGI executable.  This release supports execution of
    +	  NXFLAT executables on a ROMFS file system (http://www.nuttx.org/NuttXNxFlat.html)
    +
    +A standard CGI interface is used:  Information is pasted to the CGI program via POST
    +commands and via environment variables.  CGI socket I/O is redirected to stdin and stdout
    +so that the CGI program only need to printf() to send its content back to the HTTP
    +client.
    +
    +Another value to this THTTPD integration effort has been that THTTPD has provided a very
    +good test bed for finding NuttX networking bugs.  Several very critical networking bugs
    +have been fixed with this 0.4.11 release (see the ChangeLog for details).  Networking
    +throughput has also been greatly improved.  Anyone using NuttX networking should consider
    +upgrading to this release.
    +
    +This tarball contains a complete CVS snapshot from September 16, 2009
    diff --git a/nuttx/TODO b/nuttx/TODO
    index 950fec14b..83c451eb0 100644
    --- a/nuttx/TODO
    +++ b/nuttx/TODO
    @@ -1,4 +1,4 @@
    -NuttX TODO List (Last updated September 15, 2009)
    +NuttX TODO List (Last updated September 16, 2009)
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     
       (5)  Task/Scheduler (sched/)
    @@ -7,7 +7,8 @@ NuttX TODO List (Last updated September 15, 2009)
       (1)  pthreads (sched/)
       (1)  C++ Support
       (5)  Binary loaders (binfmt/)
    - (15)  Network (net/, netutils/)
    + (13)  Network (net/, netutils/)
    +  (4)  Network Utilities (netutils/)
       (1)  USB (drivers/usbdev)
       (5)  Libraries (lib/)
       (8)  File system/Generic drivers (fs/, drivers/)
    @@ -136,15 +137,8 @@ o Binary loaders (binfmt/)
       Status:      Open
       Priority:    Low
     
    -o Network (net/, netutils/)
    -  ^^^^^^^^^^^^^^^^^^^^^^^^^
    -
    -  Description: One critical part of netutils/ apps is untested: The uIP
    -               resolver in netutils/resolv.  The webclient code has been
    -               tested on host using gethosbyname(), but still depends on the
    -               untested resolve logic.
    -  Status:      Open
    -  Priority:    Medium, Important but not core NuttX functionality
    +o Network (net/)
    +  ^^^^^^^^^^^^^^
     
       Description: Should implement SOCK_RAW, SOCK_PACKET
       Status:      Open
    @@ -204,10 +198,6 @@ o Network (net/, netutils/)
       Status:      Open
       Priority:    Medium
     
    -  Description: Port PPP support from http://contiki.cvs.sourceforge.net/contiki/contiki-2.x/backyard/core/net/ppp/
    -  Status:      Open
    -  Priority:    Low
    -
       Description: At present, there cannot be two concurrent active TCP send
                    operations in progress using the same socket.  This is because
                    the uIP ACK logic will support only one transfer at a time.  The
    @@ -244,15 +234,36 @@ o Network (net/, netutils/)
     
       Description: sockets do not support all modes except for O_NONBLOCK. Sockets
                    support only (1) TCP/IP non-blocking read operations when read-ahead
    -	       buffering is enabled, and (2) TCP/IP accept() operations when TCP/IP
    -	       connection backlog is enabled.
    +               buffering is enabled, and (2) TCP/IP accept() operations when TCP/IP
    +               connection backlog is enabled.
       Status:      Open
       Priority:    Low.
     
    -  Description: THTTPD is included in the source tree, but has not yet been fully
    -               integrated.
    +o Network Utilities (netutils/)
    +
    +  Description: One critical part of netutils/ apps is untested: The uIP
    +               resolver in netutils/resolv.  The webclient code has been
    +               tested on host using gethosbyname(), but still depends on the
    +               untested resolve logic.
       Status:      Open
    -  Priority:    High
    +  Priority:    Medium, Important but not core NuttX functionality
    +
    +  Description: Port PPP support from http://contiki.cvs.sourceforge.net/contiki/contiki-2.x/backyard/core/net/ppp/
    +  Status:      Open
    +  Priority:    Low
    +
    +  Description: Not all THTTPD features/options have been verified.  In particular, there is no
    +               test case of a CGI program receiving POST input.  Only the configuration of
    +               examples/thttpd has been tested.
    +  Status:      Open
    +  Priority:    Medium
    +
    +  Description: The first GET received by THTTPD is not responded to.  Refreshing the page
    +               from the browser solves the problem and THTTPD works fine after thatg.  I 
    +               believe that this is the duplicate of another bug: "Outgoing [uIP] packets are dropped
    +               and overwritten by ARP packets if the destination IP has not been mapped to a MAC."
    +  Status:      Open
    +  Priority:    Medium
     
     o USB (drivers/usbdev)
       ^^^^^^^^^^^^^^^^^^^^