FTP client debug changes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3660 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
d02a36dfd9
commit
7232a7819b
@ -102,24 +102,24 @@ extern void ftpc_freefullpath(char *relpath);
|
|||||||
|
|
||||||
/* FTP command handlers */
|
/* FTP command handlers */
|
||||||
|
|
||||||
extern int cmd_login(SESSION handle, int argc, char **argv);
|
extern int cmd_rlogin(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_quit(SESSION handle, int argc, char **argv);
|
extern int cmd_rquit(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_chdir(SESSION handle, int argc, char **argv);
|
extern int cmd_rchdir(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_rpwd(SESSION handle, int argc, char **argv);
|
extern int cmd_rpwd(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_cdup(SESSION handle, int argc, char **argv);
|
extern int cmd_rcdup(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_mkdir(SESSION handle, int argc, char **argv);
|
extern int cmd_rmkdir(SESSION handle, int argc, char **argv);
|
||||||
|
|
||||||
extern int cmd_rmdir(SESSION handle, int argc, char **argv);
|
extern int cmd_rrmdir(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_unlink(SESSION handle, int argc, char **argv);
|
extern int cmd_runlink(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_chmod(SESSION handle, int argc, char **argv);
|
extern int cmd_rchmod(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_rename(SESSION handle, int argc, char **argv);
|
extern int cmd_rrename(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_size(SESSION handle, int argc, char **argv);
|
extern int cmd_rsize(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_time(SESSION handle, int argc, char **argv);
|
extern int cmd_rtime(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_idle(SESSION handle, int argc, char **argv);
|
extern int cmd_ridle(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_noop(SESSION handle, int argc, char **argv);
|
extern int cmd_rnoop(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_rhelp(SESSION handle, int argc, char **argv);
|
extern int cmd_rhelp(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_rls(SESSION handle, int argc, char **argv);
|
extern int cmd_rls(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_get(SESSION handle, int argc, char **argv);
|
extern int cmd_rget(SESSION handle, int argc, char **argv);
|
||||||
extern int cmd_put(SESSION handle, int argc, char **argv);
|
extern int cmd_rput(SESSION handle, int argc, char **argv);
|
||||||
|
|
||||||
#endif /* __APPS_EXAMPLES_FTPC_FTPC_H */
|
#endif /* __APPS_EXAMPLES_FTPC_FTPC_H */
|
||||||
|
@ -61,10 +61,10 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_login
|
* Name: cmd_rlogin
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_login(SESSION handle, int argc, char **argv)
|
int cmd_rlogin(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
struct ftpc_login_s login = {0, 0, 0, true};
|
struct ftpc_login_s login = {0, 0, 0, true};
|
||||||
|
|
||||||
@ -78,10 +78,10 @@ int cmd_login(SESSION handle, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_quit
|
* Name: cmd_rquit
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_quit(SESSION handle, int argc, char **argv)
|
int cmd_rquit(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
int ret = ftpc_quit(handle);
|
int ret = ftpc_quit(handle);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
@ -94,10 +94,10 @@ int cmd_quit(SESSION handle, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_chdir
|
* Name: cmd_rchdir
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_chdir(SESSION handle, int argc, char **argv)
|
int cmd_rchdir(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
return ftpc_chdir(handle, argv[1]);
|
return ftpc_chdir(handle, argv[1]);
|
||||||
}
|
}
|
||||||
@ -119,64 +119,64 @@ int cmd_rpwd(SESSION handle, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_cdup
|
* Name: cmd_rcdup
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_cdup(SESSION handle, int argc, char **argv)
|
int cmd_rcdup(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
return ftpc_cdup(handle);
|
return ftpc_cdup(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_mkdir
|
* Name: cmd_rmkdir
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_mkdir(SESSION handle, int argc, char **argv)
|
int cmd_rmkdir(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
return ftpc_mkdir(handle, argv[1]);
|
return ftpc_mkdir(handle, argv[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_rmdir
|
* Name: cmd_rrmdir
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_rmdir(SESSION handle, int argc, char **argv)
|
int cmd_rrmdir(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
return ftpc_rmdir(handle, argv[1]);
|
return ftpc_rmdir(handle, argv[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_unlink
|
* Name: cmd_runlink
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_unlink(SESSION handle, int argc, char **argv)
|
int cmd_runlink(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
return ftpc_unlink(handle, argv[1]);
|
return ftpc_unlink(handle, argv[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_chmod
|
* Name: cmd_rchmod
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_chmod(SESSION handle, int argc, char **argv)
|
int cmd_rchmod(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
return ftpc_chmod(handle, argv[1], argv[2]);
|
return ftpc_chmod(handle, argv[1], argv[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_rename
|
* Name: cmd_rrename
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_rename(SESSION handle, int argc, char **argv)
|
int cmd_rrename(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
return ftpc_rename(handle, argv[1], argv[2]);
|
return ftpc_rename(handle, argv[1], argv[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_size
|
* Name: cmd_rsize
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_size(SESSION handle, int argc, char **argv)
|
int cmd_rsize(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint64_t size = ftpc_filesize(handle, argv[1]);
|
uint64_t size = ftpc_filesize(handle, argv[1]);
|
||||||
printf("SIZE: %ull\n", size);
|
printf("SIZE: %ull\n", size);
|
||||||
@ -184,10 +184,10 @@ int cmd_size(SESSION handle, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_time
|
* Name: cmd_rtime
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_time(SESSION handle, int argc, char **argv)
|
int cmd_rtime(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
time_t filetime = ftpc_filetime(handle, argv[1]);
|
time_t filetime = ftpc_filetime(handle, argv[1]);
|
||||||
printf("TIME: %ul\n", (long)filetime);
|
printf("TIME: %ul\n", (long)filetime);
|
||||||
@ -195,10 +195,10 @@ int cmd_time(SESSION handle, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_idle
|
* Name: cmd_ridle
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_idle(SESSION handle, int argc, char **argv)
|
int cmd_ridle(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
unsigned int idletime = 0;
|
unsigned int idletime = 0;
|
||||||
|
|
||||||
@ -211,10 +211,10 @@ int cmd_idle(SESSION handle, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_noop
|
* Name: cmd_rnoop
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_noop(SESSION handle, int argc, char **argv)
|
int cmd_rnoop(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
return ftpc_noop(handle);
|
return ftpc_noop(handle);
|
||||||
}
|
}
|
||||||
@ -270,10 +270,10 @@ int cmd_rls(SESSION handle, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_get
|
* Name: cmd_rget
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_get(SESSION handle, int argc, char **argv)
|
int cmd_rget(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
FAR const char *lname = argv[1];
|
FAR const char *lname = argv[1];
|
||||||
|
|
||||||
@ -285,10 +285,10 @@ int cmd_get(SESSION handle, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_put
|
* Name: cmd_rput
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int cmd_put(SESSION handle, int argc, char **argv)
|
int cmd_rput(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
FAR const char *rname = argv[1];
|
FAR const char *rname = argv[1];
|
||||||
|
|
||||||
|
@ -71,30 +71,30 @@ struct cmdmap_s
|
|||||||
|
|
||||||
static const char g_delim[] = " \t\n";
|
static const char g_delim[] = " \t\n";
|
||||||
|
|
||||||
static int cmd_help(SESSION handle, int argc, char **argv);
|
static int cmd_lhelp(SESSION handle, int argc, char **argv);
|
||||||
static int cmd_unrecognized(SESSION handle, int argc, char **argv);
|
static int cmd_lunrecognized(SESSION handle, int argc, char **argv);
|
||||||
|
|
||||||
static const struct cmdmap_s g_cmdmap[] =
|
static const struct cmdmap_s g_cmdmap[] =
|
||||||
{
|
{
|
||||||
{ "cd", cmd_chdir, 2, 2, "<directory>" },
|
{ "cd", cmd_rchdir, 2, 2, "<directory>" },
|
||||||
{ "chmod", cmd_chmod, 3, 3, "<permissions> <path>" },
|
{ "chmod", cmd_rchmod, 3, 3, "<permissions> <path>" },
|
||||||
{ "get", cmd_unlink, 2, 3, "<rname> [<lname>]" },
|
{ "get", cmd_rget, 2, 3, "<rname> [<lname>]" },
|
||||||
{ "help", cmd_help, 1, 2, "" },
|
{ "help", cmd_lhelp, 1, 2, "" },
|
||||||
{ "idle", cmd_idle, 1, 2, "[<idletime>]" },
|
{ "idle", cmd_ridle, 1, 2, "[<idletime>]" },
|
||||||
{ "login", cmd_login, 2, 3, "<uname> [<password>]" },
|
{ "login", cmd_rlogin, 2, 3, "<uname> [<password>]" },
|
||||||
{ "ls", cmd_login, 1, 2, "[<dirpath>]" },
|
{ "ls", cmd_rls, 1, 2, "[<dirpath>]" },
|
||||||
{ "quit", cmd_login, 1, 1, "" },
|
{ "quit", cmd_rquit, 1, 1, "" },
|
||||||
{ "mkdir", cmd_mkdir, 2, 2, "<directory>" },
|
{ "mkdir", cmd_rmkdir, 2, 2, "<directory>" },
|
||||||
{ "noop", cmd_noop, 1, 1, "" },
|
{ "noop", cmd_rnoop, 1, 1, "" },
|
||||||
{ "put", cmd_unlink, 2, 3, "<lname> [<rname>]" },
|
{ "put", cmd_rput, 2, 3, "<lname> [<rname>]" },
|
||||||
{ "pwd", cmd_rpwd, 1, 1, "" },
|
{ "pwd", cmd_rpwd, 1, 1, "" },
|
||||||
{ "rename", cmd_rename, 3, 3, "<oldname> <newname>" },
|
{ "rename", cmd_rrename, 3, 3, "<oldname> <newname>" },
|
||||||
{ "rhelp", cmd_rhelp, 1, 2, "[<command>]" },
|
{ "rhelp", cmd_rhelp, 1, 2, "[<command>]" },
|
||||||
{ "rm", cmd_unlink, 2, 2, "" },
|
{ "rm", cmd_runlink, 2, 2, "" },
|
||||||
{ "rmdir", cmd_rmdir, 2, 2, "<directory>" },
|
{ "rmdir", cmd_rrmdir, 2, 2, "<directory>" },
|
||||||
{ "size", cmd_size, 2, 2, "<filepath>" },
|
{ "size", cmd_rsize, 2, 2, "<filepath>" },
|
||||||
{ "time", cmd_time, 2, 2, "<filepath>" },
|
{ "time", cmd_rtime, 2, 2, "<filepath>" },
|
||||||
{ "up", cmd_cdup, 1, 1, "" },
|
{ "up", cmd_rcdup, 1, 1, "" },
|
||||||
};
|
};
|
||||||
|
|
||||||
static char g_line[CONFIG_FTPC_LINELEN];
|
static char g_line[CONFIG_FTPC_LINELEN];
|
||||||
@ -104,10 +104,10 @@ static char g_line[CONFIG_FTPC_LINELEN];
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_help
|
* Name: cmd_lhelp
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int cmd_help(SESSION handle, int argc, char **argv)
|
static int cmd_lhelp(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
const struct cmdmap_s *ptr;
|
const struct cmdmap_s *ptr;
|
||||||
|
|
||||||
@ -127,10 +127,10 @@ static int cmd_help(SESSION handle, int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: cmd_unrecognized
|
* Name: cmd_lunrecognized
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int cmd_unrecognized(SESSION handle, int argc, char **argv)
|
static int cmd_lunrecognized(SESSION handle, int argc, char **argv)
|
||||||
{
|
{
|
||||||
printf("Command %s unrecognized\n", argv[0]);
|
printf("Command %s unrecognized\n", argv[0]);
|
||||||
return ERROR;
|
return ERROR;
|
||||||
@ -226,7 +226,7 @@ static int ftpc_execute(SESSION handle, int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
const struct cmdmap_s *cmdmap;
|
const struct cmdmap_s *cmdmap;
|
||||||
const char *cmd;
|
const char *cmd;
|
||||||
cmd_t handler = cmd_unrecognized;
|
cmd_t handler = cmd_lunrecognized;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* The form of argv is:
|
/* The form of argv is:
|
||||||
|
@ -116,9 +116,10 @@ typedef FAR void *SESSION;
|
|||||||
*
|
*
|
||||||
* addr - The IPv4 address of the FTP server (or the proxy) for the FTP
|
* addr - The IPv4 address of the FTP server (or the proxy) for the FTP
|
||||||
* server.
|
* server.
|
||||||
* port - The port number on the FTP server to connect to. This is usually
|
* port - The port number on the FTP server to connect to (in host byte
|
||||||
* port 21 for FTP. You may set this value to zero to let FTPC
|
* order). This is usually port 21 for FTP. You may set this
|
||||||
* select the default port number for you (CONFIG_FTP_DEFPORT).
|
* value to zero to let FTPC select the default port number for
|
||||||
|
* you (it will use CONFIG_FTP_DEFPORT).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct ftpc_connect_s
|
struct ftpc_connect_s
|
||||||
|
@ -98,9 +98,19 @@ SESSION ftpc_connect(FAR struct ftpc_connect_s *server)
|
|||||||
/* Initialize the session structure */
|
/* Initialize the session structure */
|
||||||
|
|
||||||
session->addr.s_addr = server->addr.s_addr;
|
session->addr.s_addr = server->addr.s_addr;
|
||||||
session->port = server->port ? server->port : CONFIG_FTP_DEFPORT;
|
|
||||||
session->pid = getpid();
|
session->pid = getpid();
|
||||||
|
|
||||||
|
/* Use the default port if the user specified port number zero */
|
||||||
|
|
||||||
|
if (!server->port)
|
||||||
|
{
|
||||||
|
session->port = HTONS(CONFIG_FTP_DEFPORT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
session->port = htons(server->port);
|
||||||
|
}
|
||||||
|
|
||||||
/* Create up a timer to prevent hangs */
|
/* Create up a timer to prevent hangs */
|
||||||
|
|
||||||
session->wdog = wd_create();
|
session->wdog = wd_create();
|
||||||
@ -165,7 +175,7 @@ int ftpc_reconnect(FAR struct ftpc_session_s *session)
|
|||||||
|
|
||||||
#ifdef CONFIG_DEBUG
|
#ifdef CONFIG_DEBUG
|
||||||
tmp = inet_ntoa(session->addr);
|
tmp = inet_ntoa(session->addr);
|
||||||
ndbg("Connecting to server address %s:%d\n", tmp, ntohl(session->port));
|
ndbg("Connecting to server address %s:%d\n", tmp, ntohs(session->port));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
addr.sin_family = AF_INET;
|
addr.sin_family = AF_INET;
|
||||||
@ -211,9 +221,9 @@ int ftpc_reconnect(FAR struct ftpc_session_s *session)
|
|||||||
#ifdef CONFIG_DEBUG
|
#ifdef CONFIG_DEBUG
|
||||||
ndbg("Connected\n");
|
ndbg("Connected\n");
|
||||||
tmp = inet_ntoa(session->cmd.raddr.sin_addr);
|
tmp = inet_ntoa(session->cmd.raddr.sin_addr);
|
||||||
ndbg(" Remote address: %s:%d\n", tmp, ntohl(session->cmd.raddr.sin_port));
|
ndbg(" Remote address: %s:%d\n", tmp, ntohs(session->cmd.raddr.sin_port));
|
||||||
tmp = inet_ntoa(session->cmd.laddr.sin_addr);
|
tmp = inet_ntoa(session->cmd.laddr.sin_addr);
|
||||||
ndbg(" Local address: %s:d\n", tmp, ntohl(session->cmd.laddr.sin_port));
|
ndbg(" Local address: %s:d\n", tmp, ntohs(session->cmd.laddr.sin_port));
|
||||||
#endif
|
#endif
|
||||||
return OK;
|
return OK;
|
||||||
|
|
||||||
|
@ -377,10 +377,10 @@ int ftpc_sockprintf(struct ftpc_socket_s *sock, const char *str, ...)
|
|||||||
int ftpc_sockgetsockname(FAR struct ftpc_socket_s *sock,
|
int ftpc_sockgetsockname(FAR struct ftpc_socket_s *sock,
|
||||||
FAR struct sockaddr_in *addr)
|
FAR struct sockaddr_in *addr)
|
||||||
{
|
{
|
||||||
unsigned int len = sizeof(struct sockaddr_in);
|
socklen_t len = sizeof(struct sockaddr_in);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = getsockname(sock->sd, (struct sockaddr *)addr, &len);
|
ret = getsockname(sock->sd, (FAR struct sockaddr *)addr, &len);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
ndbg("getsockname failed: %d\n", errno);
|
ndbg("getsockname failed: %d\n", errno);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user