From: Stefan Schantl Date: Sun, 14 Aug 2022 16:37:34 +0000 (+0200) Subject: Add support to delete sets. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ee76038fa32db335462fb7ea137390c2e95d0a41;p=people%2Fstevee%2Fperl-ipset.git Add support to delete sets. --- diff --git a/IPSet.xs b/IPSet.xs index 40d6295..f52e7d9 100644 --- a/IPSet.xs +++ b/IPSet.xs @@ -116,7 +116,36 @@ bool create_set(session, setname, typename, hashsize, maxelem) OUTPUT: RETVAL - + +bool +delete_set(session, setname) + struct ipset_session *session; + const char *setname; + + PREINIT: + enum ipset_cmd cmd = IPSET_CMD_DESTROY; + + CODE: + // Assign the setname to the session data. + int r = ipset_session_data_set(session, IPSET_SETNAME, setname); + if (r < 0) { + printf("Could not set setname: %s\n", + ipset_session_report_msg(session)); + } + + r = ipset_cmd(session, cmd, 0); + if (r < 0) { + printf("Command failed: %s\n", + ipset_session_report_msg(session)); + + RETVAL = false; + } + + RETVAL = true; + + OUTPUT: + RETVAL + bool setname_exists(session, setname) struct ipset_session *session; diff --git a/t/IPSet.t b/t/IPSet.t index 3501bc3..458f241 100644 --- a/t/IPSet.t +++ b/t/IPSet.t @@ -8,7 +8,7 @@ use strict; use warnings; -use Test::More tests => 3; +use Test::More tests => 4; BEGIN { use_ok('IPSet') }; ######################### @@ -29,3 +29,7 @@ ok($create_set, "Sucessfully created set: $setname."); # Check if the testset exists. my $exists = &IPSet::setname_exists($session, $setname); ok($exists, "The testset exists."); + +# Delete the testset. +my $delete = &IPSet::delete_set($session, $setname); +ok($delete, "Successfully deleted set.");