X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/df35f4d66fd01268fe4456994368b76a541acec4..92bfbe46e854e7ff40d6d4297c8df74f1efcf10f:/l2tplac.c diff --git a/l2tplac.c b/l2tplac.c index 442f08a..5fb361e 100644 --- a/l2tplac.c +++ b/l2tplac.c @@ -7,10 +7,11 @@ #include #include -#include #include +#include #include "md5.h" +#include "dhcp6.h" #include "l2tpns.h" #include "util.h" #include "cluster.h" @@ -297,6 +298,7 @@ static int lac_create_tunnelsession(tunnelidt t, sessionidt s, confrlnsidt i_con tunnel[t].port = pconfigrlns[i_conf].port; tunnel[t].window = 4; // default window tunnel[t].isremotelns = i_conf; + tunnel[t].indexudp = config->indexlacudpfd; STAT(tunnel_created); random_data(pconfigrlns[i_conf].auth, sizeof(pconfigrlns[i_conf].auth)); @@ -451,7 +453,7 @@ void lac_calc_rlns_auth(tunnelidt t, uint8_t id, uint8_t *out) } // Forward session to LAC or Remote LNS -int lac_session_forward(uint8_t *buf, int len, sessionidt sess, uint16_t proto, in_addr_t s_addr, int sin_port) +int lac_session_forward(uint8_t *buf, int len, sessionidt sess, uint16_t proto, in_addr_t s_addr, int sin_port, uint16_t indexudpfd) { uint16_t t = 0, s = 0; uint8_t *p = buf + 2; // First word L2TP options @@ -484,7 +486,7 @@ int lac_session_forward(uint8_t *buf, int len, sessionidt sess, uint16_t proto, (proto == PPPCCP) ) { session[sess].last_packet = time_now; - master_forward_packet(buf, len, s_addr, sin_port); + master_forward_packet(buf, len, s_addr, sin_port, indexudpfd); return 1; } } @@ -527,7 +529,6 @@ int lac_session_forward(uint8_t *buf, int len, sessionidt sess, uint16_t proto, // Update STAT OUT increment_counter(&session[s].cout, &session[s].cout_wrap, len); // byte count session[s].cout_delta += len; - session[s].coutgrp_delta += len; session[s].pout++; sess_local[s].cout += len; sess_local[s].pout++;