#include <RedirWwwSocket.h>
Public Member Functions | |
RedirWwwSocket (ISocketHandler &) | |
~RedirWwwSocket () | |
void | OnLine (const std::string &) |
Private Attributes | |
std::string | m_method |
std::string | m_url |
Definition at line 32 of file RedirWwwSocket.h.
|
Definition at line 38 of file RedirWwwSocket.cpp.
00039 :TcpSocket(h) 00040 { 00041 SetLineProtocol(); 00042 } |
|
Definition at line 45 of file RedirWwwSocket.cpp.
00046 { 00047 } |
|
Definition at line 50 of file RedirWwwSocket.cpp. References DEB, m_method, and m_url.
00051 { 00052 Parse pa(line,":"); 00053 std::string key = pa.getword(); 00054 00055 DEB( printf("%s\n",line.c_str());) 00056 00057 if (key == "GET") 00058 { 00059 m_method = key; 00060 m_url = pa.getword(); 00061 } 00062 else 00063 if (key == "") 00064 { 00065 std::string response; 00066 if (m_method == "GET") 00067 { 00068 HOST *p = static_cast<MyHandler&>(Handler()).GetRandomHOST( "viawww", true ); 00069 if (p) 00070 { 00071 std::string ip; 00072 Utility::l2ip(p -> ip, ip); 00073 response = "HTTP/1.0 302 Moved\n" 00074 "Location: http://" + ip + ":8080" + m_url + "\n" 00075 "\n"; 00076 Send(response); 00077 DEB( printf("Response:\n%s\n",response.c_str());) 00078 SetCloseAndDelete(); 00079 } 00080 else 00081 { 00082 DEB( printf("no random host found\n");) 00083 response = "HTTP/1.0 404 Not Found\n" 00084 "Content-Type: text/html\n" 00085 "\n" 00086 "<html><body><h1>Document not found</ht></body></html>"; 00087 Send(response); 00088 SetCloseAndDelete(); 00089 } 00090 } 00091 else 00092 { 00093 DEB( printf("m_method != GET ('%s')\n",m_method.c_str());) 00094 SetCloseAndDelete(); 00095 } 00096 } 00097 } |
|
Definition at line 41 of file RedirWwwSocket.h. Referenced by OnLine(). |
|
Definition at line 42 of file RedirWwwSocket.h. Referenced by OnLine(). |