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毫秒