Annotation of parser3/src/classes/smtp/smtp.h, revision 1.2
1.1 paf 1: /** @file
2: Parser: SMTP sender decl.
3:
4: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
5:
6: Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
7:
1.2 ! paf 8: $Id: smtp.h,v 1.1 2001/04/07 13:48:37 paf Exp $
1.1 paf 9: */
10:
11: #include <winsock.h>
12:
13: #include "pa_pool.h"
14: #include "pa_string.h"
15:
16: //////////////////////////////////////////////////////////////////////////////
17:
18: #define SOCKET_BUFFER_SIZE 512
19:
20: #define ERR_SENDING_DATA 4002
21: #define ERR_NOT_A_SOCKET 4010
22: #define ERR_CLOSING 4012
23: #define WAIT_A_BIT 4013
24:
25: #define MAXOUTLINE 255
26:
27: //////////////////////////////////////////////////////////////////////////////
28:
29: class SMTP : public Pooled {
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: const String& origin_string;
59:
60: public:
61: SMTP(Pool& pool, const String& aorigin_string);
62:
63: // smtp.C
1.2 ! paf 64: void Send(const char *, const char *, const char *, char *, char *);
1.1 paf 65: BOOL MakeSmtpHeader(char *, char *, char *, char *);
1.2 ! paf 66: void prepare_message(char *, char *, const char *, const char *);
! 67: void open_socket(const char *, const char *);
1.1 paf 68: int get_line(void);
69: void SendSmtpError(const char *);
70: void transform_and_send_edit_data(const char *);
71: void send_data(const char *);
1.2 ! paf 72: void ConnectToHost(const char *, const char *);
1.1 paf 73: int GetBuffer(int);
74: int GetChar(int, char *);
75: void SendLine(const char *, unsigned long);
76: void SendBuffer(const char *, unsigned long);
77: void FlushBuffer();
78: BOOL CloseConnect();
79:
80: // comms.C
1.2 ! paf 81: int IsAddressARawIpaddress(const char *);
! 82: int ResolveService(const char *, int *);
! 83: int ResolveHostname(const char *, struct sockaddr_in *);
1.1 paf 84: int GetAndSetTheSocket(SOCKET *);
85: int GetConnection(SOCKET, struct sockaddr_in *);
86: void MiscSocketSetup(SOCKET, fd_set *, struct timeval *);
87: };
88:
E-mail: