鉴于此
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并且能够在登录过程中访问,请建议我如何操作。感谢
答案 0 :(得分:0)
问题终于解决了。在telnetd中有许多调用,在哪些环境中重新设置。而startslave是一个函数,其中tty被创建并且登录过程被分叉。所以,在startslave中做了getpeername(0,(struct sockaddr *)& from,& fromlen)并在分配登录proc之前添加了env vars。现在可以使用变量。