X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/998f1c564e1dc729325cf25f130eaeb9562e745f..d908e3348f2f824e798e43a90fb89b2dfe981e2b:/l2tpns.c diff --git a/l2tpns.c b/l2tpns.c index 8f86f1d..4664c50 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -4,7 +4,7 @@ // Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced // vim: sw=8 ts=8 -char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.98 2005-05-07 11:57:53 bodea Exp $"; +char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.101 2005-05-10 08:48:00 bodea Exp $"; #include #include @@ -2186,7 +2186,7 @@ void processudp(uint8_t * buf, int len, struct sockaddr_in *addr) { uint16_t atype = ntohs(*(uint16_t *)b); LOG(4, s, t, " Proxy Auth Type %d (%s)\n", atype, auth_type(atype)); - if (atype = 2) + if (atype == 2) authtype = AUTHCHAP; else if (atype == 3) authtype = AUTHPAP; @@ -2357,7 +2357,7 @@ void processudp(uint8_t * buf, int len, struct sockaddr_in *addr) controlnull(t); // ack // proxy authentication type is not supported if (authtype && !(config->radius_authtypes & authtype)) - initlcp(t, s); + sendlcp(t, s, config->radius_authprefer); break; case 14: // CDN controlnull(t); // ack @@ -3988,7 +3988,7 @@ static void update_config() // test twice, In case someone works with // a secondary radius server without defining // a primary one, this will work even then. - if (i>0 && !config->radiusport[i]) + if (i > 0 && !config->radiusport[i]) config->radiusport[i] = config->radiusport[i-1]; if (!config->radiusport[i]) config->radiusport[i] = RADPORT; @@ -4002,7 +4002,7 @@ static void update_config() // parse radius_authtypes_s config->radius_authtypes = config->radius_authprefer = 0; p = config->radius_authtypes_s; - while (*p) + while (p && *p) { char *s = strpbrk(p, " \t,"); int type = 0; @@ -4027,6 +4027,8 @@ static void update_config() config->radius_authtypes |= type; if (!config->radius_authprefer) config->radius_authprefer = type; + + p = s; } if (!config->radius_authtypes) @@ -4426,6 +4428,7 @@ static int add_plugin(char *plugin_name) radiusnew, radiussend, getconfig, + sessionshutdown, sessionkill, throttle_session, cluster_send_session,