Annotation of parser3/src/lib/smtp/smtp.h, revision 1.2

1.1       paf         1: /** @file
                      2:        Parser: SMTP sender decl.
                      3: 
1.2     ! paf         4:        Copyright (c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com)
1.1       paf         5:        Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
                      6: */
                      7: 
1.2     ! paf         8: static const char * const IDENT_SMTP_H="$Date: 2003/11/21 12:35:50 $";
1.1       paf         9: 
                     10: 
                     11: #include "pa_string.h"
                     12: 
                     13: #include <winsock.h>
                     14: 
                     15: //////////////////////////////////////////////////////////////////////////////
                     16: 
                     17: #define SOCKET_BUFFER_SIZE     512
                     18: 
                     19: #define ERR_SENDING_DATA               4002
                     20: #define ERR_NOT_A_SOCKET               4010
                     21: #define ERR_CLOSING                    4012
                     22: #define WAIT_A_BIT                     4013
                     23: 
                     24: #define MAXOUTLINE 255
                     25: 
                     26: //////////////////////////////////////////////////////////////////////////////
                     27: 
                     28: /// SIMPLE MAIL TRANSPORT PROTOCOL Win32 realization
                     29: class SMTP: public PA_Object {
                     30:     char            *in_buffer;
                     31:     char            *out_buffer;
                     32:     unsigned int       in_index;
                     33:     unsigned int       out_index;
                     34:     unsigned int       in_buffer_total;
                     35:     unsigned int       out_buffer_total;
                     36:     unsigned int       last_winsock_error;
                     37:     fd_set             fds;
                     38:     struct timeval     timeout;
                     39: 
                     40:     SOCKET     the_socket;
                     41: 
                     42:        char    my_hostname[1024];
                     43: 
                     44:     CHAR    ServerProtocol[100];
                     45:     CHAR    RemoteAddress[100];
                     46:     CHAR    RemoteHost[100];
                     47:     CHAR    RemoteUser[100];
                     48:     CHAR    HttpAccept[100];
                     49:     CHAR    HttpUserAgent[256];
                     50: 
                     51:     CHAR    FirstName[100];
                     52:     CHAR    LastName[100];
                     53:     CHAR    WebUse[100];
                     54:     CHAR    EMail[100];
                     55:     CHAR    HomePage[100];
                     56:     CHAR    text[500];
                     57: 
                     58: public:
                     59:        SMTP();
                     60:        override ~SMTP();
                     61: 
                     62:     // smtp.C
                     63:        void    Send(const char* , const char* , const char* ,  char *, char *);
                     64:        BOOL    MakeSmtpHeader(char *, char *, char *, char *);
                     65:        void    prepare_message(char *, char *,  const char* , const char* );
                     66:        void    open_socket(const char* , const char* );
                     67:        int             get_line(void);
                     68:        void    SendSmtpError(const char* );
                     69:        void    transform_and_send_edit_data(const char* );
                     70:        void    send_data(const char* );
                     71:        void    ConnectToHost(const char* , const char* );
                     72:        int             GetBuffer(int);
                     73:        int             GetChar(int, char *);
                     74:        void    SendLine(const char* , unsigned long);
                     75:        void    SendBuffer(const char* , unsigned long);
                     76:        void    FlushBuffer();
                     77:        BOOL    CloseConnect();
                     78: 
                     79:     // comms.C
                     80:     int      IsAddressARawIpaddress(const char* );
                     81:     int      ResolveService(const char* , u_short *);
                     82:     int      ResolveHostname(const char* , struct sockaddr_in *);
                     83:     int      GetAndSetTheSocket(SOCKET *);
                     84:     int      GetConnection(SOCKET, struct sockaddr_in *);
                     85:     void     MiscSocketSetup(SOCKET, fd_set *, struct timeval *);
                     86: };

E-mail: