From cb1e8a46445a90f2c379b4b71a542f3633358071 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 27 Feb 2002 22:43:31 +0000 Subject: 2002-02-27 Ilya Alexeev * net/if_ppp.c, pppd/auth.c, pppd/chat.c, pppd/pppd.h, pppd/sys-rtems.c: Add server with pap-authorization capabilities as well as eliminate some warnings. --- c/src/exec/libnetworking/ChangeLog | 6 ++++++ c/src/exec/libnetworking/net/if_ppp.c | 14 ++++++++++---- c/src/libnetworking/ChangeLog | 6 ++++++ c/src/libnetworking/net/if_ppp.c | 14 ++++++++++---- c/src/libnetworking/pppd/auth.c | 29 +++++++++++++++++++++++++++-- c/src/libnetworking/pppd/chat.c | 2 +- c/src/libnetworking/pppd/pppd.h | 4 ++-- c/src/libnetworking/pppd/sys-rtems.c | 2 +- cpukit/libnetworking/ChangeLog | 6 ++++++ cpukit/libnetworking/net/if_ppp.c | 14 ++++++++++---- cpukit/pppd/auth.c | 29 +++++++++++++++++++++++++++-- cpukit/pppd/chat.c | 2 +- cpukit/pppd/pppd.h | 4 ++-- cpukit/pppd/sys-rtems.c | 2 +- 14 files changed, 110 insertions(+), 24 deletions(-) diff --git a/c/src/exec/libnetworking/ChangeLog b/c/src/exec/libnetworking/ChangeLog index 57af52c6d8..58a13fe4b8 100644 --- a/c/src/exec/libnetworking/ChangeLog +++ b/c/src/exec/libnetworking/ChangeLog @@ -1,3 +1,9 @@ +2002-02-27 Ilya Alexeev + + * net/if_ppp.c, pppd/auth.c, pppd/chat.c, pppd/pppd.h, + pppd/sys-rtems.c: Add server with pap-authorization + capabilities as well as eliminate some warnings. + 2002-02-27 Eric Norum * net/radix.c: Properly handle fetching the default route when there diff --git a/c/src/exec/libnetworking/net/if_ppp.c b/c/src/exec/libnetworking/net/if_ppp.c index 8c8b58745d..9fd7dde6f3 100644 --- a/c/src/exec/libnetworking/net/if_ppp.c +++ b/c/src/exec/libnetworking/net/if_ppp.c @@ -624,7 +624,7 @@ pppioctl(sc, cmd, data, flag, p) if (sc->sc_flags & SC_CCP_OPEN && !(flags & SC_CCP_OPEN)) ppp_ccp_closed(sc); #endif - splimp(); + s = splimp(); sc->sc_flags = (sc->sc_flags & ~SC_MASK) | flags; splx(s); break; @@ -1136,7 +1136,10 @@ struct mbuf * ppp_dequeue(sc) struct ppp_softc *sc; { - struct mbuf *m, *mp; + struct mbuf *m; +#ifdef VJC + struct mbuf *mp; +#endif u_char *cp; int address, control, protocol; @@ -1400,14 +1403,17 @@ ppp_inproc(sc, m) struct mbuf *mf = (struct mbuf *)0; struct ifnet *ifp = &sc->sc_if; struct ifqueue *inq; - int s, ilen, xlen, proto, rv; + int s, ilen, proto, rv; u_char *cp, adrs, ctrl; struct mbuf *mp; #ifdef PPP_COMPRESS struct mbuf *dmp = NULL; #endif +#ifdef VJC u_char *iphdr; - u_int hlen; + u_int hlen; + int xlen; +#endif sc->sc_stats.ppp_ipackets++; diff --git a/c/src/libnetworking/ChangeLog b/c/src/libnetworking/ChangeLog index 57af52c6d8..58a13fe4b8 100644 --- a/c/src/libnetworking/ChangeLog +++ b/c/src/libnetworking/ChangeLog @@ -1,3 +1,9 @@ +2002-02-27 Ilya Alexeev + + * net/if_ppp.c, pppd/auth.c, pppd/chat.c, pppd/pppd.h, + pppd/sys-rtems.c: Add server with pap-authorization + capabilities as well as eliminate some warnings. + 2002-02-27 Eric Norum * net/radix.c: Properly handle fetching the default route when there diff --git a/c/src/libnetworking/net/if_ppp.c b/c/src/libnetworking/net/if_ppp.c index 8c8b58745d..9fd7dde6f3 100644 --- a/c/src/libnetworking/net/if_ppp.c +++ b/c/src/libnetworking/net/if_ppp.c @@ -624,7 +624,7 @@ pppioctl(sc, cmd, data, flag, p) if (sc->sc_flags & SC_CCP_OPEN && !(flags & SC_CCP_OPEN)) ppp_ccp_closed(sc); #endif - splimp(); + s = splimp(); sc->sc_flags = (sc->sc_flags & ~SC_MASK) | flags; splx(s); break; @@ -1136,7 +1136,10 @@ struct mbuf * ppp_dequeue(sc) struct ppp_softc *sc; { - struct mbuf *m, *mp; + struct mbuf *m; +#ifdef VJC + struct mbuf *mp; +#endif u_char *cp; int address, control, protocol; @@ -1400,14 +1403,17 @@ ppp_inproc(sc, m) struct mbuf *mf = (struct mbuf *)0; struct ifnet *ifp = &sc->sc_if; struct ifqueue *inq; - int s, ilen, xlen, proto, rv; + int s, ilen, proto, rv; u_char *cp, adrs, ctrl; struct mbuf *mp; #ifdef PPP_COMPRESS struct mbuf *dmp = NULL; #endif +#ifdef VJC u_char *iphdr; - u_int hlen; + u_int hlen; + int xlen; +#endif sc->sc_stats.ppp_ipackets++; diff --git a/c/src/libnetworking/pppd/auth.c b/c/src/libnetworking/pppd/auth.c index f08a89a0c1..f65d492f9a 100644 --- a/c/src/libnetworking/pppd/auth.c +++ b/c/src/libnetworking/pppd/auth.c @@ -116,9 +116,9 @@ int (*idle_time_hook) __P((struct ppp_idle *)) = NULL; int (*pap_check_hook) __P((void)) = NULL; /* Hook for a plugin to check the PAP user and password */ -int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp, +int (*pap_auth_hook) __P((char *user, char *passwd/*, char **msgp, struct wordlist **paddrs, - struct wordlist **popts)) = NULL; + struct wordlist **popts*/)) = NULL; /* Hook for a plugin to know about the PAP user logout */ void (*pap_logout_hook) __P((void)) = NULL; @@ -739,6 +739,20 @@ check_passwd(unit, auser, userlen, apasswd, passwdlen, msg) int passwdlen; char **msg; { + char passwd[64], user[64]; + + if (pap_auth_hook) + { + slprintf(passwd, sizeof(passwd), "%.*v", passwdlen, apasswd); + slprintf(user, sizeof(user), "%.*v", userlen, auser); + + return (*pap_auth_hook)(user, passwd/*, NULL, NULL, NULL*/) ? + UPAP_AUTHACK : UPAP_AUTHNAK; + } + + return UPAP_AUTHACK; + +#if 0 int ret = (int)UPAP_AUTHNAK; if (( userlen == 0 ) && ( passwdlen == 0 )) { @@ -747,6 +761,7 @@ check_passwd(unit, auser, userlen, apasswd, passwdlen, msg) printf("check_passwd: %d\n", ret); return ret; +#endif } /* @@ -793,6 +808,9 @@ static int have_pap_secret(lacks_ipp) int *lacks_ipp; { + return 1; + +#if 0 int ret = (int)0; /* let the plugin decide, if there is one */ @@ -802,6 +820,7 @@ have_pap_secret(lacks_ipp) } return ( ret ); +#endif } @@ -1011,12 +1030,17 @@ auth_ip_addr(unit, addr) int unit; u_int32_t addr; { +#if 0 int ok; +#endif /* don't allow loopback or multicast address */ if (bad_ip_adrs(addr)) return 0; + + return 1; +#if 0 if (addresses[unit] != NULL) { ok = ip_addr_check(addr, addresses[unit]); if (ok >= 0) @@ -1025,6 +1049,7 @@ auth_ip_addr(unit, addr) if (auth_required) return 0; /* no addresses authorized */ return allow_any_ip || !have_route_to(addr); +#endif } static int diff --git a/c/src/libnetworking/pppd/chat.c b/c/src/libnetworking/pppd/chat.c index 6d8a7f24c7..51f79ccc83 100644 --- a/c/src/libnetworking/pppd/chat.c +++ b/c/src/libnetworking/pppd/chat.c @@ -598,7 +598,7 @@ int c; void chat_send (s) register char *s; { - char file_data[STR_LEN]; +/* char file_data[STR_LEN]; */ if (say_next) { say_next = 0; diff --git a/c/src/libnetworking/pppd/pppd.h b/c/src/libnetworking/pppd/pppd.h index a210a9ac55..6af6ec1fd6 100644 --- a/c/src/libnetworking/pppd/pppd.h +++ b/c/src/libnetworking/pppd/pppd.h @@ -480,9 +480,9 @@ extern int (*new_phase_hook) __P((int)); extern int (*idle_time_hook) __P((struct ppp_idle *)); extern int (*holdoff_hook) __P((void)); extern int (*pap_check_hook) __P((void)); -extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp, +extern int (*pap_auth_hook) __P((char *user, char *passwd/*, char **msgp, struct wordlist **paddrs, - struct wordlist **popts)); + struct wordlist **popts*/)); extern void (*pap_logout_hook) __P((void)); extern int (*pap_passwd_hook) __P((char *user, char *passwd)); extern void (*ip_up_hook) __P((void)); diff --git a/c/src/libnetworking/pppd/sys-rtems.c b/c/src/libnetworking/pppd/sys-rtems.c index dc8fa76538..0fc3e139b9 100644 --- a/c/src/libnetworking/pppd/sys-rtems.c +++ b/c/src/libnetworking/pppd/sys-rtems.c @@ -955,7 +955,7 @@ dodefaultroute(g, cmd) u_int32_t g; int cmd; { - int status; +/* int status; */ struct sockaddr_in address; struct sockaddr_in netmask; struct sockaddr_in gateway; diff --git a/cpukit/libnetworking/ChangeLog b/cpukit/libnetworking/ChangeLog index 57af52c6d8..58a13fe4b8 100644 --- a/cpukit/libnetworking/ChangeLog +++ b/cpukit/libnetworking/ChangeLog @@ -1,3 +1,9 @@ +2002-02-27 Ilya Alexeev + + * net/if_ppp.c, pppd/auth.c, pppd/chat.c, pppd/pppd.h, + pppd/sys-rtems.c: Add server with pap-authorization + capabilities as well as eliminate some warnings. + 2002-02-27 Eric Norum * net/radix.c: Properly handle fetching the default route when there diff --git a/cpukit/libnetworking/net/if_ppp.c b/cpukit/libnetworking/net/if_ppp.c index 8c8b58745d..9fd7dde6f3 100644 --- a/cpukit/libnetworking/net/if_ppp.c +++ b/cpukit/libnetworking/net/if_ppp.c @@ -624,7 +624,7 @@ pppioctl(sc, cmd, data, flag, p) if (sc->sc_flags & SC_CCP_OPEN && !(flags & SC_CCP_OPEN)) ppp_ccp_closed(sc); #endif - splimp(); + s = splimp(); sc->sc_flags = (sc->sc_flags & ~SC_MASK) | flags; splx(s); break; @@ -1136,7 +1136,10 @@ struct mbuf * ppp_dequeue(sc) struct ppp_softc *sc; { - struct mbuf *m, *mp; + struct mbuf *m; +#ifdef VJC + struct mbuf *mp; +#endif u_char *cp; int address, control, protocol; @@ -1400,14 +1403,17 @@ ppp_inproc(sc, m) struct mbuf *mf = (struct mbuf *)0; struct ifnet *ifp = &sc->sc_if; struct ifqueue *inq; - int s, ilen, xlen, proto, rv; + int s, ilen, proto, rv; u_char *cp, adrs, ctrl; struct mbuf *mp; #ifdef PPP_COMPRESS struct mbuf *dmp = NULL; #endif +#ifdef VJC u_char *iphdr; - u_int hlen; + u_int hlen; + int xlen; +#endif sc->sc_stats.ppp_ipackets++; diff --git a/cpukit/pppd/auth.c b/cpukit/pppd/auth.c index f08a89a0c1..f65d492f9a 100644 --- a/cpukit/pppd/auth.c +++ b/cpukit/pppd/auth.c @@ -116,9 +116,9 @@ int (*idle_time_hook) __P((struct ppp_idle *)) = NULL; int (*pap_check_hook) __P((void)) = NULL; /* Hook for a plugin to check the PAP user and password */ -int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp, +int (*pap_auth_hook) __P((char *user, char *passwd/*, char **msgp, struct wordlist **paddrs, - struct wordlist **popts)) = NULL; + struct wordlist **popts*/)) = NULL; /* Hook for a plugin to know about the PAP user logout */ void (*pap_logout_hook) __P((void)) = NULL; @@ -739,6 +739,20 @@ check_passwd(unit, auser, userlen, apasswd, passwdlen, msg) int passwdlen; char **msg; { + char passwd[64], user[64]; + + if (pap_auth_hook) + { + slprintf(passwd, sizeof(passwd), "%.*v", passwdlen, apasswd); + slprintf(user, sizeof(user), "%.*v", userlen, auser); + + return (*pap_auth_hook)(user, passwd/*, NULL, NULL, NULL*/) ? + UPAP_AUTHACK : UPAP_AUTHNAK; + } + + return UPAP_AUTHACK; + +#if 0 int ret = (int)UPAP_AUTHNAK; if (( userlen == 0 ) && ( passwdlen == 0 )) { @@ -747,6 +761,7 @@ check_passwd(unit, auser, userlen, apasswd, passwdlen, msg) printf("check_passwd: %d\n", ret); return ret; +#endif } /* @@ -793,6 +808,9 @@ static int have_pap_secret(lacks_ipp) int *lacks_ipp; { + return 1; + +#if 0 int ret = (int)0; /* let the plugin decide, if there is one */ @@ -802,6 +820,7 @@ have_pap_secret(lacks_ipp) } return ( ret ); +#endif } @@ -1011,12 +1030,17 @@ auth_ip_addr(unit, addr) int unit; u_int32_t addr; { +#if 0 int ok; +#endif /* don't allow loopback or multicast address */ if (bad_ip_adrs(addr)) return 0; + + return 1; +#if 0 if (addresses[unit] != NULL) { ok = ip_addr_check(addr, addresses[unit]); if (ok >= 0) @@ -1025,6 +1049,7 @@ auth_ip_addr(unit, addr) if (auth_required) return 0; /* no addresses authorized */ return allow_any_ip || !have_route_to(addr); +#endif } static int diff --git a/cpukit/pppd/chat.c b/cpukit/pppd/chat.c index 6d8a7f24c7..51f79ccc83 100644 --- a/cpukit/pppd/chat.c +++ b/cpukit/pppd/chat.c @@ -598,7 +598,7 @@ int c; void chat_send (s) register char *s; { - char file_data[STR_LEN]; +/* char file_data[STR_LEN]; */ if (say_next) { say_next = 0; diff --git a/cpukit/pppd/pppd.h b/cpukit/pppd/pppd.h index a210a9ac55..6af6ec1fd6 100644 --- a/cpukit/pppd/pppd.h +++ b/cpukit/pppd/pppd.h @@ -480,9 +480,9 @@ extern int (*new_phase_hook) __P((int)); extern int (*idle_time_hook) __P((struct ppp_idle *)); extern int (*holdoff_hook) __P((void)); extern int (*pap_check_hook) __P((void)); -extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp, +extern int (*pap_auth_hook) __P((char *user, char *passwd/*, char **msgp, struct wordlist **paddrs, - struct wordlist **popts)); + struct wordlist **popts*/)); extern void (*pap_logout_hook) __P((void)); extern int (*pap_passwd_hook) __P((char *user, char *passwd)); extern void (*ip_up_hook) __P((void)); diff --git a/cpukit/pppd/sys-rtems.c b/cpukit/pppd/sys-rtems.c index dc8fa76538..0fc3e139b9 100644 --- a/cpukit/pppd/sys-rtems.c +++ b/cpukit/pppd/sys-rtems.c @@ -955,7 +955,7 @@ dodefaultroute(g, cmd) u_int32_t g; int cmd; { - int status; +/* int status; */ struct sockaddr_in address; struct sockaddr_in netmask; struct sockaddr_in gateway; -- cgit v1.2.3