Merge branch 'master' into samesversion
[l2tpns.git] / ppp.c
diff --git a/ppp.c b/ppp.c
index 5c4e51b..93e360e 100644 (file)
--- a/ppp.c
+++ b/ppp.c
@@ -15,9 +15,7 @@
 #include "tbf.h"
 #include "cluster.h"
 
 #include "tbf.h"
 #include "cluster.h"
 
-#ifdef LAC
 #include "l2tplac.h"
 #include "l2tplac.h"
-#endif
 #include "pppoe.h"
 
 extern tunnelt *tunnel;
 #include "pppoe.h"
 
 extern tunnelt *tunnel;
@@ -108,13 +106,11 @@ void processpap(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
                LOG(3, s, t, "PAP login %s/%s\n", user, pass);
        }
 
                LOG(3, s, t, "PAP login %s/%s\n", user, pass);
        }
 
-#ifdef LAC
        if ((!config->disable_lac_func) && lac_conf_forwardtoremotelns(s, user))
        {
                // Creating a tunnel/session has been started
                return;
        }
        if ((!config->disable_lac_func) && lac_conf_forwardtoremotelns(s, user))
        {
                // Creating a tunnel/session has been started
                return;
        }
-#endif
 
        if (session[s].ip || !(r = radiusnew(s)))
        {
 
        if (session[s].ip || !(r = radiusnew(s)))
        {
@@ -267,7 +263,6 @@ void processchap(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
                packet.username = calloc(l + 1, 1);
                memcpy(packet.username, p, l);
 
                packet.username = calloc(l + 1, 1);
                memcpy(packet.username, p, l);
 
-#ifdef LAC
                if ((!config->disable_lac_func) && lac_conf_forwardtoremotelns(s, packet.username))
                {
                        free(packet.username);
                if ((!config->disable_lac_func) && lac_conf_forwardtoremotelns(s, packet.username))
                {
                        free(packet.username);
@@ -275,7 +270,6 @@ void processchap(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
                        // Creating a tunnel/session has been started
                        return;
                }
                        // Creating a tunnel/session has been started
                        return;
                }
-#endif
 
                run_plugins(PLUGIN_PRE_AUTH, &packet);
                if (!packet.continue_auth)
 
                run_plugins(PLUGIN_PRE_AUTH, &packet);
                if (!packet.continue_auth)
@@ -2247,7 +2241,7 @@ void processipv6in(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
                return;
 
        // no spoof
                return;
 
        // no spoof
-       if (ipv4 != session[s].ip && memcmp(&config->ipv6_prefix, &ip, 8) && sessionbyipv6(ip) != s)
+       if ((ipv4 != session[s].ip || memcmp(&config->ipv6_prefix, &ip, 8)) && sessionbyipv6(ip) != s)
        {
                char str[INET6_ADDRSTRLEN];
                LOG(5, s, t, "Dropping packet with spoofed IP %s\n",
        {
                char str[INET6_ADDRSTRLEN];
                LOG(5, s, t, "Dropping packet with spoofed IP %s\n",
@@ -2516,9 +2510,9 @@ void sendchap(sessionidt s, tunnelidt t)
        q[1] = radius[r].id;                    // ID
        q[4] = 16;                              // value size (size of challenge)
        memcpy(q + 5, radius[r].auth, 16);      // challenge
        q[1] = radius[r].id;                    // ID
        q[4] = 16;                              // value size (size of challenge)
        memcpy(q + 5, radius[r].auth, 16);      // challenge
-       strcpy((char *) q + 21, hostname);      // our name
-       *(uint16_t *) (q + 2) = htons(strlen(hostname) + 21); // length
-       tunnelsend(b, strlen(hostname) + 21 + (q - b), t); // send it
+       strcpy((char *) q + 21, config->multi_n_hostname[tunnel[t].indexudp][0]?config->multi_n_hostname[tunnel[t].indexudp]:hostname); // our name
+       *(uint16_t *) (q + 2) = htons(strlen(config->multi_n_hostname[tunnel[t].indexudp][0]?config->multi_n_hostname[tunnel[t].indexudp]:hostname) + 21); // length
+       tunnelsend(b, strlen(config->multi_n_hostname[tunnel[t].indexudp][0]?config->multi_n_hostname[tunnel[t].indexudp]:hostname) + 21 + (q - b), t); // send it
 }
 
 // fill in a L2TP message with a PPP frame,
 }
 
 // fill in a L2TP message with a PPP frame,