--- innwebd/bbsd.cpp 2004/07/03 05:34:51 1.2 +++ innwebd/bbsd.cpp 2008/04/11 17:14:49 1.9 @@ -1,14 +1,10 @@ /*******************************************************/ /* */ -/* LeafOK Innd */ -/* Copyright (C) LeafOK.com, 2003-2004 */ +/* LeafOK Innbbsd */ /* */ -/* Programmed by Leaf */ -/* E-mail:leaf@leafok.com QQ:6049044 */ +/* Copyright (C) LeafOK.com, 2003-2008 */ /* */ -/* http://bbs.leafok.com */ -/* http://bbs.leafok.net */ -/* http://bbs.fenglin.info */ +/* http://www.leafok.com */ /* */ /*******************************************************/ @@ -39,7 +35,9 @@ int bbsd::Accept(void) try { u_online = 0; - sql = "select SID as cc from user_online group by SID"; + sql = "select SID as cc from user_online where current_action not in" + " ('max_user_limit','max_ip_limit','max_session_limit','exit')" + " group by SID"; RS.Open(CRecordset::snapshot,sql,CRecordset::forwardOnly | CRecordset::readOnly); while(!RS.IsEOF()) { @@ -49,7 +47,9 @@ int bbsd::Accept(void) RS.Close(); u_anonymous = 0; - sql = "select SID as cc from user_online where UID=0 group by SID"; + sql = "select SID as cc from user_online where UID=0 and current_action not in" + " ('max_user_limit','max_ip_limit','max_session_limit','exit')" + " group by SID"; RS.Open(CRecordset::snapshot,sql,CRecordset::forwardOnly | CRecordset::readOnly); while(!RS.IsEOF()) { @@ -78,16 +78,20 @@ int bbsd::Accept(void) "注册用户数[\033[36m%ld\033[32m]\r\n" "\033[1;37m本站目前尚未开设telnet服务 请使用Web方式访问\r\n\r\n" "\033[1;32m http://%s \033[m\r\n", - this->innd_name,u_online,MAX_THREAD,u_anonymous,u_total, + this->innd_name,u_online,MAX_CLIENT,u_anonymous,u_total, this->innd_server,this->innd_server); this->s_send(out); while(!this->thread_terminate) { + this->GetParentThread()->GetThreadPool()->SetThreadStatus(GetCurrentThreadId(),thread_pool::S_WAITING); + if (this->s_receive(out) == 0) //Connection closed break; out.Trim(); + this->GetParentThread()->GetThreadPool()->SetThreadStatus(GetCurrentThreadId(),thread_pool::S_WORKING); + if (sscanf(out,"%20s",temp) ==1) cmd = strupr(temp); else @@ -108,7 +112,9 @@ int bbsd::Accept(void) } catch(CException* e) { - syslog << logfile::log_head << "Error in accept()" << endl; + char strErrMsg[1024]; + e->GetErrorMessage(strErrMsg,1024); + syslog << logfile::log_head << "Error in accept() [" << strErrMsg << "]" << endl; e->Delete(); return -1; } @@ -159,3 +165,8 @@ int bbsd::db_env_init(void) } return 0; } + +bool bbsd::check_priv(void) +{ + return true; +}