Linux 版 (精华区)
发信人: hbt (书生21), 信区: Linux
标 题: 环顾四方的IP问题
发信站: 紫 丁 香 (Wed Dec 9 11:28:49 1998), 转信
发信人: Leeward (1% completed★蝗虫街), 信区: BBSMan_Dev
标 题: Re: 终于开版了!高兴!好多问题都给憋坏了.:)
发信站: BBS 水木清华站 (Wed Dec 9 02:59:35 1998)
【 在 hbt (书生21) 的大作中提到: 】
: 先提一个问题吧:
: redhat5.1上装firebird2.66,在环顾四方里看看大家,都是来自于我的机器名,
: 是我的设置有问题还是版本有问题?
多半是你的BBS或者Linux的设定问题。
而且多半是系统的 utmp 文件没有和你的 BBS 的 bbsrf.c 正确相连。
当读取用户 IP/域名失败时,bbsrf.c 就使用你的机器名来替代。
具体参见 bbsrf.c 的 main 函数,里面大致有这么一段:
if (whee) {
char ttybuf[ 16 ];
char *tp;
RF_DEBUG("Before ttyname (whee)....");
tp = ttyname( 0 );
strcpy( ttybuf,(tp==NULL) ? "/dev/ttyp0" : tp );
if (whee->ut_host[0]) strncpy(hid, whee->ut_host, 16) ;
else
#ifdef SYSV
{
struct utsname name;
if (uname( &name ) >= 0) strcpy(hid, name.nodename);
else strcpy(hid, "localhost");
}
#else
gethostname(hid, 16);
#endif
hid[16] = '\0' ;
你的代码是走到了 gethostname(hid, 16); 这一句了吧。
这个问题我以前也遇到过,不改动代码的话,我记得我原来是在 RedHat 下这么做:
ln -sf /var/run/utmp /etc/utmp
你可以试试。ln 之后不妨 reboot 一下机器。
PS: 在 ln 之前,建议先看一下以及备份原来的 /etc/utmp 。
--
--
书 中 自 有 黄 金 屋 ,
网 络 更 胜 千 本 书 .
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: hs8.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.237毫秒