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/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 +- 4 files changed, 31 insertions(+), 6 deletions(-) (limited to 'c/src/libnetworking/pppd') 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; -- cgit v1.2.3