--- innwebd/base.cpp 2004/07/04 06:45:23 1.4 +++ innwebd/base.cpp 2004/08/28 15:38:42 1.9 @@ -36,7 +36,7 @@ base::~base(void) delete (this->GetThreadPool()); } -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[]) { try{ if (in_str != NULL) @@ -276,15 +276,15 @@ int base::bbs_post(const CString& head, this->Db.ExecuteSQL(sql); rid = this->last_insert_id(); - //Send notification message + //Send notication message - msg_content.Format("[hi]SYS_R_Reply_Article[/hide]" + msg_content.Format("[hide]SYS_R_Reply_Article[/hide]" "有人回复了您所发表的文章,快来[url recommend_view.php?id=%ld" "]看看[/url]《%s》吧!\n",rid,addslashes(subject)); RS.GetFieldValue("UID",dbVar,SQL_C_SLONG); - sql.Format("insert into bbs_msg(fromUID,toUID,ntent,send_dt,send_ip)" - " valulues(%ld,%ld,'%s',now(),'%s')", + sql.Format("insert into bbs_msg(fromUID,toUID,content,send_dt,send_ip)" + " values(%ld,%ld,'%s',now(),'%s')", this->innd_uid,dbVar.m_lVal,addslashes(msg_content),this->hostaddr); this->Db.ExecuteSQL(sql); } @@ -292,7 +292,7 @@ int base::bbs_post(const CString& head, RS.Close(); } - sql.Format("insert delayed into innd_logfile(AID,art_id,msg_id,op) values" + sql.Format("insert delayed into innd_log(AID,art_id,msg_id,op) values" "(%ld,%ld,'%s','I')", aid,art_id,addslashes(msg_id)); this->Db.ExecuteSQL(sql); @@ -304,7 +304,9 @@ int base::bbs_post(const CString& head, } catch(CException* e) { - syslog << logfile::log_head << "Error in bbs_post()" << endl; + char strErrMsg[1024]; + e->GetErrorMessage(strErrMsg,1024); + syslog << logfile::log_head << "Error in bbs_post() [" << strErrMsg << "]" << endl; e->Delete(); return -1; } @@ -389,14 +391,16 @@ int base::bbs_delete(long id) this->Db.ExecuteSQL(sql); } - sql.Format("update innd_logfile set cancel=1 where AID=%ld",id); + sql.Format("update innd_log set cancel=1 where AID=%ld",id); this->Db.ExecuteSQL(sql); } RS.Close(); } catch(CException* e) { - syslog << logfile::log_head << "Getting article error in bbs_delete()" << endl; + char strErrMsg[1024]; + e->GetErrorMessage(strErrMsg,1024); + syslog << logfile::log_head << "Getting article error in bbs_delete() [" << strErrMsg << "]" << endl; e->Delete(); return -1; } @@ -426,7 +430,7 @@ int base::s_send(const char* in_str, boo return 0; } -int base::s_receive(CString& out_str, const char* end_str) +int base::s_receive(CString& out_str, char end_str[]) { char buf_str[2048]; int buf_read,total_read; @@ -445,6 +449,12 @@ int base::s_receive(CString& out_str, co out_str += buf_str; if (out_str.Right((int)strlen(end_str)) == end_str) break; + //different line-end symbol in different OS + if (strcmp(end_str,"\r") == 0) + { + if (out_str.Right(2) == "\r\n") + break; + } } } catch(CException* e) @@ -459,14 +469,16 @@ int base::s_receive(CString& out_str, co int base::begin(void) { + HANDLE hThread; ULONG ulThreadId; unsigned int time_wait = 0; if (!this->IsShutdown()) return 1; - 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)) { + CloseHandle(hThread); syslog << logfile::log_head << "Create thread ... OK" << endl; } else