diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2013-06-01 01:04:32 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-06-01 01:04:32 +0200 |
commit | 5375bb5b86e266157ceceef08c367da711b8144e (patch) | |
tree | 88bc81cab11d8f0b2b6f9391f803051c081b2ecb /apps/include/ftpc.h | |
parent | 27ee36b2049167a1272122548fe61aa2993d79c1 (diff) | |
download | px4-firmware-5375bb5b86e266157ceceef08c367da711b8144e.tar.gz px4-firmware-5375bb5b86e266157ceceef08c367da711b8144e.tar.bz2 px4-firmware-5375bb5b86e266157ceceef08c367da711b8144e.zip |
Cleanup, WIP, needs a NuttX checkout to Firmware/NuttX now
Diffstat (limited to 'apps/include/ftpc.h')
-rw-r--r-- | apps/include/ftpc.h | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/apps/include/ftpc.h b/apps/include/ftpc.h deleted file mode 100644 index f9a73676a..000000000 --- a/apps/include/ftpc.h +++ /dev/null @@ -1,225 +0,0 @@ -/**************************************************************************** - * apps/include/ftpc.h - * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -#ifndef __APPS_INCLUDE_FTPC_H -#define __APPS_INCLUDE_FTPC_H - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> -#include <stdbool.h> -#include <signal.h> -#include <time.h> - -#include <netinet/in.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ -/* Configuration ************************************************************/ - -#ifndef CONFIG_FTP_DEFTIMEO -# define CONFIG_FTP_DEFTIMEO 30 -#endif - -#ifndef CONFIG_FTP_ANONPWD -# define CONFIG_FTP_ANONPWD "" -#endif - -#ifndef CONFIG_FTP_DEFPORT -# define CONFIG_FTP_DEFPORT 21 -#endif - -#ifndef CONFIG_FTP_MAXREPLY -# define CONFIG_FTP_MAXREPLY 256 -#endif - -#ifndef CONFIG_FTP_TMPDIR -# define CONFIG_FTP_TMPDIR "/tmp" -#endif - -#ifndef CONFIG_FTP_BUFSIZE -# define CONFIG_FTP_BUFSIZE 1024 -#endif - -#ifndef CONFIG_FTP_MAXPATH -# define CONFIG_FTP_MAXPATH 256 -#endif - -#ifndef CONFIG_FTP_SIGNAL -# define CONFIG_FTP_SIGNAL SIGUSR1 -#endif - -/* Interface arguments ******************************************************/ -/* These definitions describe how a put operation should be performed */ - -#define FTPC_PUT_NORMAL 0 /* Just PUT the file on the server */ -#define FTPC_PUT_APPEND 1 /* Append file to an existing file on the server */ -#define FTPC_PUT_UNIQUE 2 /* Create a uniquely named file on the server */ -#define FTPC_PUT_RESUME 3 /* Resume a previously started PUT transfer */ - -/* These definitions describe how a get operation should be performed */ - -#define FTPC_GET_NORMAL 0 /* Just GET the file from the server */ -#define FTPC_GET_APPEND 1 /* Append new file to an existing file */ -#define FTPC_GET_RESUME 3 /* Resume a previously started GET transfer */ - -/* Transfer mode encoding */ - -#define FTPC_XFRMODE_UNKNOWN 0 /* Nothing has been transferred yet */ -#define FTPC_XFRMODE_ASCII 1 /* Last transfer was ASCII mode */ -#define FTPC_XFRMODE_BINARY 2 /* Last transfer was binary mode */ - -/**************************************************************************** - * Public Types - ****************************************************************************/ -/* This "handle" describes the FTP session */ - -typedef FAR void *SESSION; - -/* This structure provides information to connect to a host FTP server. - * - * addr - The IPv4 address of the FTP server (or the proxy) for the FTP - * server. - * port - The port number on the FTP server to connect to (in host byte - * order). This is usually port 21 for FTP. You may set this - * value to zero to let FTPC select the default port number for - * you (it will use CONFIG_FTP_DEFPORT). - */ - -struct ftpc_connect_s -{ - struct in_addr addr; /* Server/proxy IP address */ - uint16_t port; /* Server/proxy port number (usually 21) in network order */ -}; - -/* This structure provides FTP login information */ - -struct ftpc_login_s -{ - FAR const char *uname; /* Login uname */ - FAR const char *pwd; /* Login pwd */ - FAR const char *rdir; /* Initial remote directory */ - bool pasv; /* true: passive connection mode */ -}; - -/* This structure describes one simple directory listing. The directory - * list container as well the individual filename strings are allocated. - * The number of names in tha actual allocated array is variable, given - * by the nnames field. - * - * Since the structure and file names are allocated, they must be freed - * by calling ftpc_dirfree() when they are no longer needed. Allocated - * name strings maby be "stolen" from the array but the pointer int the - * array should be nullified so that the string is not freed by - * ftpc_dirfree(). - */ - -struct ftpc_dirlist_s -{ - unsigned int nnames; /* Number of entries in name[] array */ - FAR char *name[1]; /* Filename with absolute path */ -}; - -#define SIZEOF_FTPC_DIRLIST(n) \ - (sizeof(struct ftpc_dirlist_s) + ((n)-1)*sizeof(FAR char *)) - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -#ifdef __cplusplus -#define EXTERN extern "C" -extern "C" { -#else -#define EXTERN extern -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ -/* Connection management ****************************************************/ - -EXTERN SESSION ftpc_connect(FAR struct ftpc_connect_s *server); -EXTERN void ftpc_disconnect(SESSION handle); - -/* FTP commands *************************************************************/ - -EXTERN int ftpc_login(SESSION handle, FAR struct ftpc_login_s *login); -EXTERN int ftpc_quit(SESSION handle); - -EXTERN int ftpc_chdir(SESSION handle, FAR const char *path); -EXTERN FAR char *ftpc_rpwd(SESSION handle); -EXTERN int ftpc_cdup(SESSION handle); -EXTERN int ftpc_mkdir(SESSION handle, FAR const char *path); -EXTERN int ftpc_rmdir(SESSION handle, FAR const char *path); - -EXTERN int ftpc_unlink(SESSION handle, FAR const char *path); -EXTERN int ftpc_chmod(SESSION handle, FAR const char *path, FAR const char *mode); -EXTERN int ftpc_rename(SESSION handle, FAR const char *oldname, FAR const char *newname); -EXTERN off_t ftpc_filesize(SESSION handle, FAR const char *path); -EXTERN time_t ftpc_filetime(SESSION handle, FAR const char *filename); - -EXTERN int ftpc_idle(SESSION handle, unsigned int idletime); -EXTERN int ftpc_noop(SESSION handle); -EXTERN int ftpc_help(SESSION handle, FAR const char *arg); - -/* Directory listings *******************************************************/ - -EXTERN FAR struct ftpc_dirlist_s *ftpc_listdir(SESSION handle, - FAR const char *dirpath); -EXTERN void ftpc_dirfree(FAR struct ftpc_dirlist_s *dirlist); - -/* File transfers ***********************************************************/ - -EXTERN int ftpc_getfile(SESSION handle, FAR const char *rname, - FAR const char *lname, uint8_t how, uint8_t xfrmode); -EXTERN int ftp_putfile(SESSION handle, FAR const char *lname, - FAR const char *rname, uint8_t how, uint8_t xfrmode); - -/* FTP response *************************************************************/ - -EXTERN FAR char *ftpc_response(SESSION handle); - -#undef EXTERN -#ifdef __cplusplus -} -#endif - -#endif /* __APPS_INCLUDE_FTPC_H */ |