#include #include #include SMTPResponse::SMTPResponse(void) { createResponse(); } SMTPResponse::~SMTPResponse() { } SMTPResponse::SMTPResponse(const SMTPResponse &/*someSMTPResponse*/) { // private implementation } SMTPResponse &SMTPResponse::operator=(const SMTPResponse &/*someSMTPResponse*/) { // private implementation return *this; } BOOL SMTPResponse::isInResponse(const String &responseString,RspType responseType) { String srchString(responseString); return mSMTPResponseTree[responseType].searchItem(StringPointer(&srchString)); } void SMTPResponse::createResponse(void) { createResponseBlock(); createResponseTree(); } void SMTPResponse::createResponseTree(void) { mSMTPResponseTree.size(NakQuit+1); mSMTPResponseTree[AckConnect].insert(StringPointer(&mSMTPResponse[R211])); mSMTPResponseTree[AckConnect].insert(StringPointer(&mSMTPResponse[R220])); mSMTPResponseTree[NakConnect].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckHelo].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakHelo].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakHelo].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakHelo].insert(StringPointer(&mSMTPResponse[R504])); mSMTPResponseTree[NakHelo].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckMail].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakMail].insert(StringPointer(&mSMTPResponse[R552])); mSMTPResponseTree[NakMail].insert(StringPointer(&mSMTPResponse[R451])); mSMTPResponseTree[NakMail].insert(StringPointer(&mSMTPResponse[R452])); mSMTPResponseTree[NakMail].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakMail].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakMail].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckRecipient].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[AckRecipient].insert(StringPointer(&mSMTPResponse[R251])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R550])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R551])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R552])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R553])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R450])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R451])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R452])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R503])); mSMTPResponseTree[NakRecipient].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckData].insert(StringPointer(&mSMTPResponse[R354])); mSMTPResponseTree[AckData].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R552])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R554])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R451])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R452])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R451])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R554])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R503])); mSMTPResponseTree[NakData].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckReset].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakReset].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakReset].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakReset].insert(StringPointer(&mSMTPResponse[R504])); mSMTPResponseTree[NakReset].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckSend].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakSend].insert(StringPointer(&mSMTPResponse[R552])); mSMTPResponseTree[NakSend].insert(StringPointer(&mSMTPResponse[R451])); mSMTPResponseTree[NakSend].insert(StringPointer(&mSMTPResponse[R452])); mSMTPResponseTree[NakSend].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakSend].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakSend].insert(StringPointer(&mSMTPResponse[R502])); mSMTPResponseTree[NakSend].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckSendOrMail].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakSendOrMail].insert(StringPointer(&mSMTPResponse[R552])); mSMTPResponseTree[NakSendOrMail].insert(StringPointer(&mSMTPResponse[R451])); mSMTPResponseTree[NakSendOrMail].insert(StringPointer(&mSMTPResponse[R452])); mSMTPResponseTree[NakSendOrMail].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakSendOrMail].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakSendOrMail].insert(StringPointer(&mSMTPResponse[R502])); mSMTPResponseTree[NakSendOrMail].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckSendAndMail].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakSendAndMail].insert(StringPointer(&mSMTPResponse[R552])); mSMTPResponseTree[NakSendAndMail].insert(StringPointer(&mSMTPResponse[R451])); mSMTPResponseTree[NakSendAndMail].insert(StringPointer(&mSMTPResponse[R452])); mSMTPResponseTree[NakSendAndMail].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakSendAndMail].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakSendAndMail].insert(StringPointer(&mSMTPResponse[R502])); mSMTPResponseTree[NakSendAndMail].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckVerify].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[AckVerify].insert(StringPointer(&mSMTPResponse[R251])); mSMTPResponseTree[NakVerify].insert(StringPointer(&mSMTPResponse[R550])); mSMTPResponseTree[NakVerify].insert(StringPointer(&mSMTPResponse[R551])); mSMTPResponseTree[NakVerify].insert(StringPointer(&mSMTPResponse[R553])); mSMTPResponseTree[NakVerify].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakVerify].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakVerify].insert(StringPointer(&mSMTPResponse[R502])); mSMTPResponseTree[NakVerify].insert(StringPointer(&mSMTPResponse[R504])); mSMTPResponseTree[NakVerify].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckExpand].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakExpand].insert(StringPointer(&mSMTPResponse[R550])); mSMTPResponseTree[NakExpand].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakExpand].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakExpand].insert(StringPointer(&mSMTPResponse[R502])); mSMTPResponseTree[NakExpand].insert(StringPointer(&mSMTPResponse[R504])); mSMTPResponseTree[NakExpand].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckHelp].insert(StringPointer(&mSMTPResponse[R211])); mSMTPResponseTree[AckHelp].insert(StringPointer(&mSMTPResponse[R214])); mSMTPResponseTree[NakHelp].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakHelp].insert(StringPointer(&mSMTPResponse[R501])); mSMTPResponseTree[NakHelp].insert(StringPointer(&mSMTPResponse[R502])); mSMTPResponseTree[NakHelp].insert(StringPointer(&mSMTPResponse[R504])); mSMTPResponseTree[NakHelp].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckNoop].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakNoop].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakNoop].insert(StringPointer(&mSMTPResponse[R421])); mSMTPResponseTree[AckTurn].insert(StringPointer(&mSMTPResponse[R250])); mSMTPResponseTree[NakTurn].insert(StringPointer(&mSMTPResponse[R502])); mSMTPResponseTree[NakTurn].insert(StringPointer(&mSMTPResponse[R500])); mSMTPResponseTree[NakTurn].insert(StringPointer(&mSMTPResponse[R503])); mSMTPResponseTree[AckQuit].insert(StringPointer(&mSMTPResponse[R221])); mSMTPResponseTree[NakQuit].insert(StringPointer(&mSMTPResponse[R500])); } void SMTPResponse::createResponseBlock(void) { mSMTPResponse.remove(); mSMTPResponse.insert(&String("211")); mSMTPResponse.insert(&String("214")); mSMTPResponse.insert(&String("220")); mSMTPResponse.insert(&String("221")); mSMTPResponse.insert(&String("250")); mSMTPResponse.insert(&String("251")); mSMTPResponse.insert(&String("354")); mSMTPResponse.insert(&String("421")); mSMTPResponse.insert(&String("450")); mSMTPResponse.insert(&String("451")); mSMTPResponse.insert(&String("452")); mSMTPResponse.insert(&String("500")); mSMTPResponse.insert(&String("501")); mSMTPResponse.insert(&String("502")); mSMTPResponse.insert(&String("503")); mSMTPResponse.insert(&String("504")); mSMTPResponse.insert(&String("550")); mSMTPResponse.insert(&String("551")); mSMTPResponse.insert(&String("552")); mSMTPResponse.insert(&String("553")); mSMTPResponse.insert(&String("554")); }