这里主要是针对Linux 2.2.X的内核中有关unix98 pts支持而言的.
Linux 2.2.X的内核支持了UNIX98的ptstty方式,可以到2048个tty.
但是传统的in.zbbsd却无法直接使用,原因是in.zbbsd中对
pty的搜索使用了hardcode的方法搜索/dev/ptyXX.在新的pts方式中
显然无法使用.
这方面的资料非常少,faq几乎没有,所以我只好到处看telnetd的source
code.最后发现在这种情况下可以用openpty()来打开pty,tty,其他似乎
都不需要改变.
修改方法是:,将原先in.zbbsd.c中的get_pty函数改为:
int
get_tty()
{
int m,s;
if (openpty(&m, &s, line, NULL, NULL)){
fatal(net, "抱歉,客满了,请稍后再来。(visit)");
return -1;
};
pty = m;
return s;
}
就可以了.
我只是在自己试验的redhat 6.0+fb2.6上初步试验成功,最后的patch
在运行的bbs上成功后会给出.
--
FROM xixi.hehe.who.a