]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
swanctl: Add options to filter CHILD_SAs in --list-sas
authorTobias Brunner <tobias@strongswan.org>
Wed, 2 Jun 2021 12:46:03 +0000 (14:46 +0200)
committerTobias Brunner <tobias@strongswan.org>
Thu, 14 Apr 2022 16:42:01 +0000 (18:42 +0200)
src/swanctl/commands/list_sas.c
src/swanctl/commands/terminate.c

index 48c06fd613a0bcf7d36a16c2992d9f8d006d0869..0a7005ce2276dace4abc07e48b9e0f5f1d5d93ae 100644 (file)
@@ -373,8 +373,8 @@ static int list_sas(vici_conn_t *conn)
        vici_res_t *res;
        bool noblock = FALSE;
        command_format_options_t format = COMMAND_FORMAT_NONE;
-       char *arg, *ike = NULL;
-       int ike_id = 0, ret;
+       char *arg, *ike = NULL, *child = NULL;
+       int ike_id = 0, child_id = 0, ret;
 
        while (TRUE)
        {
@@ -388,6 +388,12 @@ static int list_sas(vici_conn_t *conn)
                        case 'I':
                                ike_id = atoi(arg);
                                continue;
+                       case 'c':
+                               child = arg;
+                               continue;
+                       case 'C':
+                               child_id = atoi(arg);
+                               continue;
                        case 'n':
                                noblock = TRUE;
                                continue;
@@ -419,6 +425,14 @@ static int list_sas(vici_conn_t *conn)
        {
                vici_add_key_valuef(req, "ike-id", "%d", ike_id);
        }
+       if (child)
+       {
+               vici_add_key_valuef(req, "child", "%s", child);
+       }
+       if (child_id)
+       {
+               vici_add_key_valuef(req, "child-id", "%d", child_id);
+       }
        if (noblock)
        {
                vici_add_key_valuef(req, "noblock", "yes");
@@ -490,11 +504,14 @@ static void __attribute__ ((constructor))reg()
 {
        command_register((command_t) {
                list_sas, 'l', "list-sas", "list currently active IKE_SAs",
-               {"[--raw|--pretty]"},
+               {"[--ike <name>|--ike-id <id>] [--child <name>|--child-id <id>]",
+                "[--raw|--pretty]"},
                {
                        {"help",                'h', 0, "show usage information"},
                        {"ike",                 'i', 1, "filter IKE_SAs by name"},
                        {"ike-id",              'I', 1, "filter IKE_SAs by unique identifier"},
+                       {"child",               'c', 1, "filter CHILD_SAs by name"},
+                       {"child-id",    'C', 1, "filter CHILD_SAs by unique identifier"},
                        {"noblock",             'n', 0, "don't wait for IKE_SAs in use"},
                        {"raw",                 'r', 0, "dump raw response message"},
                        {"pretty",              'P', 0, "dump raw response message in pretty print"},
index 2309843b259919de994158b4e0db3c58c32a6c63..21ec1c8fe3b11b14d4d76ffe354947046ac0e7d9 100644 (file)
@@ -156,7 +156,7 @@ static void __attribute__ ((constructor))reg()
                        {"help",                'h', 0, "show usage information"},
                        {"child",               'c', 1, "terminate by CHILD_SA name"},
                        {"ike",                 'i', 1, "terminate by IKE_SA name"},
-                       {"child-id",    'C', 1, "terminate by CHILD_SA reqid"},
+                       {"child-id",    'C', 1, "terminate by CHILD_SA unique identifier"},
                        {"ike-id",              'I', 1, "terminate by IKE_SA unique identifier"},
                        {"force",               'f', 0, "terminate IKE_SA without waiting, unless timeout is set"},
                        {"timeout",             't', 1, "timeout in seconds before detaching"},