"Fossies" - the Fresh Open Source Software Archive

Member "postal-0.76/smtpserver.cpp" (24 Sep 2006, 1754 Bytes) of package /linux/privat/postal-0.76.tgz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "smtpserver.cpp" see the Fossies "Dox" file reference documentation.

    1 #include "smtpserver.h"
    2 
    3 int smtp_server::m_processes = 0;
    4 int smtp_server::m_max_conn = 0;
    5 int smtp_server::m_nextThread = 0;
    6 
    7 
    8 smtp_server::smtp_server(short port, UserList &ul, int maxMsgSize
    9                        , int processes, Logit *log, Logit *debug
   10 #ifdef USE_SSL
   11     , bool use_ssl
   12 #endif
   13     )
   14  : tcp(NULL, port, log
   15 #ifdef USE_SSL
   16      , use_ssl
   17 #endif
   18      , debug)
   19  , m_ul(ul)
   20  , m_res(new results)
   21  , m_maxMsgSize(maxMsgSize)
   22 {
   23   m_max_conn = processes;
   24 }
   25 
   26 smtp_server::smtp_server(int threadNum, const smtp_server *parent)
   27  : tcp(threadNum, parent)
   28  , m_ul(parent->m_ul)
   29  , m_res(parent->m_res)
   30  , m_maxMsgSize(parent->m_maxMsgSize)
   31 {
   32 }
   33 
   34 
   35 Thread *smtp_server::newThread(int threadNum)
   36 {
   37   return new smtp_server(threadNum, this);
   38 }
   39 
   40 smtp_server::~smtp_server()
   41 {
   42 }
   43 
   44 int smtp_server::action(PVOID)
   45 {
   46   while(1)
   47   {
   48     
   49   }
   50 }
   51 
   52 int smtp_server::pollRead()
   53 {
   54   m_res->pollPrint();
   55   if(m_max_conn && m_processes < m_max_conn)
   56   {
   57     int rc = pollForAccept();
   58     if(rc == -1)
   59       return -1;
   60     if(rc == 1)
   61     {
   62       smtp_server *n = (smtp_server *)newThread(m_nextThread);
   63       if(n->isOpen())
   64       {
   65         m_nextThread++;
   66         m_processes++;
   67       }
   68       else
   69         delete n;
   70     }
   71   }
   72   return 0;
   73 }
   74 
   75 void smtp_server::error()
   76 {
   77   m_res->error();
   78   tcp::disconnect();
   79 }
   80 
   81 int smtp_server::WriteWork(PVOID buf, int size, int timeout)
   82 {
   83   return Write(buf, size, timeout);
   84 }
   85 
   86 void smtp_server::sentData(int bytes)
   87 {
   88   m_res->dataBytes(bytes);
   89 }
   90 
   91 ERROR_TYPE smtp_server::readCommandResp()
   92 {
   93   char recvBuf[1024];
   94   
   95 }
   96 
   97 int smtp_server::doAllWork()
   98 {
   99   
  100 }
  101 
  102 int smtp_server::disconnect()
  103 {
  104   const char * str = "550 disconnect\r\n";
  105   const len = strlen(str);
  106   rc = sendData(str, len);
  107   if(rc != len)
  108     return -1;
  109   rc = 
  110 }