updown: Get value for PLUTO_MARK_{IN,OUT} from CHILD_SA
authorShota Fukumori <her@sorah.jp>
Sat, 12 Mar 2016 15:05:01 +0000 (00:05 +0900)
committerTobias Brunner <tobias@strongswan.org>
Wed, 23 Mar 2016 13:45:04 +0000 (14:45 +0100)
Or the invoked script will get a broken value when `mark=%unique` is
used in a configuration.

Closes strongswan/strongswan#37.

src/libcharon/plugins/updown/updown_listener.c

index e51caab..a9b0565 100644 (file)
@@ -344,13 +344,13 @@ static void invoke_once(private_updown_listener_t *this, ike_sa_t *ike_sa,
        }
        push_vip_env(this, ike_sa, envp, countof(envp), TRUE);
        push_vip_env(this, ike_sa, envp, countof(envp), FALSE);
-       mark = config->get_mark(config, TRUE);
+       mark = child_sa->get_mark(child_sa, TRUE);
        if (mark.value)
        {
                push_env(envp, countof(envp), "PLUTO_MARK_IN=%u/0x%08x",
                                 mark.value, mark.mask);
        }
-       mark = config->get_mark(config, FALSE);
+       mark = child_sa->get_mark(child_sa, FALSE);
        if (mark.value)
        {
                push_env(envp, countof(envp), "PLUTO_MARK_OUT=%u/0x%08x",