inetutils-1.5-2 test release

Charles Wilson cygwin@cwilson.fastmail.fm
Thu Apr 17 21:35:00 GMT 2008


Dr. Volker Zell wrote:

Fixed the ftp problem. It was an '=' vs. '==' transcription bug.

> If I try the old rsh against your new daemons it seems to work:
> 
> 06:53 PM [637]> /bin/rsh vzell@localhost pwd
> /home/vzell

Fixed this. The new version of rsh added a check to ensure that rsh.exe 
client had the setuid bit ON (that is, its getuid() is 'root'), and 
exited otherwise.  Obvious that's wrong on cygwin.  The only reason 
'/bin/rsh user@machine' (with no command) worked is because that is 
implmented as 'exec rlogin' BEFORE checking the setuid -- and the 
rlogin.exe client does not check that getuid() is 'root').

> and in /var/log/messages:
> 
> Mar 18 18:53:28 localhost rshd: PID 160: 2nd port not reserved 1022

This was a red herring. Just a cut-n-paste error; this log message 
belonged elsewhere in the code.

> Mar 18 18:53:51 localhost rshd: PID 2948: vzell@xp.de.oracle.com as vzell: cmd='pwd'

Normal log message when a rcmd/rexec/rsh fails. The failure was due to 
the setuid thing, above.

> By the way, for every telnet session I see the following two entries in
> /var/log/messages
> 
> Mar 18 18:02:11 localhost telnetd: PID 180: ttloop: retrying
> Mar 18 18:02:39 localhost telnetd: PID 180: child process 1180 exited: 0
> 
> Is this expected behaviour ?

Well, kinda. If your server is faster than your client...

//<<< function io_drain >>>//
  again:
   ncc = read (net, netibuf, sizeof netibuf);
   if (ncc < 0)
     {
       if (errno == EAGAIN)
         {
           syslog (LOG_INFO, "ttloop: retrying");
           goto again;
         }

It just means that you tried to read from an empty but non-blocking 
socket. I don't really like the way this is coded; it's a 100% busy 
loop. But, that's why it's called ttloop (which is the only caller of 
io_drain):

#define ttloop(c) while (c) io_drain ()

But ttloop is used rather sparingly -- for instance, while doing the 
handshaking to set up the login prompt. Most of the time telnetd sits in 
a select() loop.

--
Chuck

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list