Fix: No RADIUS Stop message sent (regression due to the patch to avoid sending multip...
authorfendo <fendo@bi12info.com>
Sun, 13 Jan 2013 23:04:56 +0000 (00:04 +0100)
committerfendo <fendo@bi12info.com>
Sun, 13 Jan 2013 23:04:56 +0000 (00:04 +0100)
l2tpns.c

index 850cd76..a1819f2 100644 (file)
--- a/l2tpns.c
+++ b/l2tpns.c
@@ -2026,7 +2026,6 @@ void sessionshutdown(sessionidt s, char const *reason, int cdn_result, int cdn_e
                struct param_kill_session data = { &tunnel[session[s].tunnel], &session[s] };
                LOG(2, s, session[s].tunnel, "Shutting down session %u: %s\n", s, reason);
                run_plugins(PLUGIN_KILL_SESSION, &data);
                struct param_kill_session data = { &tunnel[session[s].tunnel], &session[s] };
                LOG(2, s, session[s].tunnel, "Shutting down session %u: %s\n", s, reason);
                run_plugins(PLUGIN_KILL_SESSION, &data);
-               session[s].die = TIME + 150; // Clean up in 15 seconds
        }
 
        if (session[s].ip && !walled_garden && !session[s].die)
        }
 
        if (session[s].ip && !walled_garden && !session[s].die)
@@ -2051,6 +2050,9 @@ void sessionshutdown(sessionidt s, char const *reason, int cdn_result, int cdn_e
                        memcpy(&shut_acct[shut_acct_n++], &session[s], sizeof(session[s]));
        }
 
                        memcpy(&shut_acct[shut_acct_n++], &session[s], sizeof(session[s]));
        }
 
+       if (!session[s].die)
+               session[s].die = TIME + 150; // Clean up in 15 seconds
+
        if (session[s].ip)
        {                          // IP allocated, clear and unroute
                int r;
        if (session[s].ip)
        {                          // IP allocated, clear and unroute
                int r;