diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-06-01 23:09:29 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-06-01 23:09:29 +0000 |
commit | 67861ab4bc9411a36319f48f9aaad1a129fcde9b (patch) | |
tree | 97e2fb1cca991511cd55c2f7899fc6dcd612a2ab /apps/netutils/ftpc/ftpc_putfile.c | |
parent | 17b27f51ace2d8529e6bf5ac5c84d01c08d8dbf5 (diff) | |
download | nuttx-67861ab4bc9411a36319f48f9aaad1a129fcde9b.tar.gz nuttx-67861ab4bc9411a36319f48f9aaad1a129fcde9b.tar.bz2 nuttx-67861ab4bc9411a36319f48f9aaad1a129fcde9b.zip |
Add a simple shell and configuration to verify the FTP client library
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3656 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/netutils/ftpc/ftpc_putfile.c')
-rw-r--r-- | apps/netutils/ftpc/ftpc_putfile.c | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/apps/netutils/ftpc/ftpc_putfile.c b/apps/netutils/ftpc/ftpc_putfile.c index c05112402..6993169d9 100644 --- a/apps/netutils/ftpc/ftpc_putfile.c +++ b/apps/netutils/ftpc/ftpc_putfile.c @@ -111,32 +111,37 @@ static int ftpc_sendbinary(FAR struct ftpc_session_s *session, int ret = OK; buf = (char *)malloc(CONFIG_FTP_BUFSIZE); - while (!feof(linstream)) + for (;;) { nread = fread(buf, sizeof(char), CONFIG_FTP_BUFSIZE, linstream); - if (nread <= 0) - { - (void)ftpc_xfrabort(session, linstream); - ret = ERROR; - break; - } - - if (ftpc_waitoutput(session) != 0) - { - ret = ERROR; - break; - } - - nwritten = fwrite(buf, sizeof(char), nread, routstream); - if (nwritten != nread) - { - (void)ftpc_xfrabort(session, routstream); - ret = ERROR; - break; - } - - session->size += nread; - } + if (nread <= 0) + { + /* nread == 0 is just EOF */ + + if (nread < 0) + { + (void)ftpc_xfrabort(session, linstream); + ret = ERROR; + } + break; + } + + if (ftpc_waitoutput(session) != 0) + { + ret = ERROR; + break; + } + + nwritten = fwrite(buf, sizeof(char), nread, routstream); + if (nwritten != nread) + { + (void)ftpc_xfrabort(session, routstream); + ret = ERROR; + break; + } + + session->size += nread; + } free(buf); return ret; |