home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.os.linux
- Path: sparky!uunet!noc.near.net!mv!world!jrs
- From: jrs@world.std.com (Rick Sladkey)
- Subject: Re: rlogind & telnetd together act funny
- In-Reply-To: hns@regent.e-technik.tu-muenchen.dbp.de's message of Tue, 12 Jan 1993 08:26:52 GMT
- Message-ID: <JRS.93Jan12215238@lepton.world.std.com>
- Sender: jrs@world.std.com (Rick Sladkey)
- Organization: The Internet
- References: <1993Jan11.095603.6516@desire.wright.edu>
- <hns.726827212@regent.e-technik.tu-muenchen.de>
- Date: Wed, 13 Jan 1993 02:52:38 GMT
- Lines: 47
-
- >>>>> On 11 Jan 93 09:56:02 EST, gbothe@desire.wright.edu said:
-
- Greg> Well, I got rlogind finally working from the net-bin-0.2
- Greg> distribution. However, I have a small problem between telnetd
- Greg> and rlogind. The two seem to use the same port!! If I rlogin
- Greg> to my Linux machine, then telnet to my Linux machine, then log
- Greg> off the telnet session, my rlogin session logs off too!!!
- Greg> They both (for the first session) behave like they are using
- Greg> the same port (ex: ttyp0) for their communication.
-
- >>>>> On Tue, 12 Jan 1993 08:26:52 GMT,
- >>>>> hns@regent.e-technik.tu-muenchen.dbp.de (Henning Spruth) said:
-
- Henning> We have exactly the same problem (kernel 0.99pl2, net-bin-0.2).
-
- There is a bug in the kernel's implementation of vhangup(2), here is a
- patch.
- -----
- *** linux/fs/open.c.orig Sun Jan 3 16:25:06 1993
- --- linux/fs/open.c Tue Jan 12 21:46:20 1993
- ***************
- *** 490,500 ****
-
- if (!suser())
- return -EPERM;
- - /* send the SIGHUP signal. */
- - kill_pg(current->pgrp, SIGHUP, 0);
- /* See if there is a controlling tty. */
- if (current->tty < 0)
- return 0;
-
- for (process = task + 0; process < task + NR_TASKS; process++) {
- for (j = 0; j < NR_OPEN; j++) {
- --- 490,502 ----
-
- if (!suser())
- return -EPERM;
- /* See if there is a controlling tty. */
- if (current->tty < 0)
- return 0;
- + /* send the SIGHUP signal. */
- + tty = TTY_TABLE(current->tty);
- + if (tty && tty->pgrp > 0)
- + kill_pg(tty->pgrp, SIGHUP, 0);
-
- for (process = task + 0; process < task + NR_TASKS; process++) {
- for (j = 0; j < NR_OPEN; j++) {
-