如何在telnetd中设置环境变量并在登录时访问它

时间:2012-11-26 09:29:03

标签: telnet

鉴于此

  

telnetd通过为a分配Telnet伪终端设备来运行   客户端,然后创建一个登录进程,具有从属端   Telnet伪终端为stdin,stdout和stderr。的telnetd   操纵Telnet伪终端的主端,   实现TELNET协议,并在之间传递字符   客户端和登录过程。

我试图在登录过程中获取远程主机的IP地址和端口号,一旦建立telnet连接并验证用户。

在getpeername成功后的telnetd main()中我添加了REMOTE_HOST和REMOTE_PORT的setenv 并尝试在登录过程中访问这些变量。但是我无法在login.c中访问这些env变种。

我的问题太具体了但是如果有人已经尝试在telnetd中添加env var并且能够在登录过程中访问,请建议我如何操作。感谢

1 个答案:

答案 0 :(得分:0)

问题终于解决了。在telnetd中有许多调用,在哪些环境中重新设置。而startslave是一个函数,其中tty被创建并且登录过程被分叉。所以,在startslave中做了getpeername(0,(struct sockaddr *)& from,& fromlen)并在分配登录proc之前添加了env vars。现在可以使用变量。