最近在web登录的时候,在晚上人多的时候就会出现
系统在线人数已达上限,请稍后再访问本站
这种提示
而这时候上站的注册用户是2400,昨天也是这种情况
但是代码中没搜索到有2400这样的定义限制
搜索了以前的帖子,发现site.h中定义的MAXACTIVE是在线人数限制,但不知道是否包括
guest,而且这个我们设置的是8000,最高在线到过1w以上也没出现过这种情况
看了下登录的代码,流程是这样的:
logon.php中的doLogon函数调用bbs_wwwlogin,判断返回值为 1 的时候提示人数达到上限
bbs_wwwlogin是定义在bbs2www/phplib/phpbbs.session.c中的函数,它调用
www_user_login这个函数,并返回www_user_login的返回值,那也就是后者返回1的时候,
bbs_wwwlogin也返回1,才会出现人数达到上限的情况
www_user_login定义在bbs2www/lib/bbslib.c中,其中有这样一段代码
utmpent = getnewutmpent2(&ui,1);
if (utmpent == -1)
ret = 1;
也就是因为getnewutmpent2返回值是-1,所以造成人数达上限
继续跟踪getnewutmpent2这个函数,是定义在libBBS/utmp.c中的,而它一开头就是
int pos, i, ret;
......
pos = utmphead->hashhead[0] - 1;
if (pos == -1) {
ret = -1;
} else {
......
到这就没有思路了,没发现是什么预定义的常量限制了在线注册用户的数量,正常理解
应该是在什么地方定义了的
请问应该修改哪里来增加这个限制呢?
--
修改:Gery FROM 118.229.184.*
FROM 118.229.184.*