diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2009-08-02 16:31:50 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2009-08-02 16:31:50 +0000 |
commit | d0e7e21e63785d33ebd708ff6c1e5b4d1d76d064 (patch) | |
tree | 3b2e70f57a5b67c3d3f7e0b851110a09e7edd3cf | |
parent | 68994faba7abcfe325326c122ad214e868a9e83f (diff) |
Fix accept() -- it wanted parts of return address initialized
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@2008 7fd9a85b-ad96-42d3-883c-3090e2eb8679
-rw-r--r-- | nuttx/TODO | 7 | ||||
-rw-r--r-- | nuttx/net/accept.c | 18 | ||||
-rw-r--r-- | nuttx/netutils/thttpd/libhttpd.c | 4 |
3 files changed, 21 insertions, 8 deletions
diff --git a/nuttx/TODO b/nuttx/TODO index 90bc128479..b129aea6d8 100644 --- a/nuttx/TODO +++ b/nuttx/TODO @@ -1,4 +1,4 @@ -NuttX TODO List (Last updated June 26, 2009) +NuttX TODO List (Last updated August 3, 2009) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (5) Task/Scheduler (sched/) @@ -234,6 +234,11 @@ o Network (net/, netutils/) Status: Open, depends on UDP read-ahead support Priority: Medium + Description: sockets do not support any modes except for O_NONBLOCK (that + that is not implemented in a very general way at present) + Status: Open + Priority: Low. + o USB (drivers/usbdev) ^^^^^^^^^^^^^^^^^^^^ diff --git a/nuttx/net/accept.c b/nuttx/net/accept.c index c2e64153c6..81ac8dbfff 100644 --- a/nuttx/net/accept.c +++ b/nuttx/net/accept.c @@ -1,7 +1,7 @@ /**************************************************************************** * net/accept.c * - * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> * * Redistribution and use in source and binary forms, with or without @@ -102,10 +102,17 @@ struct accept_s #ifdef CONFIG_NET_IPv6 static inline void accept_tcpsender(FAR struct uip_conn *conn, FAR struct sockaddr_in6 *addr) +{ + if (addr) + { + addr->sin_family = AF_INET6; + addr->sin_port = conn->rport; + uip_ipaddr_copy(addr->sin_addr.s_addr, conn->ripaddr); + } +} #else static inline void accept_tcpsender(FAR struct uip_conn *conn, FAR struct sockaddr_in *addr) -#endif { if (addr) { @@ -114,7 +121,8 @@ static inline void accept_tcpsender(FAR struct uip_conn *conn, uip_ipaddr_copy(addr->sin_addr.s_addr, conn->ripaddr); } } -#endif +#endif /* CONFIG_NET_IPv6 */ +#endif /* CONFIG_NET_TCP */ /**************************************************************************** * Function: accept_interrupt @@ -304,9 +312,9 @@ int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) if (addr) { #ifdef CONFIG_NET_IPv6 - if (addr->sa_family != AF_INET6 || *addrlen < sizeof(struct sockaddr_in6)) + if (*addrlen < sizeof(struct sockaddr_in6)) #else - if (addr->sa_family != AF_INET || *addrlen < sizeof(struct sockaddr_in)) + if (*addrlen < sizeof(struct sockaddr_in)) #endif { err = EBADF; diff --git a/nuttx/netutils/thttpd/libhttpd.c b/nuttx/netutils/thttpd/libhttpd.c index ad5091c1b7..fa294f3925 100644 --- a/nuttx/netutils/thttpd/libhttpd.c +++ b/nuttx/netutils/thttpd/libhttpd.c @@ -3551,7 +3551,7 @@ char *httpd_method_str(int method) } } -int httpd_get_conn(httpd_server * hs, int listen_fd, httpd_conn *hc) +int httpd_get_conn(httpd_server *hs, int listen_fd, httpd_conn *hc) { httpd_sockaddr sa; socklen_t sz; @@ -3596,7 +3596,7 @@ int httpd_get_conn(httpd_server * hs, int listen_fd, httpd_conn *hc) return GC_NO_MORE; } - ndbg("accept: %d\n", errno); + ndbg("accept failed: %d\n", errno); return GC_FAIL; } |