From 49691c18d8bad22da774970c6b8e767cc7f4b7d6 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 26 Mar 2009 02:38:07 +0000 Subject: Add host based test for wget() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1644 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/ChangeLog | 2 ++ nuttx/Documentation/NuttX.html | 4 +++- nuttx/include/net/uip/webclient.h | 4 +++- nuttx/netutils/dhcpd/dhcpd.c | 5 +++++ nuttx/netutils/webclient/webclient.c | 29 ++++++++++++++++++----------- 5 files changed, 31 insertions(+), 13 deletions(-) diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 787750476..424dacb91 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -671,3 +671,5 @@ * Z80: Patch incorported: "[2696648] Z80: interrupt flag stored in parity bit" (submitted by JPelletier). The is the same fix that was needed for the eZ80 and fixed in 0.4.2. + * netutils: Added logic to support a simple wget() function + * examples/wget: Added a test for wget() diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 086552061..59e40d1d6 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@

NuttX RTOS

-

Last Updated: March 22, 2009

+

Last Updated: March 25, 2009

@@ -1362,6 +1362,8 @@ nuttx-0.4.4 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * Z80: Patch incorported: "[2696648] Z80: interrupt flag stored in parity bit" (submitted by JPelletier). The is the same fix that was needed for the eZ80 and fixed in 0.4.2. + * netutils: Added logic to support a simple wget() function + * examples/wget: Added a test for wget() pascal-0.1.3 2009-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> diff --git a/nuttx/include/net/uip/webclient.h b/nuttx/include/net/uip/webclient.h index 554ec3adf..a20b5eac1 100644 --- a/nuttx/include/net/uip/webclient.h +++ b/nuttx/include/net/uip/webclient.h @@ -46,7 +46,9 @@ * Included Files ****************************************************************************/ -#include +#ifndef CONFIG_NETUTILS_WEBCLIENT_HOST +# include +#endif #include /**************************************************************************** diff --git a/nuttx/netutils/dhcpd/dhcpd.c b/nuttx/netutils/dhcpd/dhcpd.c index 53e7462b2..be7a5c3af 100644 --- a/nuttx/netutils/dhcpd/dhcpd.c +++ b/nuttx/netutils/dhcpd/dhcpd.c @@ -43,11 +43,16 @@ typedef unsigned char uint8; typedef unsigned short uint16; typedef unsigned int uint32; typedef unsigned char boolean; + # define HTONS(a) htons(a) # define HTONL(a) htonl(a) + # define CONFIG_CPP_HAVE_WARNING 1 +# define FAR + # define ndbg(...) printf(__VA_ARGS__) # define nvdbg(...) printf(__VA_ARGS__) + # define TRUE (1) # define FALSE (0) # define ERROR (-1) diff --git a/nuttx/netutils/webclient/webclient.c b/nuttx/netutils/webclient/webclient.c index d00fd29b7..62c450048 100644 --- a/nuttx/netutils/webclient/webclient.c +++ b/nuttx/netutils/webclient/webclient.c @@ -48,21 +48,25 @@ * Included Files ****************************************************************************/ -#include -#include +#ifndef CONFIG_NETUTILS_WEBCLIENT_HOST + +# include +# include +# include + +# include +# include +# include + +#endif #include #include #include #include #include -#include #include - -#include -#include -#include #include /**************************************************************************** @@ -236,7 +240,6 @@ static inline int wget_parseheaders(struct wget_s *ws) { int offset; int ndx; - char *dest; offset = ws->offset; ndx = ws->ndx; @@ -269,7 +272,8 @@ static inline int wget_parseheaders(struct wget_s *ws) if (strncasecmp(ws->line, g_httpcontenttype, strlen(g_httpcontenttype)) == 0) { /* Found Content-type field. */ - dest = strchr(ws->line, ';'); + + char *dest = strchr(ws->line, ';'); if (dest != NULL) { *dest = 0; @@ -283,7 +287,7 @@ static inline int wget_parseheaders(struct wget_s *ws) #ifdef CONFIG_WEBCLIENT_GETHOST if (strncasecmp(ws->line, g_httplocation, strlen(g_httplocation)) == 0) { - dest = ws->line + strlen(g_httplocation) - 1; + char *dest = ws->line + strlen(g_httplocation) - 1; if (strncmp(dest, g_httphttp, strlen(g_httphttp)) == 0) { @@ -332,7 +336,9 @@ static inline int wget_parseheaders(struct wget_s *ws) int wget(FAR const char *host, uint16 port, FAR const char *file, FAR char *buffer, int buflen, wget_callback_t callback) { +#ifndef CONFIG_NETUTILS_WEBCLIENT_HOST static uip_ipaddr_t addr; +#endif struct sockaddr_in server; struct wget_s ws; char *dest; @@ -342,6 +348,7 @@ int wget(FAR const char *host, uint16 port, FAR const char *file, /* First check if the host is an IP address. */ +#ifndef CONFIG_NETUTILS_WEBCLIENT_HOST if (!uiplib_ipaddrconv(host, (unsigned char *)addr)) { /* 'host' does not point to a avalid address string. Try to resolve @@ -357,6 +364,7 @@ int wget(FAR const char *host, uint16 port, FAR const char *file, addr = server.sin_addr.s_addr; } +#endif /* Create a socket */ @@ -454,7 +462,6 @@ int wget(FAR const char *host, uint16 port, FAR const char *file, } } -okout: close(sockfd); return OK; -- cgit v1.2.3