diff options
Diffstat (limited to 'cpukit/ftpd/ftpd.h')
-rw-r--r-- | cpukit/ftpd/ftpd.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/cpukit/ftpd/ftpd.h b/cpukit/ftpd/ftpd.h new file mode 100644 index 0000000000..26b39f2d89 --- /dev/null +++ b/cpukit/ftpd/ftpd.h @@ -0,0 +1,65 @@ +/* + * FTP Server Information + * + * $Id$ + */ + +#ifndef _RTEMS_FTPD_H +#define _RTEMS_FTPD_H + +#include <rtems/rtems/tasks.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define FTPD_CONTROL_PORT 21 + +/* FTPD access control flags */ +enum +{ + FTPD_NO_WRITE = 0x1, + FTPD_NO_READ = 0x2, + FTPD_NO_RW = FTPD_NO_WRITE | FTPD_NO_READ +}; + +typedef int (*rtems_ftpd_hookfunction)(char *, size_t); + +struct rtems_ftpd_hook +{ + char *filename; + rtems_ftpd_hookfunction hook_function; +}; + +struct rtems_ftpd_configuration +{ + rtems_task_priority priority; /* FTPD task priority */ + unsigned long max_hook_filesize; /* Maximum buffersize */ + /* for hooks */ + int port; /* Well-known port */ + struct rtems_ftpd_hook *hooks; /* List of hooks */ + char const *root; /* Root for FTPD or 0 for / */ + int tasks_count; /* Max. connections */ + int idle; /* Idle timeout in seoconds + or 0 for no (inf) timeout */ + int access; /* 0 - r/w, 1 - read-only, + 2 - write-only, + 3 - browse-only */ +}; + +/* + * Reply codes. + */ +#define PRELIM 1 /* positive preliminary */ +#define COMPLETE 2 /* positive completion */ +#define CONTINUE 3 /* positive intermediate */ +#define TRANSIENT 4 /* transient negative completion */ +#define ERROR 5 /* permanent negative completion */ + +int rtems_initialize_ftpd(void); + +#ifdef __cplusplus +} +#endif + +#endif /* _RTEMS_FTPD_H */ |