RTEMS CPU Kit with SuperCore  4.11.3
Data Structures | Macros | Typedefs | Enumerations | Functions
ftpfs.c File Reference

File Transfer Protocol file system (FTP client). More...

#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <malloc.h>
#include <netdb.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/select.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <rtems.h>
#include <rtems/ftpfs.h>
#include <rtems/libio_.h>
#include <rtems/rtems_bsdnet.h>
#include <rtems/seterr.h>
Include dependency graph for ftpfs.c:

Data Structures

struct  rtems_ftpfs_entry
 Connection entry for each open file stream. More...
 
struct  rtems_ftpfs_mount_entry
 Mount entry for each file system instance. More...
 
struct  rtems_ftpfs_pasv_entry
 
struct  rtems_ftpfs_size_entry
 

Macros

#define DEBUG_PRINTF(...)
 
#define RTEMS_FTPFS_REPLY_SIZE   3
 

Typedefs

typedef void(* rtems_ftpfs_reply_parser) (const char *, size_t, void *)
 

Enumerations

enum  rtems_ftpfs_reply_state {
  RTEMS_FTPFS_REPLY_START, RTEMS_FTPFS_REPLY_SINGLE_LINE, RTEMS_FTPFS_REPLY_DONE, RTEMS_FTPFS_REPLY_MULTI_LINE,
  RTEMS_FTPFS_REPLY_MULTI_LINE_START
}
 
enum  rtems_ftpfs_reply {
  RTEMS_FTPFS_REPLY_ERROR = 0, RTEMS_FTPFS_REPLY_1 = '1', RTEMS_FTPFS_REPLY_2 = '2', RTEMS_FTPFS_REPLY_3 = '3',
  RTEMS_FTPFS_REPLY_4 = '4', RTEMS_FTPFS_REPLY_5 = '5'
}
 
enum  split_state {
  STATE_USER_NAME, STATE_START_PASSWORD, STATE_START_HOST_NAME, STATE_START_HOST_NAME_OR_PATH,
  STATE_START_PATH, STATE_PASSWORD, STATE_HOST_NAME, STATE_DONE,
  STATE_INVALID
}
 
enum  rtems_ftpfs_pasv_state { RTEMS_FTPFS_PASV_START = 0, RTEMS_FTPFS_PASV_JUNK, RTEMS_FTPFS_PASV_DATA, RTEMS_FTPFS_PASV_DONE }
 
enum  rtems_ftpfs_size_state { RTEMS_FTPFS_SIZE_START = 0, RTEMS_FTPFS_SIZE_SPACE, RTEMS_FTPFS_SIZE_NUMBER, RTEMS_FTPFS_SIZE_NL }
 

Functions

rtems_status_code rtems_ftpfs_get_verbose (const char *mount_point, bool *verbose)
 Returns in verbose if the verbose mode is enabled or disabled for the file system at mount_point. More...
 
rtems_status_code rtems_ftpfs_set_verbose (const char *mount_point, bool verbose)
 Enables or disables the verbose mode if verbose is true or false respectively for the file system at mount_point. More...
 
rtems_status_code rtems_ftpfs_get_timeout (const char *mount_point, struct timeval *timeout)
 Returns the current timeout value in timeout for the file system at mount_point. More...
 
rtems_status_code rtems_ftpfs_set_timeout (const char *mount_point, const struct timeval *timeout)
 Sets the timeout value to timeout for the file system at mount_point. More...
 
int rtems_ftpfs_initialize (rtems_filesystem_mount_table_entry_t *e, const void *d)
 Do not call directly, use mount().
 

Detailed Description

File Transfer Protocol file system (FTP client).