[complement-svn] SF.net SVN: complement: [1858] trunk/complement/explore/app/SMTP-tools/ smtp_serve
Status: Pre-Alpha
Brought to you by:
complement
From: <com...@us...> - 2008-04-25 08:55:17
|
Revision: 1858 http://complement.svn.sourceforge.net/complement/?rev=1858&view=rev Author: complement Date: 2008-04-25 01:55:14 -0700 (Fri, 25 Apr 2008) Log Message: ----------- change EOL style to native Modified Paths: -------------- trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.cc trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.h trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test.cc Property Changed: ---------------- trunk/complement/explore/app/SMTP-tools/smtp_server_ut/ trunk/complement/explore/app/SMTP-tools/smtp_server_ut/Makefile trunk/complement/explore/app/SMTP-tools/smtp_server_ut/Makefile.inc trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.cc trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.h trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test.cc trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test.h trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test_suite.h Property changes on: trunk/complement/explore/app/SMTP-tools/smtp_server_ut ___________________________________________________________________ Name: svn:ignore - obj + obj test_* Property changes on: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/Makefile ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/Makefile.inc ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.cc =================================================================== --- trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.cc 2008-04-25 08:53:58 UTC (rev 1857) +++ trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.cc 2008-04-25 08:55:14 UTC (rev 1858) @@ -1,151 +1,151 @@ -#include <iostream> -#include <string> +#include <iostream> +#include <string> #include "SMTP_Server.h" - -using namespace std; - + +using namespace std; + command setCom(const string& str) { string Str(str); for(int i = 0; Str[i] != '\0'; i++) Str[i] = tolower(Str[i]); - if (Str == "helo") return helo; - else if (Str == "ehlo") return ehlo; - else if (Str == "mail") return mail; - else if (Str == "rcpt") return rcpt; - else if (Str == "data") return data; - else if (Str == "rset") return rset; - else if (Str == "vrfy") return vrfy; - else if (Str == "expn") return expn; - else if (Str == "help") return help; - else if (Str == "noop") return noop; - else if (Str == "quit") return quit; - else return none; -} - -void change(state& st, command& com, string& param, string& stout) { - switch (com) { - case helo: - if (st == connect) { - stout = "250 localhost Hello localhost, pleased to meet you\n"; + if (Str == "helo") return helo; + else if (Str == "ehlo") return ehlo; + else if (Str == "mail") return mail; + else if (Str == "rcpt") return rcpt; + else if (Str == "data") return data; + else if (Str == "rset") return rset; + else if (Str == "vrfy") return vrfy; + else if (Str == "expn") return expn; + else if (Str == "help") return help; + else if (Str == "noop") return noop; + else if (Str == "quit") return quit; + else return none; +} + +void change(state& st, command& com, string& param, string& stout) { + switch (com) { + case helo: + if (st == connect) { + stout = "250 localhost Hello localhost, pleased to meet you\n"; st = hello; - return; - } - else { - stout = "503 localhost Duplicate HELO/EHLO\n"; - return; - } - case ehlo: - if (st == connect) { - stout = "250-localhost Hello localhost, pleased to meet you\n"; - stout += "250-8BITMIME\n"; - stout += "250-SIZE 8000000\n"; - stout += "250 HELP\n"; - st = hello; - return; - } - else { - stout = "503 localhost Duplicate HELO/EHLO\n"; - return; - } - case mail: - switch (st) { - case connect: - stout = "503 Polite people say HELO first\n"; - return; - case hello: - stout = "250 " + param + "... Sender ok\n"; - st = sender; - return; - case sender: - stout = "503 Sender already specified\n"; - return; - case recipient: - stout = "503 Sender already specified\n"; - return; - } - case rcpt: - switch (st) { - case connect: - stout = "503 Need MAIL before RCPT\n"; - return; - case hello: - stout = "503 Need MAIL before RCPT\n"; - return; - case sender: - stout = "250 " + param + "... Recipient ok\n"; - st = recipient; - return; - case recipient: - stout = "250 " + param + "... Recipient ok\n"; - return; - } - case data: - switch (st) { - case connect: - stout = "503 Need MAIL command\n"; - return; - case hello: - stout = "503 Need MAIL command\n"; - return; - case sender: - stout = "503 Need RCPT (recipient)\n"; - return; - case recipient: - stout = "354 Enter mail, end with '.' on a line by itself\n"; - st = letter; - return; - } - case rset: - stout = "250 Reset state\n"; - if (st!=connect) st = hello; - return; - case vrfy: - stout = "502 Command not implemented\n"; - return; - case expn: - stout = "502 Command not implemented\n"; - return; - case help: - stout = "214-This is SMTP_Server\n"; - stout += "214 End of HELP info\n"; - return; - case noop: - stout = "250 OK\n"; - return; - case quit: - stout = "221 localhost closing connection\n"; - stout += "Connection closed by foreign host.\n"; - st = disconnect; - return; - case none: - stout = "500 Command unrecognized\n"; - return; - } -} + return; + } + else { + stout = "503 localhost Duplicate HELO/EHLO\n"; + return; + } + case ehlo: + if (st == connect) { + stout = "250-localhost Hello localhost, pleased to meet you\n"; + stout += "250-8BITMIME\n"; + stout += "250-SIZE 8000000\n"; + stout += "250 HELP\n"; + st = hello; + return; + } + else { + stout = "503 localhost Duplicate HELO/EHLO\n"; + return; + } + case mail: + switch (st) { + case connect: + stout = "503 Polite people say HELO first\n"; + return; + case hello: + stout = "250 " + param + "... Sender ok\n"; + st = sender; + return; + case sender: + stout = "503 Sender already specified\n"; + return; + case recipient: + stout = "503 Sender already specified\n"; + return; + } + case rcpt: + switch (st) { + case connect: + stout = "503 Need MAIL before RCPT\n"; + return; + case hello: + stout = "503 Need MAIL before RCPT\n"; + return; + case sender: + stout = "250 " + param + "... Recipient ok\n"; + st = recipient; + return; + case recipient: + stout = "250 " + param + "... Recipient ok\n"; + return; + } + case data: + switch (st) { + case connect: + stout = "503 Need MAIL command\n"; + return; + case hello: + stout = "503 Need MAIL command\n"; + return; + case sender: + stout = "503 Need RCPT (recipient)\n"; + return; + case recipient: + stout = "354 Enter mail, end with '.' on a line by itself\n"; + st = letter; + return; + } + case rset: + stout = "250 Reset state\n"; + if (st!=connect) st = hello; + return; + case vrfy: + stout = "502 Command not implemented\n"; + return; + case expn: + stout = "502 Command not implemented\n"; + return; + case help: + stout = "214-This is SMTP_Server\n"; + stout += "214 End of HELP info\n"; + return; + case noop: + stout = "250 OK\n"; + return; + case quit: + stout = "221 localhost closing connection\n"; + stout += "Connection closed by foreign host.\n"; + st = disconnect; + return; + case none: + stout = "500 Command unrecognized\n"; + return; + } +} - + int ServerWork() { - state st = connect; + state st = connect; command com; - string param, message, stout; - while (st != disconnect) { - if (st != letter) { - string str; + string param, message, stout; + while (st != disconnect) { + if (st != letter) { + string str; cin >> str; getline(cin, param); - com = setCom(str); + com = setCom(str); change(st, com, param, stout); - cout << stout; - } - else { - getline(cin, param); - if (param != ".") message = message + param + "\n"; - else { - st = hello; - cout << message; - message = ""; - } - }; - }; - return 0; -} + cout << stout; + } + else { + getline(cin, param); + if (param != ".") message = message + param + "\n"; + else { + st = hello; + cout << message; + message = ""; + } + }; + }; + return 0; +} Property changes on: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.cc ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.h =================================================================== --- trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.h 2008-04-25 08:53:58 UTC (rev 1857) +++ trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.h 2008-04-25 08:55:14 UTC (rev 1858) @@ -7,7 +7,7 @@ sender, recipient, letter - }; + }; enum command { helo, ehlo, @@ -21,7 +21,7 @@ noop, quit, none - }; + }; int ServerWork(); Property changes on: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/SMTP_Server.h ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test.cc =================================================================== --- trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test.cc 2008-04-25 08:53:58 UTC (rev 1857) +++ trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test.cc 2008-04-25 08:55:14 UTC (rev 1858) @@ -1,4 +1,4 @@ -// -*- C++ -*- Time-stamp: <08/03/26 01:53:46 ptr> +// -*- C++ -*- Time-stamp: <08/04/25 12:51:09 yeti> #include "my_test.h" @@ -91,10 +91,10 @@ void server_thread() { char buffer[buf_size]; - state st = connect; + state st = connect; command com; string param, message, stout; - while (st != disconnect) { + while (st != disconnect) { if (st != letter) { if (read (fd2[0], buffer, sizeof(buffer)) < 1) fprintf(stderr,"Reading error\n"); else { @@ -102,23 +102,23 @@ string str (buffer); param.assign (str, com_length, str.size()); str.erase (com_length, str.size() - com_length + 1); - com = setCom (str); + com = setCom (str); change (st, com, param, stout); strcpy (buffer, stout.c_str()); write (fd1[1], buffer, sizeof(buffer)); } - } + } else { read (fd2[0], buffer, sizeof(buffer)); param.assign (buffer, 0, sizeof(buffer)); - if (param != ".") message = message + param + "\n"; - else { - st = hello; -// cout << message; + if (param != ".") message = message + param + "\n"; + else { + st = hello; +// cout << message; message = ""; } - }; + }; }; active = false; // cerr << "Server's loop may be here" << endl; Property changes on: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test.cc ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test.h ___________________________________________________________________ Name: svn:eol-style + native Property changes on: trunk/complement/explore/app/SMTP-tools/smtp_server_ut/my_test_suite.h ___________________________________________________________________ Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |