ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/c++/socket++-1.10/smtp.h
Revision: 1.2
Committed: Mon Jun 10 14:10:44 2002 UTC (22 years, 3 months ago) by tdb
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
State: FILE REMOVED
Log Message:
Tidy up of files. These are all old things that are not only no longer used
but are also probably useless to anyone other than us. This saves checking
them out all the time, and makes the "cms/source" tree contain only current
stuff. They'll still exist in the attic's though :)

File Contents

# User Rev Content
1 ab11 1.1 // smtp.h -*- C++ -*- socket library
2     // Copyright (C) 1992,1993,1994 Gnanasekaran Swaminathan <gs4t@virginia.edu>
3     //
4     // Permission is granted to use at your own risk and distribute this software
5     // in source and binary forms provided the above copyright
6     // notice and this paragraph are preserved on all copies.
7     // This software is provided "as is" with no express or implied warranty.
8     //
9     // Version: 17Oct95 1.10
10    
11     #ifndef SMTP_H
12     #define SMTP_H
13    
14     #include <protocol.h>
15    
16     class smtp: public protocol {
17     public:
18     class smtpbuf : public protocol::protocolbuf {
19     ostream* o; // send all the responses to o
20    
21     void send_cmd (const char* cmd, const char* s = 0,
22     const char* p = 0);
23     void get_response ();
24    
25     smtpbuf (smtpbuf&);
26     smtpbuf& operator = (smtpbuf&);
27     public:
28     smtpbuf (ostream* out = 0)
29     : protocol::protocolbuf (protocol::tcp), o (out) {}
30    
31     void send_buf (const char* buf, int buflen);
32    
33     void helo ();
34     void quit () { send_cmd ("QUIT"); }
35     void turn () { send_cmd ("TURN"); }
36     void rset () { send_cmd ("RSET"); }
37     void noop () { send_cmd ("NOOP"); }
38     void vrfy (const char* s) { send_cmd ("VRFY ", s); }
39     void expn (const char* s) { send_cmd ("EXPN ", s); }
40    
41     void data () { send_cmd ("DATA"); }
42     void data (const char* buf, int buflen);
43     void data (const char* filename); // filename = 0 => stdin
44    
45     void mail (const char* reverse_path);
46     void rcpt (const char* forward_path);
47     void help (const char* s = 0);
48    
49     virtual void serve_clients (int portno = -1);
50     virtual const char* rfc_name () const { return "smtp"; }
51     virtual const char* rfc_doc () const { return "rfc821"; }
52     };
53    
54     protected:
55     smtp(): ios (0) {}
56    
57     public:
58     smtp (ostream* out): ios (0) { ios::init (new smtpbuf (out)); }
59     ~smtp () { delete ios::rdbuf (); ios::init (0); }
60    
61     int get_response (char* buf, int len);
62    
63     smtpbuf* rdbuf () { return (smtpbuf*) protocol::rdbuf (); }
64     smtpbuf* operator -> () { return rdbuf (); }
65     };
66    
67     extern ostream& operator << (ostream& o, smtp& s);
68    
69     #endif // SMTP_H