diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-02-15 22:41:17 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-02-15 22:41:17 +0000 |
commit | a2e2f34390914acd8524c8014fb4ab8751b99b81 (patch) | |
tree | 6ec82d4de3963893b0c8c7cc9c492cc765a43099 /apps/netutils | |
parent | 46e984d52399ce9430b7f89c5c90859b9e93ac1e (diff) | |
download | px4-firmware-a2e2f34390914acd8524c8014fb4ab8751b99b81.tar.gz px4-firmware-a2e2f34390914acd8524c8014fb4ab8751b99b81.tar.bz2 px4-firmware-a2e2f34390914acd8524c8014fb4ab8751b99b81.zip |
Minor FTPD updates
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4397 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'apps/netutils')
-rwxr-xr-x | apps/netutils/ftpd/ftpd.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/apps/netutils/ftpd/ftpd.c b/apps/netutils/ftpd/ftpd.c index ff27d794a..949f0410e 100755 --- a/apps/netutils/ftpd/ftpd.c +++ b/apps/netutils/ftpd/ftpd.c @@ -1758,6 +1758,9 @@ static int ftpd_stream(FAR struct ftpd_session_s *session, int cmdtype) #if defined(O_BINARY) oflags |= O_BINARY; #endif + + /* Are we creating the file? */ + if ((oflags & O_CREAT) != 0) { int mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH; @@ -1777,6 +1780,8 @@ static int ftpd_stream(FAR struct ftpd_session_s *session, int cmdtype) } else { + /* No.. we are opening an existing file */ + isnew = false; session->fd = open(path, oflags); } @@ -1828,7 +1833,7 @@ static int ftpd_stream(FAR struct ftpd_session_s *session, int cmdtype) { int errval = errno; ndbg("lseek failed: %d\n", errval); - ret = -errno; + ret = -errval; } } @@ -1869,8 +1874,7 @@ static int ftpd_stream(FAR struct ftpd_session_s *session, int cmdtype) if (cmdtype == 0) { - rdbytes = (ssize_t)read(session->fd, session->data.buffer, - wantsize); + rdbytes = read(session->fd, session->data.buffer, wantsize); } else { @@ -1880,7 +1884,7 @@ static int ftpd_stream(FAR struct ftpd_session_s *session, int cmdtype) if (rdbytes < 0) { - ndbg("ftp_recv failed: %d\n", rdbytes); + ndbg("Read failed: rdbytes=%d errno=%d\n", rdbytes, errno); (void)ftpd_response(session->cmd.sd, session->txtimeout, g_respfmt1, 550, ' ', "Data read error !"); ret = rdbytes; @@ -1940,6 +1944,7 @@ static int ftpd_stream(FAR struct ftpd_session_s *session, int cmdtype) if (wrbytes != ((ssize_t)buflen)) { + ndbg("Write failed: wrbytes=%d errno=%d\n", wrbytes, errno); (void)ftpd_response(session->cmd.sd, session->txtimeout, g_respfmt1, 550, ' ', "Data send error !"); break; |