| 36 |
delete (this->GetThreadPool()); |
delete (this->GetThreadPool()); |
| 37 |
} |
} |
| 38 |
|
|
| 39 |
int base::s_exec(const char* in_str, CString& out_str, const char* end_str) |
int base::s_exec(const char* in_str, CString& out_str, char end_str[]) |
| 40 |
{ |
{ |
| 41 |
try{ |
try{ |
| 42 |
if (in_str != NULL) |
if (in_str != NULL) |
| 236 |
this->Db.ExecuteSQL(sql); //7671 |
this->Db.ExecuteSQL(sql); //7671 |
| 237 |
|
|
| 238 |
//Add logfile |
//Add logfile |
| 239 |
sql.Format("insert delayed into bbs_article_op(AID,UID,type,op_dt,op_ip,complete)" |
sql.Format("insert delayed into bbs_article_op(AID,UID,type,op_dt,op_ip)" |
| 240 |
" values(%ld,%ld,'I',now(),'%s',1)", |
" values(%ld,%ld,'I',now(),'%s')", |
| 241 |
aid,this->innd_uid,this->hostaddr); |
aid,this->innd_uid,this->hostaddr); |
| 242 |
this->Db.ExecuteSQL(sql); |
this->Db.ExecuteSQL(sql); |
| 243 |
|
|
| 276 |
this->Db.ExecuteSQL(sql); |
this->Db.ExecuteSQL(sql); |
| 277 |
rid = this->last_insert_id(); |
rid = this->last_insert_id(); |
| 278 |
|
|
| 279 |
//Send notification message |
//Send notication message |
| 280 |
|
|
| 281 |
msg_content.Format("[hi]SYS_R_Reply_Article[/hide]" |
msg_content.Format("[hide]SYS_R_Reply_Article[/hide]" |
| 282 |
"有人回复了您所发表的文章,快来[url recommend_view.php?id=%ld" |
"有人回复了您所发表的文章,快来[url recommend_view.php?id=%ld" |
| 283 |
"]看看[/url]《%s》吧!\n",rid,addslashes(subject)); |
"]看看[/url]《%s》吧!\n",rid,addslashes(subject)); |
| 284 |
|
|
| 285 |
RS.GetFieldValue("UID",dbVar,SQL_C_SLONG); |
RS.GetFieldValue("UID",dbVar,SQL_C_SLONG); |
| 286 |
sql.Format("insert into bbs_msg(fromUID,toUID,ntent,send_dt,send_ip)" |
sql.Format("insert into bbs_msg(fromUID,toUID,content,send_dt,send_ip)" |
| 287 |
" valulues(%ld,%ld,'%s',now(),'%s')", |
" values(%ld,%ld,'%s',now(),'%s')", |
| 288 |
this->innd_uid,dbVar.m_lVal,addslashes(msg_content),this->hostaddr); |
this->innd_uid,dbVar.m_lVal,addslashes(msg_content),this->hostaddr); |
| 289 |
this->Db.ExecuteSQL(sql); |
this->Db.ExecuteSQL(sql); |
| 290 |
} |
} |
| 304 |
} |
} |
| 305 |
catch(CException* e) |
catch(CException* e) |
| 306 |
{ |
{ |
| 307 |
char strErrMsg[256]; |
char strErrMsg[1024]; |
| 308 |
e->GetErrorMessage(strErrMsg,256); |
e->GetErrorMessage(strErrMsg,1024); |
| 309 |
syslog << logfile::log_head << "Error in bbs_post() [" << strErrMsg << "]" << endl; |
syslog << logfile::log_head << "Error in bbs_post() [" << strErrMsg << "]" << endl; |
| 310 |
e->Delete(); |
e->Delete(); |
| 311 |
return -1; |
return -1; |
| 379 |
this->Db.ExecuteSQL(sql); |
this->Db.ExecuteSQL(sql); |
| 380 |
|
|
| 381 |
//Add logfile |
//Add logfile |
| 382 |
sql.Format("insert delayed into bbs_article_op(AID,UID,type,op_dt," |
sql.Format("insert delayed into bbs_article_op(AID,UID,type,op_dt,op_ip)" |
| 383 |
"op_ip,complete) values(%ld,%ld,'C',now(),'%s',1)", |
" values(%ld,%ld,'C',now(),'%s')", |
| 384 |
id,innd_uid,this->hostaddr); |
id,innd_uid,this->hostaddr); |
| 385 |
this->Db.ExecuteSQL(sql); |
this->Db.ExecuteSQL(sql); |
| 386 |
|
|
| 398 |
} |
} |
| 399 |
catch(CException* e) |
catch(CException* e) |
| 400 |
{ |
{ |
| 401 |
char strErrMsg[256]; |
char strErrMsg[1024]; |
| 402 |
e->GetErrorMessage(strErrMsg,256); |
e->GetErrorMessage(strErrMsg,1024); |
| 403 |
syslog << logfile::log_head << "Getting article error in bbs_delete() [" << strErrMsg << "]" << endl; |
syslog << logfile::log_head << "Getting article error in bbs_delete() [" << strErrMsg << "]" << endl; |
| 404 |
e->Delete(); |
e->Delete(); |
| 405 |
return -1; |
return -1; |
| 430 |
return 0; |
return 0; |
| 431 |
} |
} |
| 432 |
|
|
| 433 |
int base::s_receive(CString& out_str, const char* end_str) |
int base::s_receive(CString& out_str, char end_str[]) |
| 434 |
{ |
{ |
| 435 |
char buf_str[2048]; |
char buf_str[2048]; |
| 436 |
int buf_read,total_read; |
int buf_read,total_read; |
| 449 |
out_str += buf_str; |
out_str += buf_str; |
| 450 |
if (out_str.Right((int)strlen(end_str)) == end_str) |
if (out_str.Right((int)strlen(end_str)) == end_str) |
| 451 |
break; |
break; |
| 452 |
|
//different line-end symbol in different OS |
| 453 |
|
if (strcmp(end_str,"\r") == 0) |
| 454 |
|
{ |
| 455 |
|
if (out_str.Right(2) == "\r\n") |
| 456 |
|
break; |
| 457 |
|
} |
| 458 |
} |
} |
| 459 |
} |
} |
| 460 |
catch(CException* e) |
catch(CException* e) |
| 469 |
|
|
| 470 |
int base::begin(void) |
int base::begin(void) |
| 471 |
{ |
{ |
| 472 |
|
HANDLE hThread; |
| 473 |
ULONG ulThreadId; |
ULONG ulThreadId; |
| 474 |
unsigned int time_wait = 0; |
unsigned int time_wait = 0; |
| 475 |
|
|
| 476 |
if (!this->IsShutdown()) |
if (!this->IsShutdown()) |
| 477 |
return 1; |
return 1; |
| 478 |
|
|
| 479 |
if (this->hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)base::Thread,(LPVOID)this,0,&ulThreadId)) |
if (hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)base::Thread,(LPVOID)this,0,&ulThreadId)) |
| 480 |
{ |
{ |
| 481 |
|
CloseHandle(hThread); |
| 482 |
syslog << logfile::log_head << "Create thread ... OK" << endl; |
syslog << logfile::log_head << "Create thread ... OK" << endl; |
| 483 |
} |
} |
| 484 |
else |
else |