#ifndef __POP3_H #define __POP3_H #define PORT_POP3 4110 #define POP3_VERSION "0.1" #define POP_AUTH_USER 0 #define POP_AUTH_PASS 1 #define POP_TRANSACTION 2 #define POP_UPDATE 3 #define LOGIN_OB "/secure/login" #define FOLDER_H "/handlers/folder_handler" #define DEBUG #ifdef DEBUG #define TP(_x) tell_object(find_player("turrican"), (_x)) #else #define TP(_x) #endif #define CHECK_STATE(_state) if ((_state) != sess->state) \ { \ eventWrite(fd, sprintf("-ERR Unknown command in %s state\r\n", \ pop_states[sess->state])); \ break; \ } #define CHECK_CMD(_num, _str) if (sizeof(bits) < (_num)+1) \ { \ eventWrite(fd, _str); \ break; \ } class pop_session { int fd; /* socket descriptor */ int state; /* state of the connection */ int time; /* time of last command */ string command; /* current POP3 command */ string user_name; /* user name */ int *deleted; /* list of deleted messages */ int num_messages; /* amount of messages in the folder */ class mail_header *headers; /* headers of messages in the folder */ string *messages; /* parsed messages */ int *sizes; /* sizes of parsed messages */ int last; /* number of last accessed message */ } #endif /* __POP3_H */