Linux 版 (精华区)

发信人: cucme (说你说我), 信区: Linux
标  题: 怎样使redhat 6下的fb266显示连线者IP.
发信站: 紫 丁 香 (Sun Aug 22 16:13:28 1999), 转信

发信人: RedGrid (红格子), 信区: BBSMan_Dev        
发信站: BBS 水木清华站 (Wed Aug 18 19:49:47 1999) 
 
呵呵,我试验出来乐! 
 
问题是Redhat 6.0的远程用户所用tty设备是'pts/n' (n=0,1,2,....), 
在bbsrf.c中,当一个远程用户连过来时,是用ttyname()来取得相应 
的设备文件全路径名称的,在Redhat 5.x中所取得的字符串一般是 
'/dev/ttyn',因此设备名称只要取最后一个‘/’后的字符串(即ttyn) 
即可。然后bbsrf程序将此设备名称与/var/run/utmp登录记录文件中 
的各条相应记录的用户登录设备名比较,找出相应的记录来。。。 
但是在Redhat 6.0中从ttyname()所得到的是'/dev/pts/n',因此如果 
仍然按照在5.x中的处理方法 
        tp = strrchr(tp , '/') + 1 ; 
tp所指的字符串就只能得到一个‘n'字符串(一个数字),将这个字符 
串与/var/run/utmp中的各用户登录记录中的设备名('pts/n')比较当然 
不可能找到匹配的记录来。 
 
修改的方法是在bbsrf.c中,定位到136行,即将: 
 
        tp = strrchr(tp , '/') + 1 ; 
 
改成: 
 
        tp = strchr(tp , '/') + 1 ; 
        tp = strchr(tp , '/') + 1 ; 
这样tp就指向了'pts/n',然后make,make install即可! 

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.243.5]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.111毫秒