File nut/pro/ftpd.c


Included Files


Preprocessor definitions

#define FTP_ROOTPATH "PNUT:"

#define FTP_DATA_PORT 20


Local Variables

ftp_root
static char* ftp_root
Used in: NutFtpProcessCwd()  
  NutFtpProcessRequest()  
  NutFtpServerSession()  
  NutRegisterFtpRoot()  

ftp_user
static char* ftp_user

Used in: NutFtpProcessUser()  
  NutRegisterFtpUser()  

ftp_pass
static char* ftp_pass

Used in: NutFtpProcessPass()  
  NutFtpProcessUser()  
  NutRegisterFtpUser()  

cmd_cwd_P
static const char cmd_cwd_P[]

Used in: NutFtpProcessRequest()  

cmd_dele_P
static const char cmd_dele_P[]

Used in: NutFtpProcessRequest()  

cmd_list_P
static const char cmd_list_P[]

Used in: NutFtpProcessRequest()  

cmd_mkd_P
static const char cmd_mkd_P[]

Used in: NutFtpProcessRequest()  

cmd_xmkd_P
static const char cmd_xmkd_P[]

Used in: NutFtpProcessRequest()  

cmd_nlst_P
static const char cmd_nlst_P[]

Used in: NutFtpProcessRequest()  

cmd_noop_P
static const char cmd_noop_P[]

Used in: NutFtpProcessRequest()  

cmd_pass_P
static const char cmd_pass_P[]

Used in: NutFtpProcessRequest()  

cmd_pasv_P
static const char cmd_pasv_P[]

Used in: NutFtpProcessRequest()  

cmd_port_P
static const char cmd_port_P[]

Used in: NutFtpProcessRequest()  

cmd_pwd_P
static const char cmd_pwd_P[]

Used in: NutFtpProcessRequest()  

cmd_xpwd_P
static const char cmd_xpwd_P[]

Used in: NutFtpProcessRequest()  

cmd_quit_P
static const char cmd_quit_P[]

Used in: NutFtpProcessRequest()  

cmd_retr_P
static const char cmd_retr_P[]

Used in: NutFtpProcessRequest()  

cmd_rmd_P
static const char cmd_rmd_P[]

Used in: NutFtpProcessRequest()  

cmd_xrmd_P
static const char cmd_xrmd_P[]

Used in: NutFtpProcessRequest()  

cmd_stor_P
static const char cmd_stor_P[]

Used in: NutFtpProcessRequest()  

cmd_syst_P
static const char cmd_syst_P[]

Used in: NutFtpProcessRequest()  

cmd_type_P
static const char cmd_type_P[]

Used in: NutFtpProcessRequest()  

cmd_user_P
static const char cmd_user_P[]

Used in: NutFtpProcessRequest()  

cmd_rename1_P
static const char cmd_rename1_P[]

Used in: NutFtpProcessRequest()  

cmd_rename2_P
static const char cmd_rename2_P[]

Used in: NutFtpProcessRequest()  

mon_name
static char* mon_name

Used in: NutFtpServerSession()  
  NutFtpTransferDirectoryOptions()  

rep_banner
static const char rep_banner[]

Used in: NutFtpServerSession()  

Global Function CreateFullPathName()

char* CreateFullPathName ( char* root, char* work, char* path )
Calls: malloc() nut/crt/malloc.c
  strcpy() nut/c/string/strcpy.c
  strlen() nut/c/string/strlen.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpCloseSession()

void NutFtpCloseSession ( FTPSESSION* session )
Calls: fclose() nut/crt/fclose.c
  free() nut/crt/malloc.c
Called by: NutFtpServerSession() nut/pro/ftpd.c

Global Function NutFtpDataConnect()

TCPSOCKET* NutFtpDataConnect ( FTPSESSION* session )
Calls: NutTcpAccept() nut/net/tcpsock.c
  NutTcpCloseSocket() nut/net/tcpsock.c
  NutTcpConnect() nut/net/tcpsock.c
  NutTcpCreateSocket() nut/net/tcpsock.c
  NutTcpGetSockOpt() nut/net/tcpsock.c
  NutTcpSetSockOpt() nut/net/tcpsock.c
Called by: NutFtpTransferDirectoryOptions() nut/pro/ftpd.c
  NutFtpTransferFile() nut/pro/ftpd.c

Global Function NutFtpOpenSession()

FTPSESSION* NutFtpOpenSession ( TCPSOCKET* sock )
Calls: _fdopen() nut/crt/fdopen.c
  free() nut/crt/malloc.c
  malloc() nut/crt/malloc.c
  memset() nut/c/string/memset.c
Called by: NutFtpServerSession() nut/pro/ftpd.c

Global Function NutFtpProcessCwd()

int NutFtpProcessCwd ( FTPSESSION* session, char* path )
Calls: NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  free() nut/crt/malloc.c
  stat() nut/fs/pathops.c
  strcmp() nut/c/string/strcmp.c
  strdup() nut/crt/strdup.c
  strlen() nut/c/string/strlen.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c
References Variables: ftp_root nut/pro/ftpd.c

Global Function NutFtpProcessDelete()

int NutFtpProcessDelete ( FTPSESSION* session, char* path )
Calls: NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  unlink() nut/fs/pathops.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpProcessMkd()

int NutFtpProcessMkd ( FTPSESSION* session, char* path )
Calls: NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  mkdir() nut/fs/pathops.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpProcessPass()

int NutFtpProcessPass ( FTPSESSION* session, char* pass )
Calls: NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  strcmp() nut/c/string/strcmp.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c
References Variables: ftp_pass nut/pro/ftpd.c

Global Function NutFtpProcessPassiv()

int NutFtpProcessPassiv ( FTPSESSION* session )
Calls: fflush() nut/crt/fflush.c
  fprintf_P() nut/crt/fprintf_p.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpProcessPort()

int NutFtpProcessPort ( FTPSESSION* session, char* args )
Calls: NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  ParseIpPort() nut/pro/ftpd.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpProcessPwd()

int NutFtpProcessPwd ( FTPSESSION* session )
Calls: fprintf_P() nut/crt/fprintf_p.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpProcessRequest()

int NutFtpProcessRequest ( FTPSESSION* session, char* request )
Calls: CreateFullPathName() nut/pro/ftpd.c
  NutFtpProcessCwd() nut/pro/ftpd.c
  NutFtpProcessDelete() nut/pro/ftpd.c
  NutFtpProcessMkd() nut/pro/ftpd.c
  NutFtpProcessPass() nut/pro/ftpd.c
  NutFtpProcessPassiv() nut/pro/ftpd.c
  NutFtpProcessPort() nut/pro/ftpd.c
  NutFtpProcessPwd() nut/pro/ftpd.c
  NutFtpProcessRmd() nut/pro/ftpd.c
  NutFtpProcessSystem() nut/pro/ftpd.c
  NutFtpProcessType() nut/pro/ftpd.c
  NutFtpProcessUser() nut/pro/ftpd.c
  NutFtpRenameAction() nut/pro/ftpd.c
  NutFtpRenamePrepare() nut/pro/ftpd.c
  NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  NutFtpTransferDirectoryOptions() nut/pro/ftpd.c
  NutFtpTransferFile() nut/pro/ftpd.c
  SplitCmdArg() nut/pro/ftpd.c
  free() nut/crt/malloc.c
  strchr() nut/c/string/strchr.c
  strlen() nut/c/string/strlen.c
  strcmp_P()
Called by: NutFtpServerSession() nut/pro/ftpd.c
References Variables: cmd_cwd_P nut/pro/ftpd.c
  cmd_dele_P nut/pro/ftpd.c
  cmd_list_P nut/pro/ftpd.c
  cmd_mkd_P nut/pro/ftpd.c
  cmd_nlst_P nut/pro/ftpd.c
  cmd_noop_P nut/pro/ftpd.c
  cmd_pass_P nut/pro/ftpd.c
  cmd_pasv_P nut/pro/ftpd.c
  cmd_port_P nut/pro/ftpd.c
  cmd_pwd_P nut/pro/ftpd.c
  cmd_quit_P nut/pro/ftpd.c
  cmd_rename1_P nut/pro/ftpd.c
  cmd_rename2_P nut/pro/ftpd.c
  cmd_retr_P nut/pro/ftpd.c
  cmd_rmd_P nut/pro/ftpd.c
  cmd_stor_P nut/pro/ftpd.c
  cmd_syst_P nut/pro/ftpd.c
  cmd_type_P nut/pro/ftpd.c
  cmd_user_P nut/pro/ftpd.c
  cmd_xmkd_P nut/pro/ftpd.c
  cmd_xpwd_P nut/pro/ftpd.c
  cmd_xrmd_P nut/pro/ftpd.c
  ftp_root nut/pro/ftpd.c

Global Function NutFtpProcessRmd()

int NutFtpProcessRmd ( FTPSESSION* session, char* path )
Calls: NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  rmdir() nut/fs/pathops.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpProcessSystem()

int NutFtpProcessSystem ( FTPSESSION* session )
Calls: fputs_P() nut/crt/fputs_p.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpProcessType()

int NutFtpProcessType ( FTPSESSION* session, char* typecode )
Calls: NutFtpRespondOk() nut/pro/ftpd.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpProcessUser()

int NutFtpProcessUser ( FTPSESSION* session, char* user )
Calls: NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  strcmp() nut/c/string/strcmp.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c
References Variables: ftp_pass nut/pro/ftpd.c
  ftp_user nut/pro/ftpd.c

Global Function NutFtpRenameAction()

int NutFtpRenameAction ( FTPSESSION* session, char* path )
Calls: NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  free() nut/crt/malloc.c
  rename() nut/fs/pathops.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpRenamePrepare()

int NutFtpRenamePrepare ( FTPSESSION* session, char* path )
Calls: NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  free() nut/crt/malloc.c
  stat() nut/fs/pathops.c
  strdup() nut/crt/strdup.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutFtpRespondBad()

int NutFtpRespondBad ( FTPSESSION* session, int code )
Calls: fflush() nut/crt/fflush.c
  fprintf_P() nut/crt/fprintf_p.c
Called by: NutFtpProcessCwd() nut/pro/ftpd.c
  NutFtpProcessDelete() nut/pro/ftpd.c
  NutFtpProcessMkd() nut/pro/ftpd.c
  NutFtpProcessPass() nut/pro/ftpd.c
  NutFtpProcessPort() nut/pro/ftpd.c
  NutFtpProcessRequest() nut/pro/ftpd.c
  NutFtpProcessRmd() nut/pro/ftpd.c
  NutFtpProcessUser() nut/pro/ftpd.c
  NutFtpRenameAction() nut/pro/ftpd.c
  NutFtpRenamePrepare() nut/pro/ftpd.c
  NutFtpServerSession() nut/pro/ftpd.c
  NutFtpTransferDirectoryOptions() nut/pro/ftpd.c
  NutFtpTransferFile() nut/pro/ftpd.c

Global Function NutFtpRespondOk()

int NutFtpRespondOk ( FTPSESSION* session, int code )
Calls: fflush() nut/crt/fflush.c
  fprintf_P() nut/crt/fprintf_p.c
Called by: NutFtpProcessCwd() nut/pro/ftpd.c
  NutFtpProcessDelete() nut/pro/ftpd.c
  NutFtpProcessMkd() nut/pro/ftpd.c
  NutFtpProcessPass() nut/pro/ftpd.c
  NutFtpProcessPort() nut/pro/ftpd.c
  NutFtpProcessRequest() nut/pro/ftpd.c
  NutFtpProcessRmd() nut/pro/ftpd.c
  NutFtpProcessType() nut/pro/ftpd.c
  NutFtpProcessUser() nut/pro/ftpd.c
  NutFtpRenameAction() nut/pro/ftpd.c
  NutFtpRenamePrepare() nut/pro/ftpd.c
  NutFtpTransferDirectoryOptions() nut/pro/ftpd.c
  NutFtpTransferFile() nut/pro/ftpd.c

Global Function NutFtpSendMode()

int NutFtpSendMode ( FTPSESSION* session, int binary )
Calls: fflush() nut/crt/fflush.c
  fputs_P() nut/crt/fputs_p.c
Called by: NutFtpTransferDirectoryOptions() nut/pro/ftpd.c
  NutFtpTransferFile() nut/pro/ftpd.c

Global Function NutFtpServerSession()

int NutFtpServerSession ( TCPSOCKET* sock )
Prototyped in: nut/include/pro/ftpd.h
Calls: NutFtpCloseSession() nut/pro/ftpd.c
  NutFtpOpenSession() nut/pro/ftpd.c
  NutFtpProcessRequest() nut/pro/ftpd.c
  NutFtpRespondBad() nut/pro/ftpd.c
  NutRegisterFtpRoot() nut/pro/ftpd.c
  NutVersionString() nut/os/version.c
  fflush() nut/crt/fflush.c
  fgets() nut/crt/fgets.c
  fprintf_P() nut/crt/fprintf_p.c
  free() nut/crt/malloc.c
  localtime() nut/crt/localtime.c
  malloc() nut/crt/malloc.c
  strlen() nut/c/string/strlen.c
  time() nut/crt/time.c
Called by: FtpService() nut/app/ftpd/ftpserv.c
References Variables: ftp_root nut/pro/ftpd.c
  mon_name nut/pro/ftpd.c
  rep_banner nut/pro/ftpd.c

Global Function NutFtpTransferDirectory()

int NutFtpTransferDirectory ( FTPSESSION* session, char* path )
Calls: NutFtpTransferDirectoryOptions() nut/pro/ftpd.c

Global Function NutFtpTransferDirectoryOptions()

int NutFtpTransferDirectoryOptions ( FTPSESSION* session, char* path, int options )
Calls: NutFtpDataConnect() nut/pro/ftpd.c
  NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  NutFtpSendMode() nut/pro/ftpd.c
  NutTcpCloseSocket() nut/net/tcpsock.c
  _fdopen() nut/crt/fdopen.c
  closedir() nut/fs/dirent.c
  fclose() nut/crt/fclose.c
  fprintf_P() nut/crt/fprintf_p.c
  fputc() nut/crt/fputc.c
  fputs() nut/crt/fputs.c
  free() nut/crt/malloc.c
  gmtime() nut/crt/gmtime.c
  malloc() nut/crt/malloc.c
  opendir() nut/fs/dirent.c
  readdir() nut/fs/dirent.c
  stat() nut/fs/pathops.c
  strcat() nut/c/string/strcat.c
  strcpy() nut/c/string/strcpy.c
  strlen() nut/c/string/strlen.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c
  NutFtpTransferDirectory() nut/pro/ftpd.c
References Variables: mon_name nut/pro/ftpd.c

Global Function NutFtpTransferFile()

int NutFtpTransferFile ( FTPSESSION* session, char* path, int mode )
Calls: NutFtpDataConnect() nut/pro/ftpd.c
  NutFtpRespondBad() nut/pro/ftpd.c
  NutFtpRespondOk() nut/pro/ftpd.c
  NutFtpSendMode() nut/pro/ftpd.c
  NutSleep() nut/os/timer.c
  NutTcpCloseSocket() nut/net/tcpsock.c
  NutTcpReceive() nut/net/tcpsock.c
  NutTcpSend() nut/net/tcpsock.c
  _close() nut/crt/close.c
  _open() nut/crt/open.c
  _read() nut/crt/read.c
  _write() nut/crt/write.c
  free() nut/crt/malloc.c
  malloc() nut/crt/malloc.c
  stat() nut/fs/pathops.c
  unlink() nut/fs/pathops.c
Called by: NutFtpProcessRequest() nut/pro/ftpd.c

Global Function NutRegisterFtpRoot()

int NutRegisterFtpRoot ( const char* path )
Prototyped in: nut/include/pro/ftpd.h
Calls: free() nut/crt/malloc.c
  malloc() nut/crt/malloc.c
  strchr() nut/c/string/strchr.c
  strcpy() nut/c/string/strcpy.c
  strlen() nut/c/string/strlen.c
Called by: NutAppMain() nut/app/ftpd/ftpserv.c
  NutFtpServerSession() nut/pro/ftpd.c
References Variables: ftp_root nut/pro/ftpd.c

Global Function NutRegisterFtpUser()

int NutRegisterFtpUser ( const char* user, const char* pass )
Calls: free() nut/crt/malloc.c
  strdup() nut/crt/strdup.c
References Variables: ftp_pass nut/pro/ftpd.c
  ftp_user nut/pro/ftpd.c

Local Function ParseIpPort()

static int ParseIpPort ( const char* arg, uint32_t* ip, uint16_t* port )
Calls: atoi() nut/c/stdlib/atoi.c
  atol() nut/c/stdlib/atol.c
Called by: NutFtpProcessPort() nut/pro/ftpd.c

Local Function SplitCmdArg()

static void SplitCmdArg ( char* line, char** cmd, char** args )
Called by: NutFtpProcessRequest() nut/pro/ftpd.c