diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2006-03-07 21:37:35 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2006-03-07 21:37:35 +0000 |
commit | 79eb6e21ca817628a3e84f2c21bb3630e6457dab (patch) | |
tree | 5db624b5c966dedb453d47f907624f960af45484 | |
parent | 2006-03-07 Till Strauman <strauman@slac.stanford.edu> (diff) | |
download | rtems-79eb6e21ca817628a3e84f2c21bb3630e6457dab.tar.bz2 |
2006-03-07 Paul Whitfield <paulw@omnitronics.com.au>
PR 843/rtems_misc
* rtems_webserver/socket.c: There is a memory corruption problem in the
selectSocket function in the web server, this only become apparent if
you disable the built in memory allocation functions. I have disabled
the internal memory management to get file upload working.
-rw-r--r-- | c/src/libnetworking/ChangeLog | 8 | ||||
-rw-r--r-- | c/src/libnetworking/rtems_webserver/socket.c | 14 |
2 files changed, 18 insertions, 4 deletions
diff --git a/c/src/libnetworking/ChangeLog b/c/src/libnetworking/ChangeLog index 4478ef2d1e..e7b80c1610 100644 --- a/c/src/libnetworking/ChangeLog +++ b/c/src/libnetworking/ChangeLog @@ -1,3 +1,11 @@ +2006-03-07 Paul Whitfield <paulw@omnitronics.com.au> + + PR 843/rtems_misc + * rtems_webserver/socket.c: There is a memory corruption problem in the + selectSocket function in the web server, this only become apparent if + you disable the built in memory allocation functions. I have disabled + the internal memory management to get file upload working. + 2006-02-08 Thomas Rauscher <trauscher@loytec.com> PR 890/networking diff --git a/c/src/libnetworking/rtems_webserver/socket.c b/c/src/libnetworking/rtems_webserver/socket.c index 8a145fe520..ec968915af 100644 --- a/c/src/libnetworking/rtems_webserver/socket.c +++ b/c/src/libnetworking/rtems_webserver/socket.c @@ -602,7 +602,7 @@ int socketReady(int sid) * noticed events. Timeout is in milliseconds. */ -#if WIN || CE +#if WIN || CE || __rtems__ int socketSelect(int sid, int timeout) { @@ -610,12 +610,16 @@ int socketSelect(int sid, int timeout) socket_t *sp; fd_set readFds, writeFds, exceptFds; int nEvents; - int all, socketHighestFd; /* Highest socket fd opened */ + int all; +#if WIN || CE + int socketHighestFd; /* Highest socket fd opened */ + socketHighestFd = -1; +#endif FD_ZERO(&readFds); FD_ZERO(&writeFds); FD_ZERO(&exceptFds); - socketHighestFd = -1; + tv.tv_sec = timeout / 1000; tv.tv_usec = (timeout % 1000) * 1000; @@ -659,6 +663,7 @@ int socketSelect(int sid, int timeout) } } +#if WIN || CE /* * Windows select() fails if no descriptors are set, instead of just sleeping * like other, nice select() calls. So, if WIN, sleep. @@ -667,7 +672,8 @@ int socketSelect(int sid, int timeout) Sleep(timeout); return 0; } - +#endif + /* * Wait for the event or a timeout. */ |