summaryrefslogtreecommitdiff
path: root/freebsd-2.0
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>1995-08-16 01:36:40 +0000
committerPaul Mackerras <paulus@samba.org>1995-08-16 01:36:40 +0000
commitcb3847ef25bc935ef66c39c919c0b375358b09b1 (patch)
tree0946a3b85e80a485fae6797b3cbdfd20964f4cd1 /freebsd-2.0
parent12d602f52c8ad30af025cf1e063af67c78cd68ad (diff)
downloadppp-cb3847ef25bc935ef66c39c919c0b375358b09b1.tar.gz
Some mods from Bruce Evans
Diffstat (limited to 'freebsd-2.0')
-rw-r--r--freebsd-2.0/if_ppp.c17
-rw-r--r--freebsd-2.0/ppp_tty.c15
2 files changed, 22 insertions, 10 deletions
diff --git a/freebsd-2.0/if_ppp.c b/freebsd-2.0/if_ppp.c
index f6f4e84..d62251a 100644
--- a/freebsd-2.0/if_ppp.c
+++ b/freebsd-2.0/if_ppp.c
@@ -69,7 +69,7 @@
* Paul Mackerras (paulus@cs.anu.edu.au).
*/
-/* $Id: if_ppp.c,v 1.4 1995/07/11 06:37:41 paulus Exp $ */
+/* $Id: if_ppp.c,v 1.5 1995/08/16 01:36:38 paulus Exp $ */
/* from if_sl.c,v 1.11 84/10/04 12:54:47 rick Exp */
#include "ppp.h"
@@ -191,7 +191,7 @@ pppattach()
sc->sc_if.if_name = "ppp";
sc->sc_if.if_unit = i++;
sc->sc_if.if_mtu = PPP_MTU;
- sc->sc_if.if_flags = IFF_POINTOPOINT;
+ sc->sc_if.if_flags = IFF_POINTOPOINT | IFF_MULTICAST;
sc->sc_if.if_type = IFT_PPP;
sc->sc_if.if_hdrlen = PPP_HDRLEN;
sc->sc_if.if_ioctl = pppsioctl;
@@ -511,6 +511,19 @@ pppsioctl(ifp, cmd, data)
ifr->ifr_mtu = sc->sc_if.if_mtu;
break;
+ case SIOCADDMULTI:
+ case SIOCDELMULTI:
+ switch(ifr->ifr_addr.sa_family) {
+#ifdef INET
+ case AF_INET:
+ break;
+#endif
+ default:
+ error = EAFNOSUPPORT;
+ break;
+ }
+ break;
+
case SIOCGPPPSTATS:
psp = &((struct ifpppstatsreq *) data)->stats;
bzero(psp, sizeof(*psp));
diff --git a/freebsd-2.0/ppp_tty.c b/freebsd-2.0/ppp_tty.c
index 1f22821..5ad17d2 100644
--- a/freebsd-2.0/ppp_tty.c
+++ b/freebsd-2.0/ppp_tty.c
@@ -70,7 +70,7 @@
* Paul Mackerras (paulus@cs.anu.edu.au).
*/
-/* $Id: ppp_tty.c,v 1.2 1995/05/02 01:00:44 paulus Exp $ */
+/* $Id: ppp_tty.c,v 1.3 1995/08/16 01:36:40 paulus Exp $ */
/* from if_sl.c,v 1.11 84/10/04 12:54:47 rick Exp */
#include "ppp.h"
@@ -157,7 +157,7 @@ static void ppplogchar __P((struct ppp_softc *, int));
static struct linesw pppdisc = {
pppopen, pppclose, pppread, pppwrite, ppptioctl,
- pppinput, pppstart, nullmodem
+ pppinput, pppstart, ttymodem
};
void
@@ -301,8 +301,7 @@ pppread(tp, uio, flag)
}
if (sc->sc_inq.ifq_head != NULL)
break;
- if ((tp->t_state & TS_CARR_ON) == 0 && (tp->t_cflag & CLOCAL) == 0
- && (tp->t_state & TS_ISOPEN)) {
+ if ((tp->t_state & TS_CONNECTED) == 0 && (tp->t_state & TS_ISOPEN)) {
splx(s);
return 0; /* end of file */
}
@@ -310,7 +309,7 @@ pppread(tp, uio, flag)
splx(s);
return (EWOULDBLOCK);
}
- error = ttysleep(tp, (caddr_t)&tp->t_rawq, TTIPRI|PCATCH, ttyin, 0);
+ error = ttysleep(tp, TSA_HUP_OR_INPUT(tp), TTIPRI | PCATCH, "pppin", 0);
if (error) {
splx(s);
return error;
@@ -345,7 +344,7 @@ pppwrite(tp, uio, flag)
struct sockaddr dst;
int len, error;
- if ((tp->t_state & TS_CARR_ON) == 0 && (tp->t_cflag & CLOCAL) == 0)
+ if ((tp->t_state & TS_CONNECTED) == 0)
return 0; /* wrote 0 bytes */
if (tp->t_line != PPPDISC)
return (EINVAL);
@@ -543,7 +542,7 @@ pppstart(tp)
int n, s, ndone, done, idle;
struct mbuf *m2;
- if ((tp->t_state & TS_CARR_ON) == 0 && (tp->t_cflag & CLOCAL) == 0
+ if ((tp->t_state & TS_CONNECTED) == 0
|| sc == NULL || tp != (struct tty *) sc->sc_devp) {
if (tp->t_oproc != NULL)
(*tp->t_oproc)(tp);
@@ -695,7 +694,7 @@ pppstart(tp)
}
/*
- * If there is stuff in the output queue, send it now.
+ * Send anything that may be in the output queue.
* We are being called in lieu of ttstart and must do what it would.
*/
if (tp->t_oproc != NULL)