Google
Web alhem.net
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

ExecSocket Class Reference

#include <ExecSocket.h>

List of all members.

Public Member Functions

 ExecSocket (SocketHandler &)
 ~ExecSocket ()
void OnFirst ()
void OnHeader (const std::string &, const std::string &)
void OnHeaderComplete ()
void OnData (const char *, size_t)
void Exec ()
const std::string & GetHttpDate ()

Private Member Functions

void header (FILE *, int, const std::string &)
void Send64 (const std::string &str64, const std::string &type)

Private Attributes

int m_content_length
FILE * m_file
int m_received
std::string m_tmpname
int m_request_id
std::string m_http_cookie
std::string m_content_type
std::string m_content_length_str
std::string m_if_modified_since
std::string m_http_date

Static Private Attributes

int m_request_count = 0


Constructor & Destructor Documentation

ExecSocket::ExecSocket SocketHandler &   ) 
 

Definition at line 19 of file ExecSocket.cpp.

References ExecSocket(), and m_http_date.

Referenced by ExecSocket().

00020 :HTTPSocket(h) 00021 ,m_content_length(0) 00022 ,m_file(NULL) 00023 ,m_received(0) 00024 ,m_request_id(++m_request_count) 00025 { 00026 m_http_date = static_cast<FinderHandler&>(Handler()).datetime2httpdate( 00027 static_cast<FinderHandler&>(Handler()).GetDate()); 00028 00029 }

ExecSocket::~ExecSocket  ) 
 

Definition at line 32 of file ExecSocket.cpp.

References m_file.

00033 { 00034 if (m_file) 00035 { 00036 fclose(m_file); 00037 } 00038 }


Member Function Documentation

void ExecSocket::Exec  ) 
 

Definition at line 161 of file ExecSocket.cpp.

References g_pSocket, header(), m_content_length_str, m_content_type, m_http_cookie, m_request_id, m_tmpname, out, run(), and Send64().

Referenced by OnData(), and OnHeaderComplete().

00162 { 00163 if (GetUri() == "/image/iplus-end-0.gif") 00164 { 00165 std::string str64 = "R0lGODlhEwAQAPcAAAAAAGtrlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAIALAAAAAATABAAQAhEAAUIHEiwoEGBAQYCGJjwIMKDDR1KnEjRYcSFDyVGJLixokeOHwOIHDly4kWGJgUAWLlSQMKXLkEKxBhTI0mSH3PmDAgAOw=="; 00166 Send64(str64, "image/gif"); 00167 } 00168 else 00169 if (GetUri() == "/image/ibranch-end-0.gif") 00170 { 00171 std::string str64 = "R0lGODlhEwAQAPcAAAAAAGtrlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAIALAAAAAATABAAQAgoAAUIHEiwoMGDCBMqXMiwocOHECMeDCCRYkSLEClqFLARo8SPICEGBAA7"; 00172 Send64(str64, "image/gif"); 00173 } 00174 else 00175 if (GetUri() == "/image/ivert-line-0.gif") 00176 { 00177 std::string str64 = "R0lGODlhEwAQAPcAAGtrlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAEALAAAAAATABAAQAgpAAMIHEiwoMGDCBMqXMiwocOHECMeBCCRYkSLEDE+1OiQY0OPDEEODAgAOw=="; 00178 Send64(str64, "image/gif"); 00179 } 00180 else 00181 if (GetUri() == "/image/iglobe-0.gif") 00182 { 00183 std::string str64 = "R0lGODlhEAAQAPcAAAAAOQAAQgAAawAAcwAAewAAhAAAjAAAlAAAnAAAtQAAvQAIlAAIpQAQnAAYvQAhAAAhKQAhhAAhzgApAAApIQApSgAptQApzgA5EAA5SgA5WgA5vQBCAABClABCtQBCvQBKQgBSQgBaAABaCABaKQBaQgBaSgBaewBjAABjQgBrKQBzKQBzMQB7AAB7GAB75wCEAACEIQCEOQCUAACUKQCcAAClIQCljAC1AAC1lAC9AADGAADeAAD3AAD/AAgIQghzEAh7ewiECAiUlAilCAjGxgj3CAj/CBg5cyEpcyFCxilaaylrWilzISmUKSmlpSmtKSm1KSnGKSnOKTFzczHGMTHOMTlaWjljhDmMhDm1hDnOOUIAAEJaQkJra0KlQkLGvULWQkLWtUpKe0pKxkpSa0qMSlKUWlKtUlLW1lLe3loIAFpaUlpzpVrWWlrW1lreWlre3mM5OWOtY2Pe3mPn52sICGtCWmuMnGulpWvn52v3a3NzhHN7c3OEc3OlnHOtc3O1tXO9c3Pn53sACHu9e3v393v/e3v//4TGhIT//4zO1pzOnJzWnKWlpaWtpaWtraXOraXn56Xvpa21ra3v763//7W1tbW1vbW9tbXWvb3evcYxOcaEhMbWzs4pMc7OztYAMdbe1t4QSt61td7e3t7n3vf39/f3//f/9////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAKoALAAAAAAQABAAAAj+AFUJVFXKESVAc74U0jSwIShQjeBUITKDRAMyDVWBEhUGyowUKVhYcJBgzEBKkbbggGHiwgYPHiIkIFCGICgxNj66hEmDxQIQQDI5qlQkh4sOL2VoYMGAiRsofSCBufHCw4eXXvK0qVClCg4OgbQwynLiJR5JhuhQcaIDxoQzkw4ZiXFBySJLdOi8UYGjxYNCcnvgSIFlUFo6aULMEDEh0R4jPHbgEPInbZohI2Bw6LNpy44dOnSMQLLkSZArbEZMwKRKkJTQMzAkSCAgCaVOdrqcEohmRgsICxQoSJChCadPdigNNEPBAAIEBQoM+HFnVCguDS/x+REgwA8+mU4FkSIkJyAAOw=="; 00184 Send64(str64, "image/gif"); 00185 } 00186 else 00187 if (GetUri() == "/image/iminus-cont-0.gif") 00188 { 00189 std::string str64 = "R0lGODlhEwAQAPcAAAAAAGtrlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAIALAAAAAATABAAQAhAAAUIHEiwoEGBAQ4mPIhQIcOHECNCXFiQokODFiVqJJjxYYCPIEFOvMgwIYCTJwUkXKmSI0mFIUNu7CiR5sCAAAA7"; 00190 Send64(str64, "image/gif"); 00191 } 00192 else 00193 if (GetUri() == "/image/ibranch-cont-0.gif") 00194 { 00195 std::string str64 = "R0lGODlhEwAQAPcAAAAAAGtrlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAIALAAAAAATABAAQAguAAUIHEiwoMGDCBMqXMiwocOHECMeDCCRYkSLEClqFLARY0GPDkE2FMmQ5MCAAAA7"; 00196 Send64(str64, "image/gif"); 00197 } 00198 else 00199 if (GetUri() == "/image/ifolder-open-0.gif") 00200 { 00201 std::string str64 = "R0lGODlhEAAQAPcAAGNjY2trlGu1/5SUY87OY87OlOfea/fve////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAIALAAAAAAQABAAAAhsAAUIJECQwACBCBMKIGCgoQGDChEydNiwYMGDCylqdDgAwMICIEOKHGCgIwEEKFOqJABggEkEB2LKlMnSJYCTM3MeqOkRp86YPBfC/AkUgEehRHcaHWixacGjAoxKnTo1osAAVrNqtYo1YkAAADs="; 00202 Send64(str64, "image/gif"); 00203 } 00204 else 00205 if (GetUri() == "/image/ifolder-closed-0.gif") 00206 { 00207 std::string str64 = "R0lGODlhEAAQAPcAAGNjY2u1/5SUY87OY+fea/fve////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAEALAAAAAAQABAAAAhUAAMEGEBwgACBCBMOJMCQgEGFCAtKnEjw4AADGDNqzCgAwMUCIEOKBNnx48iTJQ2cROlR5UqRKV/CbCkzZMyaBUpS3NkRgM+fQIMCgEi0qNGjRQMCADs="; 00208 Send64(str64, "image/gif"); 00209 } 00210 else 00211 if (GetUri() == "/image/iplus-cont-0.gif") 00212 { 00213 std::string str64 = "R0lGODlhEwAQAPcAAAAAAGtrlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAIALAAAAAATABAAQAhFAAUIHEiwoEGBAQYCGJjwIMKDDR1KnEjRYcSFDyVGJLixokeOHwOIHDly4kWGJgUAWLlSQMKXLkEKxBhTI0mSIT/KdBgQADs="; 00214 Send64(str64, "image/gif"); 00215 } 00216 else 00217 if (GetUri() == "/image/globe.gif") 00218 { 00219 std::string str64 = "R0lGODlhEAAQAPcAAAAAAAAA/wBjAACU/xgYGCljAClj/ymUACnOKSnO/yn/Yyn//1JSUnNzc4SEhJSUlL29vc7/zs7//97e3ufn1v/37///Sv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAABYALAAAAAAQABAAAAilAC0IFHig4AEDAxMSPHAhAoIDBQwgVMjQoYOLGBsAGFgRQQEHF0KGhOBgYIECHg2ArMCyAoQLJQ1IGBBxwEqJFQjoJCBzQYKfK1tWeNCAgYGCA4BekCgxwIQHDBgiEJA0KMsJFCBEjeBQgACQTQMEyMrAwoEICh5anVCBrFkFaQ+AFEvXrdmCAEBS2MtX60AAAAI4gEC4MOGyCQEwWMy4scLHCgMCADs="; 00220 Send64(str64, "image/gif"); 00221 } 00222 else 00223 if (GetUri() == "/image/close2.png") 00224 { 00225 std::string str64 = "iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAQAAADY4iz3AAAABGdBTUEAALGPC/xhBQAAAFFJREFUeJx10NEJwDAIRdFrcTQ361rJbO1HIiaKQuCRA4oKH00pjQkKMAu8wLOiYeS0aQC237gp0OGg9RlwkTcs5M0sk8OJGnNyUl+wlvQ3/AGYgRBq57hMVAAAAABJRU5ErkJggg=="; 00226 Send64(str64, "image/png"); 00227 } 00228 else 00229 if (GetUri() == "/style/dbd.css") 00230 { 00231 std::string str64 = "QSB7Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cgljb2xvcjogIzAwMDBmZjsKfQpBOmhvdmVyIHsKCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKCWJhY2tncm91bmQ6ICMwMDAwZmY7Cgljb2xvcjogI2ZmZmZmZjsKfQp0ZC50YWIgewoJYm9yZGVyLWJvdHRvbTogMXB4ICNjMGMwYzAgc29saWQ7CglwYWRkaW5nLWxlZnQ6IDVweDsKCWJvcmRlci1sZWZ0OiAxcHggI2MwYzBjMCBzb2xpZDsKCn0KdGQudGFiMiB7Cglib3JkZXItdG9wOiAxcHggI2MwYzBmZiBzb2xpZDsKCWJvcmRlci1sZWZ0OiAxcHggI2MwYzBmZiBzb2xpZDsKfQp0aCB7CglwYWRkaW5nLWxlZnQ6IDVweDsKCXBhZGRpbmctcmlnaHQ6IDNweDsKfQp0ZC5tYmVnIHsKCWJvcmRlci1yaWdodDogNHB4ICNmZmZmZmYgc29saWQ7Cn0KdGQueCB7Cglib3JkZXItcmlnaHQ6IDRweCAjZmZmZmZmIHNvbGlkOwoJcGFkZGluZy1sZWZ0OiA4cHg7CglwYWRkaW5nLXJpZ2h0OiA4cHg7CgliYWNrZ3JvdW5kOiAjZTBlMGUwOwp9CnRkLnkgewoJYm9yZGVyLXJpZ2h0OiA0cHggI2ZmZmZmZiBzb2xpZDsKCXBhZGRpbmctbGVmdDogOHB4OwoJcGFkZGluZy1yaWdodDogOHB4OwoJYmFja2dyb3VuZDogI2MwYzBjMDsKfQphLnggewp9CnRoLmVkaXQgewoJYmFja2dyb3VuZDogI2UwZTBmZjsKCXBhZGRpbmctdG9wOiAycHg7CglwYWRkaW5nLWxlZnQ6IDhweDsKCXBhZGRpbmctcmlnaHQ6IDhweDsKfQp0ZC5lZGl0IHsKCWJvcmRlci10b3A6IDFweCAjZTBlMGZmIHNvbGlkOwoJYm9yZGVyLXJpZ2h0OiAxcHggI2UwZTBmZiBzb2xpZDsKCXBhZGRpbmctdG9wOiAycHg7CglwYWRkaW5nLWxlZnQ6IDhweDsKCXBhZGRpbmctcmlnaHQ6IDhweDsKfQouZW51bSB7Cglmb250LWZhbWlseTogY291cmllcjsKCWZvbnQtc2l6ZTogc21hbGw7Cn0K"; 00232 Send64(str64, "text/css"); 00233 } 00234 else 00235 if (GetUri() == "/image/iminus-end-0.gif") 00236 { 00237 std::string str64 = "R0lGODlhEwAQAPcAAAAAAGtrlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAIALAAAAAATABAAQAg9AAUIHEiwoEGBAQ4mPIhQIcOHECNCXFiQokODFiVqJJjxYYCPIEFOvMgwIYCTJwUkXKmSI0mFIUNunDkzIAA7"; 00238 Send64(str64, "image/png"); 00239 } 00240 else 00241 if (GetUri() == "/image/iempty.gif") 00242 { 00243 std::string str64 = "R0lGODlhEwAQAOcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///yH+Dk1hZGUgd2l0aCBHSU1QACH5BAEKAP8ALAAAAAATABAAAAgfAP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGAkGBAA7"; 00244 Send64(str64, "image/png"); 00245 } 00246 else 00247 if (GetUri() == "/favicon.ico") 00248 { 00249 std::string str64 = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAAbUlEQVR42t1TQQ6AIAxbjQ/r03xaf4YHI0EoYMLBxJ6WrW1YwyK+BrqTI5LpYWxQiEQ1eoo3L2tRip3IoTDCtprBXjkj4lpjtIKoXD8MRKWaXM3HL5iRHZYz+JkBXPIOFPO3bm/B3UDLwZTzFif/wyDe/XNhLQAAAABJRU5ErkJggg=="; 00250 Send64(str64, "image/png"); 00251 } 00252 else 00253 if (GetUri() == "/ahl.png") 00254 { 00255 std::string str64 = 00256 "iVBORw0KGgoAAAANSUhEUgAAAGAAAABeCAIAAABTioayAAAACXBIWXMAAABkAAAAZAAPlsXdAAAAUHRFWHRSYXcgcHJvZmlsZSB0eXBlIEFQUDEyAApnZW5lcmljIHByb2ZpbGUKICAgICAgMTUKNDQ3NTYzNmI3OTAwMDEwMDA0MDAwMDAwM2MwMDAwCg2F1B0AABb4SURBVHja7Xx7rGVXed/3WGs/zvPeuTPXMzbjcUpqHAwlpQlYoUlDaJsAiVuFFKSKGlUlKgXqIKJAKxfRR4IUZEpSt1FoQEK4oYQEErlSFAoKIEoo2BQasBmc2NjyYzxz5957Hnufvfd6fF//2Oecez2hvbXvmZkg3U9b556Zc85ea//291rf+n0bVRWO5P8udLUn8JddjgA6QI4AOkCOADpAjgA6QI4AOkCOADpAjgA6QI4AOkCOADpAjgA6QI4AOkCOADpAjgA6QMxVHHtfoUWx/dP+C5fvABGv4gwBAK9qPWg5NLbvrjIY302ujgapAmKrQQiqC3xAQQF0H1AIcyXSq4XeZdegfedfWs78jYKAAgDi3sVri4mqzH+D9DSTu+I2dyVNTEFRl34GUTUikiqotrgoAqqIAhBxqzj7ZocAighXWJUuI0CqinjJ+SMAIZKolkXlGrOzM61mjfckCoN+X9UjorU26wgb7HTSPAfDRlVVFQAR21NeOT26XAC1p10CpKoIiKTO+ckkFpO4vVX1Bh3kkKRsDCIBE4sIMRNx8FTPYgwQfJ1k4ZpT3W4nAQBVQaSF/1pcw+VE63JrEKiCKhChC83Fi6EYEyp2uzxYN4kFY6H1O63TIUQAiCIIEgK5Rke7zWhUE2a9AR+/JunmpIr7of/eA2hhWREAQUlBkGg8af7s7E4n75+6Lu/2iBkUAgJLhP2+RkSJsNU5ACUCQCAyxTQ88eS0rt1gSGdOD621Ik8zs8uH0eUCSDSqCDHGUD/2mCvLXpbWp051bEqqGoIAINHeVRHRJTMREQBEACQEUDa0vT07/2QZvbvxphO9vhGh1m0j0uVzSysGaOF6QASJQvD4yKN1UeiZ053eULzX4FsspB221RdVZWYARaTFaeYXjIgiqqpEag16jw9+e3daTH/gBevHjw1EoIXle0ODdJH/KQiCxiiPPOLrWX7taeh1o3ek8wQH26jUao1qa1ZPy6VbgNovtIAigCoZK17l3GPNdFLf8H2djY1cRAlJUfHyhP+VAbQM6gsPAt/404uzypw509vYoMYhKCHOQxsAiAohaqtLOhdEUlAm8iEQEgAQIRHHGJGQkBSAjILyhXNaN9VzTuOgn6jOl9yXQ49WvJpXEFUhoAcf2t7apn7f5p04K9XVXkVcE4IXiSoRUEkFVYiAEZnZMltmoxFUKAYFJRWQiK4JwUfvoncxBnUNKMTBMUVKzj2OdSNzXC6Pka1mLbZMdkCQSbZ36q3z2Oma4yesAipwEI8iLkTD4GNEBGZGAEJSBUBQ0RAcqLBJBdRYC0gxKKqKqgrE4FUFgNAY7xFAOx0a79KTT4bvu4FVlYAUFRVgpXp0WID2W6gqIMXGyeOPN73ORm8QrcUQRFUUTNNEAIytCxJ1PmQ2H093vvr1L0rUm5//N+5/4N7g4o/92Cs7/R6AiAIxi4AKsOGvf/3Ljz/x0F974S2nr7/RNd5aMqSj8e60JMPl9ddvSBRiVlBYaURbgQYtXI+qAhKce7JxLuMkGquq3K63GA0YEBFEFAEFNWx8rP7nV75w/sJjhs31z7n54vaWd3Vd10nWFQ1EBACERlERaHc0vrD1eNNEIkMkIURQNMY0Lj7+xGzz5CCxCMqwak/07H3QUnf2LZR0VoWHHh7PytnO9nnnQ1XVohoVIqioMBMRGEuGbZbar977xe88+tDx9ecURVNUoZgUs6Isat80" 00257 "TfAxBAEFkdi40ASoqqqYTJomqoIoEhkyNs0StlRV9qlzJSGLCuy391XICjRoEbmEGR9/fFo10utCjFrOast2Vk2NtYRoGANCkiRRJDHm22fPfvozf3jL33w1BXvx" 00258 "4v+alOV4NPLONT5KlCyzPsQIEHxwXtTRaLQ7Gu0W5cw5EAVERKC800nyrndxNmucF8OrzxhXFcUQMLjGl1N7zanrTGKStEtkvJcYNAbxPjLbpglV1YjAuacufPx37+72jv3A837iqYtPlbNpPXNFWU3GRftNERGVEGII4l10LpSzejwqyqKqZm46KVUpeA1eisKRZe+SyaSZJ2ErlRVFMVBGGs2aAMYQ9fs9BXFumqdJmiaACCCzqlHwosY7+MQnP/LYYw/f9o/vEORiOt0d7c6qZjQeVVWTcjYYWCIBTBHBeW1qrWqqinp3tF3WTROVrXGunhTNeBTKWTOMvU7emUz1+IYCoEgk4vnEDq1QzxKgpwcvbZfsFy5MQ+xaE0WAmLrdfpIgoRKRQlTVqm66nfSP/uj3P/PH/+0fvvbtJzb/Su0q1/jJZFqU1WRazGY7H/3ob/R6HcTYRmtCCh6cl0e+862imDnvkUwIDag4J87HPLfBu3FwwetzTiVsCXSVFaNnr0HL4AUAIhEVgzOjUeHzWgHyvEekWZIzY5TIDACwPjz2rW9/84MffN8PvvjlP/wjP1nVZac7dL6aTkvX+GJaFdPxZz/7iRi0hR0ASZkIFCXv9WMjdV0llpUzUGFkaxVJJECSmrKYNnXsJAKSrDBpfMYALW/OEh1VJcCyno2mNRECYlPXzAwgT20V/W5qEzZs2NhmWrz/vf8u65x4zWtuZ+LhIMsTU1bFZFq4BqbT0ax0r339e05ec7KtRFtjIWhVO+T0Dz555wP/+3M+oAIoAmOa5mLTTGIkgqIsbd6/OCnO9NciRAa+agDtR2oJkAiEIGTs5uZ6NZv1el0RiTEAQu0ccQYosQl33fUr933ts6dP3/C+975FoicGBNy+cFEizqpqVpZFUW2euOn0mTMqjoiYGaJOZ42xPR9pMhkVxSwEQJQonsgAKJMR0PX19cY51amE1sL2V74PZW6HctLt8CISI6hQnnYIaTjsqcJ4PBkOB8SAqDHGTqf7B7939+/8zm+dueH5SL3zF84bY0UFVMqicIJFUZSzWTkbAVVpKgRCBIjqnEuzCNhUs3I2mznvptNadcyUEHOWdkSE2cQYm8apoggorcA3rwagef4sKCJRBNgIBFVjDB8/fgxQCAEMJIbP3n//r773jtPX3/zP3/Yh5swY7ORZFAEwH/iPb/va1/64CaFpmqZyvdycOG4tISEBooidVaFuuqpSOwhBogICIGrTVE3tQpQQfZqmo9F0Y70nogrKtLJgf9gwL6KiAKBN02xvT4hNJ82SxBpj806GKDFI1ci7/tVbtnYvvPvffHzj2BnndrMsURCM5D35RqtZ5byv66quK9FgjHZSawzPLYUQALwPABCjDIdZU9fW2DRLvZO6dgpS13WeZ7z4yQqToVVokGqMAgAhhG6WFeV4wIOqruumMgZ63WN3vu9f3PeVz7/lbXfe/MJbGr+1udlhQiT1XqsZGwoiERRANEQBVQARjcQUQqjrWhQBE5B51EeEPM+tsSKSJmysb1wdY0ySTGIZY0REYFxuq1w1gFpPqICiEqIqmMEgiYLdXj8EEY1BJOHhf/34f/7QB371lpfd+qpXvzHEyclret2cLRMAlI3vpmnVjGblyLtZiD4ExxiJmE1AVIkBAEV0NqtCmAFAjI0hCKJISMgxQpJam1gFcFUTfIyArFHEECEAtstjOETGeDgTUxBRERWJqpLnSZKse+/KcrZ+bC3GEIKcP7f9s6+7/Wd++o2G0RqXGCOxVrLGMIJToB//2z93zbUveN6NL/GvelOMs43jJ6whZgYAUcny1MUmRveyv/X31teve+73v3Bra5JkTlW982nWAQUEBERmTVKMIsv8bCVu+hmXXJel1dYxey/eh6ZxVdNs7QZrNpLEMhMxAmhTBwhU" 00259 "eDMa7wxz7PWstY21lCZp0zREtDtGHzuzWspxk3XTTm7zxB8/Dnlm5gOBzup44byrfVo3ShAsl3mPCCnG2FaL8jzzPjDJcDAb9oeJpcRaZiZCxMPuxj4zDbp0N1nb" 00260 "/wQRReRQz8qwneVZr9dLOQHQKN4FCUFOHM97nTSxIU1SQxo8MkdgyDLV2Yyk6fWU2Tvv+r0OmVxViAgBQwQmO1hT2fWMIc0MU56kxrkmhIgISnFnvBMa6XZ0Y70bJBplFQReDaPmUKt5XToiRRFNU5zNJiJxe3tre3u7KIrZrDQGT2z0+13D7NfWkk996g/f855f3tiwSWKtMYNB3uvRqVPZ5qY9ccKcvKY/HOS+abwPTdOUsxJQAcQa3Niwv/4f7rh48dGN4700tb1+59ix9SxNsyzPsk6ScJoRES+LVIvjsLKiehBgjJLmJkmwqmaIEKOv6zgcDpxzdTUeDrKsY/MMyun2nz14v4+QWOyvZ9NCT5ywk0kwhGxoPK0Iw/qgU85ciLC+1i3ruH7c7OzG8U519ptfrsvbmAFJCEkAu71OFLVJXnG0SSNRwPJyi2QlnKJnpkFPN+aWyoLzaSARcmIBxK2tHcvzPM1s42rF2Ol0vnX/N19766t+6idv/dR//7RNekUDX/of99766p/+qZff8uZ/+iZj+MMf/M3f/ujdx453Bv38Xe+648v33hsovPGNb3jlT7z0H/z9n/3zBx6KkhCa7dHk4siNp6WPMai4GIJGwKDqDBgFBMW2ugmEK/HShzAxvfStqnY6eaebpanpdPJer9fr9YbD9aIs3vGOn7/x+T/0mte99fOf+0JZlI88svvuf/3OW156653v/y+TIv7Ld75z89RzP/yh3woOzn774XvuuefMDX/17W+9vdM99f67fv+vv/jl7/iltzS1AyARcc4XRbmzuzuZTMbjcTWrfFNp8IbpcvAwnrGTXr7uV19cfGoMV43b2dkarh/LbYaIaUbfeejPLfX/2Vt/hTJ8/W1vfujBb9x371cfefTs2Qfvu/9bX5lOii//yeff8E/eXjf1ffc++KUvfvpFP/gSH8yXvvCZH/nRV9z1n37ZED7y8NlvfPMBm6RENktTiUmU2B5NMfFVsTHs4JxedVUBgqfxTlodVkREQiREJNVojbm4s9sd9keTOs+zaRUn4wJIHYhR7vWG1iaN4zw//tznvnQ8Lq6/nl70opcxnXzRi3/8Yx/78MMPPvCKV77uyScKQnvt6RcgZszZbT//4sHGZhN8mvY6HZOmawIymkzzJCsnjliSNBVtAzoSLXahV+GEDluTnk8KkJCIkEANwfra4PxT57Z3dra2tqbj0ckzN06K3Y/d/WtPPPrgPb97dzGbfP+NNyMZSjqv+pk31BL/9IGvKcdXvOLnPvHxDzx57tGbnv+jtjvcOHndaLv4O3/39Zsbx//kc/cQpDF4xBgjxKigOuh1DSFIHAyGCsDMuIBowf68Ghr0NHSWirTIxwgBVQyhihiDKupjmfU2b//FX/vNf3/Hpz/1yTPPu3FtfXNtbfNNb373Rz5y529/+D3Dwdrtb/+3onLTTT/0kh9+5clrT2+evLZ201/4xbt+49d/6Rfe/HsR4bZ/9M5ud2392HUmSceTqTWapMY19Xh31xhuw8RyDojz97CKKPbMMuk9hgIAqMYoPkgIsWl81YSmcXXtnYshiCiUVd3t9fP+cGen9JK6Wpxz3W7X+4CIAJQwjXYvbhw/Nhx0ETUEr5CIRiZFgBDZC168uGWTZH1tfXd0AQkG/Rx02s3T3e1t72O/lyeGU8M2NVlms4ST1GRpkjCzQaI5P+SqFcwAgWhu98zExMzCDDEqqnbSrKkbonrQ607KWQOBGVRdmggzxhgQ0sFaDzE0bjwcDijgaLzT7XXSxDCR81HqsLm5joiI/sRG3/k6S7GqtWncrCz7vV7CbFqaDBG1eLTri7lSH1p/njVAC2p3a1ZKRERMFJmZSIkQBFTVIJbTadaV4SDLsgBIWZ4TikosyzKx1DQ+SQkBkDyA63Sp3zej8e7aYNhN" 00261 "E05w0aQACJTHFBGYOuPR7nA4yJIENBIxMzK1xwKhuXmtAKFD7WoAzkMYEREJMzMLMRCRkIAAgaYWm2rqfTUc9m3CXqssyQhtt7NujPU+IAKSVFWVZMYIGAOdLDWG" 00262 "i2ICACFERMzzXCCyyqwoZ0XFDIYYRdkYYiIGNkgEhpEJiYB4CdBhI9khlxoICETErMzIBjkSMxsDqggiURRUEyYf/YXz59IsTfJMYrDWpmnqQ8VMbAwADQd9UW2aRlUUYlFOo8S6rtsklFgIzWh7R6MYTgAEoR2XmdtXNmwMG95nYiuRw0axNlwwozEkEcPcD0GMGgnaOiGAGkKTdmdlHZq65BJIh8Oh840PfmNjw9qWA62EqBrTNEGisiyzPGFIxuPx1JfqAwJYNqCKCIw0d3zMhtttJSbGuYXNHZAeXomeGUBLYmXLgSYijUogimCIhMgyBKMqGiOqIiIHRVBREUTpdVIVqYMGH3cu7HgNaZ5d3NoZrq0577zz62trTV1bm0gUDca5xte7KgKItuV3LsYlanUHmckaNoaMIUJc1IBWoz7PUoP2ZQZKBAJEIkjEzMaiVVElEdMypZhBZP4rEQGANElSRBWJIhrBVc1Ove28Q8RYhaIsOnmH0bZfZgbLRkXaaN2GLGY2xliLxpJN2FhmA8xIzEiEuMo1x7MBaLHawAVNGZCQW1IUoFVVAYmgiqpxUVTbIxPh3O7AkgGANLeimpqEEKPIsDdUEcaIBubETpnT69oYBQDMxIaY0RhjDVvDlts8A1ur3zfJw3qjFVDw2m4mImKGKGqYhUEtAMRFJQQAQaIsd0HaQonu8Z3mbHsCBInYEvD2XRsSIszTHWPYWDaGrGVrrbXGEhkmg0SkiwxoZezdZ5sHPb0w1IZ7JmajAmqVFFnm21OMqAARkVQgxgiw7Kab3+OFz8BFjaldNMByqbe0LGZmA3PjssYYYoPGEDMiQbtiRpx35V3ltdg+QwNEIAAlMECw10CICIEQiABAJUIUbQmtqm2nwZ6zWNxwwkV/Ai5Aovk6GA2zMcSGbELWmsQYYykxzKZNf9r4vr9n76omirAvnC3nxAjAtOCLIyoQARIgYowaYqQAIiBRFz0sqqD7am+I+5WH2hxiniAbg8aSNdZYtoYSIsNsGKmNa4gAArrSGHZ4H7QPo7YnDIgVgBRVERNgDG3sjRikLYSKgJCIggrqJYRLFNhvVy0TcZEQGottOmgNW0OGqTUuwqU54cpb7lZCwZt7IiKAFhhSQEbECNrmJoTIJMIUAkdZCqqAzjf3W19Ne9pD86yPGYnJEBlLxpBhYwwZg0xA7TGvbyxnskom8Ep40stZKQEqoKIAKBChUSRAAgJgJolqWH2MIlFUVEi17VFddnjMzYsIFot0ZAZitMxsyDAaZDZIDLioJQAoos490F9OEmcr863QFhqNhIotNoREFEVjUCIlQVGKIhpx2ciyNLNFgbJ1K+16AucHATOaeWFjrzxGcwtfrfNZNUB7ffCgiECttpMitMUPYQJBiCRRMLaaIyAK836fvS2kdqt9bmI8RwqJgQiZieep6Tx3aksul6+xdJUatLyBrZlw6ywVkQCh7elSZozCoqqCCu0eP+3xefZyn7k/MqhtcjNXJ8KFNQG2vAVcphp7r6u8qMuB/b7esbYFF1RVZb5vFURk7nsIVEV0uaEluFeraAFibJkuS+Rg8bnuux8rYwNdIYBgX/chwDy2qMCCM4xzy4I2c95rFtzPN1jokS42BeZnJmrLKC0ul8XvXAmAYMlZaiGY3+TWHWP7CIa9msBfmALCHJe9dcjyKRZIl7SqfI+1hV+CUXu5oHvE8z2a9SJz0Zb7vO/JHrjvKRSLh5vsQ2+Oy+Wb+JUC6LuAden47Wf/HxO9Igb1Xca9ks8PWjjvxXV+F7X4f/12/sUrC9KVfsDSpcPtIbX/sq+aQf1FubpPoPoekKOHvB0gRwAdIEcAHSBHAB0gRwAdIEcAHSBHAB0gRwAdIEcAHSBHAB0gRwAdIP8HqHccFP4Rq4QAAAAASUVORK5CYII="; 00263 Send64(str64, "image/png"); 00264 } 00265 else 00266 if (GetUri() == "/" || GetUri() == "/cgi-bin/exec") 00267 { 00268 char tmpname[1000]; 00269 00270 *tmpname = 0; 00271 // prepare cgi run - open output file, set environment variables 00272 // query_string 00273 // request_method 00274 // http_cookie 00275 // content-type 00276 // content-length 00277 SetStatus("200"); 00278 SetStatusText("OK"); 00279 if (GetMethod() == "GET") 00280 { 00281 setenv("QUERY_STRING", GetQueryString().c_str(), 1); 00282 } 00283 setenv("REQUEST_METHOD", GetMethod().c_str(), 1); 00284 setenv("HTTP_COOKIE", m_http_cookie.c_str(), 1); 00285 setenv("CONTENT_TYPE", m_content_type.c_str(), 1); 00286 setenv("CONTENT_LENGTH", m_content_length_str.c_str(), 1); 00287 #ifdef WIN32 00288 { 00289 char slask[1000]; 00290 if (GetMethod() == "GET") 00291 { 00292 sprintf(slask,"QUERY_STRING=%s", GetQueryString().c_str()); 00293 _putenv(slask); 00294 } 00295 sprintf(slask,"REQUEST_METHOD=%s", GetMethod().c_str()); 00296 _putenv(slask); 00297 sprintf(slask,"HTTP_COOKIE=%s", m_http_cookie.c_str()); 00298 _putenv(slask); 00299 sprintf(slask,"CONTENT_TYPE=%s", m_content_type.c_str()); 00300 _putenv(slask); 00301 sprintf(slask,"CONTENT_LENGTH=%s", m_content_length_str.c_str()); 00302 _putenv(slask); 00303 } 00304 #endif 00305 // open output file 00306 sprintf(tmpname,"%d.response",m_request_id); 00307 FILE *out = fopen(tmpname,"wb"); // 'wb' to write binary files 00308 header(out, 200, "OK"); 00309 g_pSocket = this; // dbd.g_pSocket 00310 run(static_cast<FinderHandler&>(Handler()).GetDatabase(), out, m_tmpname); 00311 fclose(out); 00312 00313 // use dup2 to redirect stdout to file 00314 // just check how to do it on win32 also... 00315 00316 // send page to client 00317 if (*tmpname) 00318 { 00319 FILE *out; 00320 if ((out = fopen(tmpname,"rb")) != NULL) 00321 { 00322 char slask[2000]; 00323 int n = fread(slask,1,2000,out); 00324 while (n > 0) 00325 { 00326 SendBuf(slask, n); 00327 // 00328 n = fread(slask,1,2000,out); 00329 } 00330 fclose(out); 00331 } 00332 } 00333 00334 // clean up 00335 if (m_tmpname.size()) 00336 { 00337 unlink(m_tmpname.c_str()); // request 00338 } 00339 if (*tmpname) 00340 { 00341 unlink(tmpname); // response 00342 } 00343 00344 } // if ("/" || "/cgi-bin/exec") 00345 else 00346 { 00347 // 404 00348 SetStatus("404"); 00349 SetStatusText("Not Found"); 00350 SendResponse(); 00351 Send("<html><body><h1>404 Not Found</h1></body></html>"); 00352 } 00353 00354 // always close 00355 SetCloseAndDelete(); 00356 00357 // log 00358 { 00359 FILE *fil = fopen("access_log","at"); 00360 if (!fil) 00361 fil = fopen("access_log","wt"); 00362 fprintf(fil,"%s %s\n",GetStatus().c_str(),GetUrl().c_str()); 00363 fclose(fil); 00364 } 00365 }

const std::string & ExecSocket::GetHttpDate  ) 
 

Definition at line 368 of file ExecSocket.cpp.

References m_http_date.

Referenced by header(), and OnHeaderComplete().

00369 { 00370 return m_http_date; 00371 }

void ExecSocket::header FILE *  ,
int  ,
const std::string & 
[private]
 

Definition at line 119 of file ExecSocket.cpp.

References GetHttpDate(), and out.

00120 { 00121 fprintf(out, "HTTP/1.1 %d %s\n", status, text.c_str()); //200 OK\n"); 00122 fprintf(out, "Date: %s\n", GetHttpDate().c_str()); 00123 fprintf(out, "Server: www.dbdesigner.net/1.0\n"); //%s\n",_VERSION); 00124 fprintf(out, "Connection: close\n"); 00125 }

void ExecSocket::OnData const char *  ,
size_t 
 

Definition at line 99 of file ExecSocket.cpp.

References Exec(), m_content_length, m_file, m_received, and OnData().

Referenced by OnData().

00100 { 00101 if (m_file) 00102 { 00103 fwrite(p,1,l,m_file); 00104 } 00105 m_received += l; 00106 if (m_received >= m_content_length && m_content_length) 00107 { 00108 // all done 00109 if (m_file) 00110 { 00111 fclose(m_file); 00112 m_file = NULL; 00113 } 00114 Exec(); 00115 } 00116 }

void ExecSocket::OnFirst  ) 
 

Definition at line 41 of file ExecSocket.cpp.

00042 { 00043 // printf("Request: %s %s %s\n",GetMethod().c_str(),GetUrl().c_str(),GetHttpVersion().c_str()); 00044 }

void ExecSocket::OnHeader const std::string &  ,
const std::string & 
 

Definition at line 47 of file ExecSocket.cpp.

References m_content_length, m_content_length_str, m_content_type, m_http_cookie, m_if_modified_since, and OnHeader().

Referenced by OnHeader().

00048 { 00049 if (!strcasecmp(key.c_str(),"content-length")) 00050 { 00051 m_content_length = atoi(val.c_str()); 00052 m_content_length_str = val; 00053 } 00054 else 00055 if (!strcasecmp(key.c_str(),"cookie")) 00056 { 00057 m_http_cookie = val; 00058 } 00059 else 00060 if (!strcasecmp(key.c_str(),"content-type")) 00061 { 00062 m_content_type = val; 00063 } 00064 else 00065 if (!strcasecmp(key.c_str(),"if-modified-since")) 00066 { 00067 m_if_modified_since = val; 00068 } 00069 }

void ExecSocket::OnHeaderComplete  ) 
 

Definition at line 72 of file ExecSocket.cpp.

References Exec(), GetHttpDate(), m_file, m_request_id, and m_tmpname.

00073 { 00074 AddResponseHeader("Date", GetHttpDate()); 00075 AddResponseHeader("Server", "www.dbdesigner.net/1.0"); //%s", _VERSION); 00076 AddResponseHeader("Connection", "close"); 00077 00078 if (GetMethod() == "POST") 00079 { 00080 char tmpname[1000]; 00081 sprintf(tmpname,"%d.request",m_request_id); 00082 m_file = fopen(tmpname,"wb"); 00083 m_tmpname = tmpname; 00084 } 00085 else 00086 if (GetMethod() == "GET") 00087 { 00088 Exec(); 00089 } 00090 else 00091 { 00092 SetStatus("405"); 00093 SetStatusText("Method not allowed"); 00094 SendResponse(); 00095 } 00096 }

void ExecSocket::Send64 const std::string &  str64,
const std::string &  type
[private]
 

Definition at line 128 of file ExecSocket.cpp.

References m_if_modified_since, and Send64().

Referenced by Exec(), and Send64().

00129 { 00130 cgi::Base64 bb; 00131 char slask[100]; 00132 00133 if (!strcasecmp(static_cast<FinderHandler&>(Handler()).GetStart().c_str(), 00134 m_if_modified_since.c_str())) 00135 { 00136 SetStatus("304"); 00137 SetStatusText("Not Modified"); 00138 SendResponse(); 00139 } 00140 else 00141 { 00142 size_t len = bb.decode_length(str64); 00143 char *buf = new char[len]; 00144 00145 SetStatus("200"); 00146 SetStatusText("OK"); 00147 00148 sprintf(slask,"%d",len); 00149 AddResponseHeader("Content-length", slask ); 00150 AddResponseHeader("Content-type", type.c_str() ); 00151 AddResponseHeader("Last-modified", static_cast<FinderHandler&>(Handler()).GetStart()); 00152 SendResponse(); 00153 00154 bb.decode_to_buffer(str64, buf, len); 00155 SendBuf(buf, len); 00156 delete[] buf; 00157 } 00158 }


Member Data Documentation

int ExecSocket::m_content_length [private]
 

Definition at line 26 of file ExecSocket.h.

Referenced by OnData(), and OnHeader().

std::string ExecSocket::m_content_length_str [private]
 

Definition at line 35 of file ExecSocket.h.

Referenced by Exec(), and OnHeader().

std::string ExecSocket::m_content_type [private]
 

Definition at line 34 of file ExecSocket.h.

Referenced by Exec(), and OnHeader().

FILE* ExecSocket::m_file [private]
 

Definition at line 28 of file ExecSocket.h.

Referenced by OnData(), OnHeaderComplete(), and ~ExecSocket().

std::string ExecSocket::m_http_cookie [private]
 

Definition at line 33 of file ExecSocket.h.

Referenced by Exec(), and OnHeader().

std::string ExecSocket::m_http_date [private]
 

Definition at line 37 of file ExecSocket.h.

Referenced by ExecSocket(), and GetHttpDate().

std::string ExecSocket::m_if_modified_since [private]
 

Definition at line 36 of file ExecSocket.h.

Referenced by OnHeader(), and Send64().

int ExecSocket::m_received [private]
 

Definition at line 29 of file ExecSocket.h.

Referenced by OnData().

int ExecSocket::m_request_count = 0 [static, private]
 

Definition at line 16 of file ExecSocket.cpp.

int ExecSocket::m_request_id [private]
 

Definition at line 31 of file ExecSocket.h.

Referenced by Exec(), and OnHeaderComplete().

std::string ExecSocket::m_tmpname [private]
 

Definition at line 30 of file ExecSocket.h.

Referenced by Exec(), and OnHeaderComplete().


The documentation for this class was generated from the following files:
Generated on Thu Feb 10 22:42:40 2005 for Distributed URL Classification Tool by doxygen 1.3.7