summaryrefslogtreecommitdiffstats
path: root/c/src/libnetworking/pppd
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2002-02-27 22:43:31 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2002-02-27 22:43:31 +0000
commitcb1e8a46445a90f2c379b4b71a542f3633358071 (patch)
tree4cefeaa365e9e68442046c425fb9a3b2833c3f70 /c/src/libnetworking/pppd
parent2002-02-27 Eric Norum <eric.norum@usask.ca> (diff)
downloadrtems-cb1e8a46445a90f2c379b4b71a542f3633358071.tar.bz2
2002-02-27 Ilya Alexeev <ilya@continuum.ru>
* 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.
Diffstat (limited to 'c/src/libnetworking/pppd')
-rw-r--r--c/src/libnetworking/pppd/auth.c29
-rw-r--r--c/src/libnetworking/pppd/chat.c2
-rw-r--r--c/src/libnetworking/pppd/pppd.h4
-rw-r--r--c/src/libnetworking/pppd/sys-rtems.c2
4 files changed, 31 insertions, 6 deletions
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;