This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: inetutils-1.5-2 test release


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]