BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / bbs-man-dev / #8700同步于 1 周前
BBSMan_Dev机器人发帖

请问关于最大登录用户数的问题

Gery.
1 周前镜像同步28 回复
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 最近在web登录的时候,在晚上人多的时候就会出现 系统在线人数已达上限,请稍后再访问本站 这种提示 而这时候上站的注册用户是2400,昨天也是这种情况 但是代码中没搜索到有2400这样的定义限制 看了下登录的代码,流程是这样的: 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 { ...... 到这就没有思路了,没发现是什么预定义的常量限制了在线注册用户的数量,正常理解 应该是在什么地方定义了的 请问应该修改哪里来增加这个限制呢?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
GMoto机器人#1 · 2008/12/29
在这里顶一个……站内顶 【 在 Gery@newsmth.net-SPAM.no (Gery) 的大作中提到: 】 : 最近在web登录的时候,在晚上人多的时候就会出现 : 系统在线人数已达上限,请稍后再访问本站 : 这种提示 : ...................
atppp.机器人#2 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 你们有 term 登录用户么,多么 【 在 Gery (Gery) 的大作中提到: 】 : 最近在web登录的时候,在晚上人多的时候就会出现 : 系统在线人数已达上限,请稍后再访问本站 : 这种提示 : ...................
Gery.机器人#3 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 有term用户,但是不是很多,10%左右 这个时候term用户也登录不上,显示登录画面后,输入用户名密码, 然后就卡住20秒,没有任何提示,然后断线 我看代码里有两处Net_Sleep(20)然后exit(-1),但这两处睡眠之前都 会显示提示的,我们现在什么提示也没有 【 在 atppp (Big Mouse) 的大作中提到: 】 : 你们有 term 登录用户么,多么
jiangjun2000机器人#4 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 没有提示是因为没有refresh吧 你在显示后面加个refresh()试试 【 在 Gery (Gery) 的大作中提到: 】 : 有term用户,但是不是很多,10%左右 : 这个时候term用户也登录不上,显示登录画面后,输入用户名密码, : 然后就卡住20秒,没有任何提示,然后断线 : ...................
Gery.机器人#5 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH src/newmain_single.c u_enter函数中 getSession()->utmpent = getnewutmpent(&uinfo, 0); if (getSession()->utmpent == -1) { prints("人数已满,无法分配用户条目!\n"); oflush(); Net_Sleep(20); exit(-1); } src/newmain_single.c中 login_query函数中 curr_login_num = get_utmp_number(); if (curr_login_num >= MAXACTIVE) { ansimore("etc/loginfull", false); oflush(); Net_Sleep(20); exit(1); } 这两处都flush了吧 按照追踪www登录的情况,term下应该是在第一个net_sleep的地方睡眠退出的 【 在 jiangjun2000 (%d) 的大作中提到: 】 : 没有提示是因为没有refresh吧 : 你在显示后面加个refresh()试试
sxdxsimple.机器人#6 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 代码改多了哇? 要不升级看看? 【 在 Gery (Gery) 的大作中提到: 】 : src/newmain_single.c u_enter函数中 : getSession()->utmpent = getnewutmpent(&uinfo, 0); : if (getSession()->utmpent == -1) { : ...................
hyu35.机器人#7 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 貌似咱们很久没升级了 【 在 Gery (Gery) 的大作中提到: 】 : src/newmain_single.c u_enter函数中 : getSession()->utmpent = getnewutmpent(&uinfo, 0); : if (getSession()->utmpent == -1) { : ...................
Gery.机器人#8 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 代码是07年7月的,改了一些,也不算少,不过底层基础的东西都没改 升级……合并起来很麻烦…… 【 在 sxdxsimple (雾里龙虾) 的大作中提到: 】 : 代码改多了哇? : 要不升级看看?
hyu35.机器人#9 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 哦。这个问题好诡异呀好诡异啊好诡异啊好诡异啊 【 在 Gery (Gery) 的大作中提到: 】 : 代码是07年7月的,改了一些,也不算少,不过底层基础的东西都没改 : 升级……合并起来很麻烦……