/* ftpd.h */
#ifndef __FTPD_H
#define __FTPD_H
#define POS 1
#define DATA 2
#define USER_NAME 3
#define LOGGED_IN 4
#define CWD 5
#define LEN 6
#define PARENT_FD 7
#define DATA_FD 8
#define DATA_ADDR 9
#define LAST_DATA 10
#define DATA_PORT 11
#define FILE 12
#define TYPE 13
#define DOWNLOAD 14
#define PATH 15
#define APPEND 16
#define CONNECTED 17
#define USER_SITE 18
#define STRING 19
#define BINARY 20
#define FROMNAME 21
#define IDLE_SETTING 22
#define FTP_TIME (sprintf("[%s] ", ctime(time())[4..15]))
#define UNAME socket_info[ fd ][ USER_NAME ]
#define UCWD socket_info[ fd ][ CWD ]
#define UTYPE socket_info[ fd ][ TYPE ]
#define USITE socket_info[ fd ][ USER_SITE ]
#define UPATH socket_info[ fd ][ PATH ]
#define UDATA socket_info[ fd ][ DATA ]
#define MAX_UNIQUE_TRIES 10
#define MONTHS ({ "Jan", "Feb", "Mar", "Apr", "May", "Jun", \
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" })
#define SECS_IN_YEAR (365 * 24 * 60 * 60)
#define PERMISSION_DENIED550(S) socket_write( fd, sprintf( \
"550 Permission denied to %s.\n", S) )
#define PERMISSION_DENIED553(S) socket_write( fd, sprintf( \
"553 Permission denied to %s.\n", S) )
/*
* these flags determine read level access
*/
#define VALID_READ 0 // rely on valid_read()
#define RESTRICTED_READ 1 // ditto, but limited to public dirs
#define WRITE_LIMIT_READ 2 // access limited by write access
/*
* these flags determine write level access
*/
#define VALID_WRITE 0 // rely on valid_write()
#define RESTRICTED_WRITE 1 // ditto, but limited to public dirs
#define READ_ONLY 2 // no write access, at all
#endif /* __FTPD_H */