summaryrefslogtreecommitdiff
path: root/apps/netutils/ftpc/ftpc_utils.c
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-06-03 20:27:30 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-06-03 20:27:30 +0000
commit92fd8f5221ca528c2def13897c712d558adf1675 (patch)
tree0c9d63fe3408864b46597a4eb1c20eace2ffc783 /apps/netutils/ftpc/ftpc_utils.c
parent90e92459a9c7a33fb8a005f87ec3f512b760c487 (diff)
downloadnuttx-92fd8f5221ca528c2def13897c712d558adf1675.tar.gz
nuttx-92fd8f5221ca528c2def13897c712d558adf1675.tar.bz2
nuttx-92fd8f5221ca528c2def13897c712d558adf1675.zip
More FTP bugfixes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3665 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/netutils/ftpc/ftpc_utils.c')
-rw-r--r--apps/netutils/ftpc/ftpc_utils.c41
1 files changed, 33 insertions, 8 deletions
diff --git a/apps/netutils/ftpc/ftpc_utils.c b/apps/netutils/ftpc/ftpc_utils.c
index 9692cae4f..eec52ec8f 100644
--- a/apps/netutils/ftpc/ftpc_utils.c
+++ b/apps/netutils/ftpc/ftpc_utils.c
@@ -109,8 +109,8 @@ void ftpc_reset(struct ftpc_session_s *session)
session->uname = NULL;
free(session->pwd);
session->pwd = NULL;
- free(session->initdir);
- session->initdir = NULL;
+ free(session->initrdir);
+ session->initrdir = NULL;
session->flags = FTPC_FLAGS_INIT;
session->xfrmode = FTPC_XFRMODE_UNKNOWN;
session->code = 0;
@@ -119,18 +119,43 @@ void ftpc_reset(struct ftpc_session_s *session)
}
/****************************************************************************
- * Name: ftpc_curdir
+ * Name: ftpc_currdir
*
* Description:
- * Update the current working directory
+ * Update the remote current working directory
*
****************************************************************************/
-void ftpc_curdir(struct ftpc_session_s *session)
+void ftpc_currdir(struct ftpc_session_s *session)
{
- free(session->prevdir);
- session->prevdir = session->curdir;
- session->curdir = ftpc_pwd((SESSION)session);
+ free(session->prevrdir);
+ session->prevrdir = session->currdir;
+ session->currdir = ftpc_rpwd((SESSION)session);
+}
+
+/****************************************************************************
+ * Name: ftpc_lpwd
+ *
+ * Description:
+ * Return the local current working directory. NOTE: This is a peek at
+ * a global copy. The caller should call strdup if it wants to keep it.
+ *
+ ****************************************************************************/
+
+FAR const char *ftpc_lpwd(void)
+{
+#ifndef CONFIG_DISABLE_ENVIRON
+ FAR const char *val;
+
+ val = getenv("PWD");
+ if (!val)
+ {
+ val = CONFIG_FTP_TMPDIR;
+ }
+ return val;
+#else
+ return CONFIG_FTP_TMPDIR;
+#endif
}
/****************************************************************************