34c34
< * $Id: tty_pty.c,v 1.14 1995/07/22 01:30:32 bde Exp $
---
> * $Id: tty_pty.c,v 1.15 1995/07/22 16:45:08 bde Exp $
135c135
< tp->t_state |= TS_CARR_ON;
---
> (void)(*linesw[tp->t_line].l_modem)(tp, 1);
271,272d270
< /*ARGSUSED*/
< #ifdef __STDC__
274,276d271
< ptcopen(dev_t dev, int flag, int devtype, struct proc *p)
< #else
< int
281d275
< #endif
312c306,318
< tp->t_state &= ~TS_CARR_ON;
---
>
> /*
> * XXX MDMBUF makes no sense for ptys but would inhibit the above
> * l_modem(). CLOCAL makes sense but isn't supported. Special
> * l_modem()s that ignore carrier drop make no sense for ptys but
> * may be in use because other parts of the line discipline make
> * sense for ptys. Recover by doing everything that a normal
> * ttymodem() would have done except for sending a SIGHUP.
> */
> tp->t_state &= ~(TS_CARR_ON | TS_CONNECTED);
> tp->t_state |= TS_ZOMBIE;
> ttyflush(tp, FREAD | FWRITE);
>
360c366
< if ((tp->t_state&TS_CARR_ON) == 0)
---
> if ((tp->t_state & TS_CONNECTED) == 0)
414c420
< if ((tp->t_state&TS_CARR_ON) == 0)
---
> if ((tp->t_state & TS_CONNECTED) == 0)
514c520
< wakeup(TSA_CARR_ON(tp));
---
> wakeup(TSA_HUP_OR_INPUT(tp));
529c535
< if ((tp->t_state&TS_CARR_ON) == 0)
---
> if ((tp->t_state & TS_CONNECTED) == 0)
< * $Id: tty_pty.c,v 1.14 1995/07/22 01:30:32 bde Exp $
---
> * $Id: tty_pty.c,v 1.15 1995/07/22 16:45:08 bde Exp $
135c135
< tp->t_state |= TS_CARR_ON;
---
> (void)(*linesw[tp->t_line].l_modem)(tp, 1);
271,272d270
< /*ARGSUSED*/
< #ifdef __STDC__
274,276d271
< ptcopen(dev_t dev, int flag, int devtype, struct proc *p)
< #else
< int
281d275
< #endif
312c306,318
< tp->t_state &= ~TS_CARR_ON;
---
>
> /*
> * XXX MDMBUF makes no sense for ptys but would inhibit the above
> * l_modem(). CLOCAL makes sense but isn't supported. Special
> * l_modem()s that ignore carrier drop make no sense for ptys but
> * may be in use because other parts of the line discipline make
> * sense for ptys. Recover by doing everything that a normal
> * ttymodem() would have done except for sending a SIGHUP.
> */
> tp->t_state &= ~(TS_CARR_ON | TS_CONNECTED);
> tp->t_state |= TS_ZOMBIE;
> ttyflush(tp, FREAD | FWRITE);
>
360c366
< if ((tp->t_state&TS_CARR_ON) == 0)
---
> if ((tp->t_state & TS_CONNECTED) == 0)
414c420
< if ((tp->t_state&TS_CARR_ON) == 0)
---
> if ((tp->t_state & TS_CONNECTED) == 0)
514c520
< wakeup(TSA_CARR_ON(tp));
---
> wakeup(TSA_HUP_OR_INPUT(tp));
529c535
< if ((tp->t_state&TS_CARR_ON) == 0)
---
> if ((tp->t_state & TS_CONNECTED) == 0)