From d6e0fecec1f8b8bfa14784fa2a33f5f4da66148e Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 5 Jun 2011 16:13:50 +0000 Subject: Fix a bug in recvfrom() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3670 42af7a65-404d-4744-a932-0658087f49c3 --- apps/netutils/ftpc/ftpc_getfile.c | 44 -------------------------------------- apps/netutils/ftpc/ftpc_putfile.c | 42 +----------------------------------- apps/netutils/ftpc/ftpc_socket.c | 2 +- apps/netutils/ftpc/ftpc_transfer.c | 35 ++---------------------------- 4 files changed, 4 insertions(+), 119 deletions(-) (limited to 'apps/netutils') diff --git a/apps/netutils/ftpc/ftpc_getfile.c b/apps/netutils/ftpc/ftpc_getfile.c index 8a60c514b..366351636 100644 --- a/apps/netutils/ftpc/ftpc_getfile.c +++ b/apps/netutils/ftpc/ftpc_getfile.c @@ -166,31 +166,6 @@ static int ftpc_recvinit(struct ftpc_session_s *session, FAR const char *path, return ret; } -/**************************************************************************** - * Name: ftpc_waitinput - * - * Description: - * Wait to receive data. - * - ****************************************************************************/ - -static int ftpc_waitinput(FAR struct ftpc_session_s *session) -{ - int ret; - do { - ret = ftpc_waitdata(session, session->data.instream, true); - if (ret == -1) { - if (errno == EINTR) - { - FTPC_SET_INTERRUPT(session); - } - return ERROR; - } - } while(ret == 0); - - return OK; -} - /**************************************************************************** * Name: ftpc_recvbinary * @@ -219,16 +194,6 @@ static int ftpc_recvbinary(FAR struct ftpc_session_s *session, for (;;) { - /* Wait for input on the socket */ - - ret = ftpc_waitinput(session); - if (ret != OK) - { - nvdbg("ftpc_waitinput() failed\n"); - err = EIO; - goto errout_with_buf; - } - /* Read the data from the socket */ nread = fread(buf, sizeof(char), CONFIG_FTP_BUFSIZE, rinstream); @@ -451,15 +416,6 @@ int ftpc_recvtext(FAR struct ftpc_session_s *session, while ((ch = fgetc(rinstream)) != EOF) { - /* Wait for input on the socket */ - - ret = ftpc_waitinput(session); - if (ret != OK) - { - nvdbg("ftpc_waitinput() failed\n"); - break; - } - /* Is it a carriage return? Compress \r\n to \n */ if (ch == '\r') diff --git a/apps/netutils/ftpc/ftpc_putfile.c b/apps/netutils/ftpc/ftpc_putfile.c index e008da3b1..bc20853d7 100644 --- a/apps/netutils/ftpc/ftpc_putfile.c +++ b/apps/netutils/ftpc/ftpc_putfile.c @@ -71,30 +71,6 @@ * Private Functions ****************************************************************************/ -/**************************************************************************** - * Name: ftpc_waitoutput - * - * Description: - * Wait to send data. - * - ****************************************************************************/ - -static int ftpc_waitoutput(FAR struct ftpc_session_s *session) -{ - int ret; - - do - { - ret = ftpc_waitdata(session, session->data.outstream, false); - if (ret < 0) - { - return ERROR; - } - } - while(ret == 0); - return OK; -} - /**************************************************************************** * Name: ftpc_sendbinary * @@ -129,15 +105,6 @@ static int ftpc_sendbinary(FAR struct ftpc_session_s *session, break; } - /* Wait to make sure that we send the data without blocking */ - - ret = ftpc_waitoutput(session); - if (ret != OK) - { - ret = ERROR; - break; - } - /* Send the data */ nwritten = fwrite(buf, sizeof(char), nread, routstream); @@ -174,15 +141,8 @@ static int ftpc_sendtext(FAR struct ftpc_session_s *session, /* Write characters one at a time. */ - while((c = fgetc(linstream)) != EOF) + while ((c = fgetc(linstream)) != EOF) { - /* Make sure that we can send the character without blocking */ - - if (ftpc_waitoutput(session) != 0) - { - break; - } - /* If it is a newline, send a carriage return too */ if (c == '\n') diff --git a/apps/netutils/ftpc/ftpc_socket.c b/apps/netutils/ftpc/ftpc_socket.c index d245c812d..4ec022bd0 100644 --- a/apps/netutils/ftpc/ftpc_socket.c +++ b/apps/netutils/ftpc/ftpc_socket.c @@ -185,8 +185,8 @@ int ftpc_sockconnect(struct ftpc_socket_s *sock, struct sockaddr_in *addr) ndbg("ftpc_sockgetsockname() failed: %d\n", errno); return ERROR; } - sock->connected = true; + sock->connected = true; return OK; } diff --git a/apps/netutils/ftpc/ftpc_transfer.c b/apps/netutils/ftpc/ftpc_transfer.c index 4dfa6d47b..f808e67fb 100644 --- a/apps/netutils/ftpc/ftpc_transfer.c +++ b/apps/netutils/ftpc/ftpc_transfer.c @@ -43,7 +43,6 @@ #include #include #include -#include #include #include #include @@ -289,8 +288,8 @@ int ftpc_xfrinit(FAR struct ftpc_session_s *session) /* Configure the data socket */ ftpc_sockgetsockname(&session->cmd, &addr); - memcpy(&addr.sin_addr, addrport, (size_t)4); - memcpy(&addr.sin_port, addrport+4, (size_t)2); + memcpy(&addr.sin_addr, addrport, 4); + memcpy(&addr.sin_port, addrport+4, 2); /* Connect the data socket */ @@ -461,36 +460,6 @@ int ftpc_xfrabort(FAR struct ftpc_session_s *session, FAR FILE *stream) return ERROR; } -/**************************************************************************** - * Name: ftpc_waitdata - * - * Description: - * Wait for dta to be available on the provided stream. - * - ****************************************************************************/ - -int ftpc_waitdata(FAR struct ftpc_session_s *session, FAR FILE *stream, bool rdwait) -{ - FAR struct pollfd fds; - int ret; - - /* Check the stream to see if it has input OR is ready for output */ - - fds.fd = fileno(stream); - fds.events = rdwait ? POLLIN : POLLOUT; - ret = poll(&fds, 1, 10*1000); - if (ret < 0) - { - if (errno == EINTR) - { - return OK; - } - return ERROR; - } - - return ret; -} - /**************************************************************************** * Name: ftpc_timeout * -- cgit v1.2.3