- ultimatetcp-ip42_samples.zip
- Ultimate TCP-IP
- ActiveX
- BuildAll
- MinDependency_Dlls
- MinDependency_EvalDlls
- UTDns
- UTFinger
- UTFingerServ
- utftp
- utftpserv
- UTHistory
- uthttp
- UTImap4
- UTMail
- UTMailServ
- UTMsg
- UTNntp
- utping
- UTSocket
- Demos
- Examples
- Client
- ASP
- MFC
- Imap4
- Nntp
- SDK
- DNS
- Finger
- Ftp
- History
- Http
- Mail
- MX Lookup
- Ping
- UDP
- VisualBasic
- Dns
- Finger
- Ftp
- History
- Http
- Imap4
- Mail
- MartsMail
- Nntp
- Ping
- Socket
- UDPSocket
- Master.dsw
- Master.sln
- Server
- ASP
- MFC
- SampleServer
- SDK
- AccessControlServerDemo
- Finger
- Ftp
- Http
- Mail
- VisualBasic
- service
- svrtest
- Security
- Examples
- Client
- Echo
- FTPs
- Https
- Imap4s
- Mail
- MasterS.dsw
- MasterS.sln
- Server
- Echo
- FTPs
- Https
- Mail
- Test_Del
- Util
- CertManager
- ultimatetcp-ip42_docs.zip
- ultimatetcp-ip42_src.zip
- Include
|
//=================================================================
// class: CUT_POP3Server
// class: CUT_POP3Thread
// File: pop3_s.h
//
// Purpose:
//
// POP3 server and thread classes declared.
//
// ===================================================================
// Ultimate TCP/IP v4.2
// This software along with its related components, documentation and files ("The Libraries")
// is � 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is
// governed by a software license agreement ("Agreement"). Copies of the Agreement are
// available at The Code Project (www.codeproject.com), as part of the package you downloaded
// to obtain this file, or directly from our office. For a copy of the license governing
// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900.
// ===================================================================
#ifndef POP3_SERVER_H
#define POP3_SERVER_H
#include "ut_srvr.h"
#include "fileman.h"
#include <stdio.h>
#include <limits.h>
class CUT_POP3Thread;
class CUT_MailServer;
// Command ID enumeration
typedef enum POP3CommandIDTag {
CMD_UNKNOWN_POP3,
CMD_POP3USER,
CMD_POP3PASS,
CMD_POP3STAT,
CMD_POP3LIST,
CMD_POP3RETR,
CMD_POP3DELE,
CMD_POP3NOOP,
CMD_POP3RSET,
CMD_POP3QUIT,
CMD_POP3TOP,
CMD_POP3UIDL,
CMD_STLS,
CMD_CAPA
} POP3CommandID;
// ===================================
// CUT_POP3Server class
// ===================================
class CUT_POP3Server : public CUT_WSServer {
friend CUT_POP3Thread; // Make POP3 thread class a friend
protected:
CUT_MailServer *m_ptrMailServer; // Pointer to the Mail Server class
public:
// Constructor/Destructor
CUT_POP3Server(CUT_MailServer &ptrMailServer);
virtual ~CUT_POP3Server();
// Starts up the POP3 Server.
virtual int Start();
#ifdef CUT_SECURE_SOCKET
// Set immediate security negotiation flag
virtual void SetImmediateNegotiation(BOOL bFlag);
#endif
protected:
// This virtual function is called each time the server
// is about to accept a new connection.
virtual long OnCanAccept(LPCSTR address);
// Create class instance callback, this is where a C_WSTHREAD class is created
virtual CUT_WSThread *CreateInstance();
// This function is called so that the instance created above can be released
virtual void ReleaseInstance(CUT_WSThread *ptr);
#ifdef CUT_SECURE_SOCKET
BOOL m_bImmediateNegotiation;
#endif
};
// ===================================
// CUT_POP3Thread class
// ===================================
class CUT_POP3Thread : public CUT_WSThread {
protected:
// Returns a command ID from the given command line
POP3CommandID GetCommand(LPSTR data);
// This function is called whenever a new connection is made
// and the max. number of connections has already been reached
virtual void OnMaxConnect();
// This function is called whenever a new connection is made
virtual void OnConnect();
#ifdef CUT_SECURE_SOCKET
// Non secure client trying to connect to the secure server
virtual BOOL OnNonSecureConnection(LPCSTR IpAddress);
// On socket connection
virtual int SocketOnConnected(SOCKET s, const char *lpszName);
#endif
};
#endif
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
In January 2005, David Cunningham and Chris Maunder created TheUltimateToolbox.com, a new group dedicated to the continued development, support and growth of Dundas Software’s award winning line of MFC, C++ and ActiveX control products.
Ultimate Grid for MFC, Ultimate Toolbox for MFC, and Ultimate TCP/IP have been stalwarts of C++/MFC development for a decade. Thousands of developers have used these products to speed their time to market, improve the quality of their finished products, and enhance the reliability and flexibility of their software.