发现很多站点都有这个问题。
每个用户目录下的usermemo和.userdata文件,源码更新了,数据结构变了。
用telnet登陆一次会自动更新,web登陆不会自动更新。
看了一下代码,最后追踪到 libBBS/stuff.c 到 read_user_memo 函数。
如果返回值小于等于零就会出现这个问题。
可能是‘usermemo’之类的文件
if ((fp=fopen(fn,"w"))==NULL) return -1;
if ((fp = fopen(fn, "r+b")) == NULL) return -2;
if (size < sizeof(struct usermemo)) return 0;
文件不存在,权限不对,数据结构不对
还有一种可能返回值 -3
src/userinfo.c 里有一句,应该是当等于 0 的时候用 sethomefile 函数重写一下。
j=read_user_memo(urec->userid,&memo);
if (!(j<0)&&(j!=sizeof(struct usermemo)))
end_mmapfile(memo,sizeof(struct usermemo),-1);
if (j==sizeof(struct usermemo)) {
memcpy(&(memo->ud),&vdata,sizeof(struct userdata));
end_mmapfile(memo,sizeof(struct usermemo),-1);
} else {
sethomefile(buf,urec->userid,"usermemo");
unlink(buf);
}
php/ 下面的函数里没有类似的 ,所以web登陆的用户,这两个文件是不会更新的。。。
@fancyrabbit @jiangjun2000 @windinsn 处理一下吧
--
FROM 211.99.222.*