RETVAL
+bool
+swap_set(session, setname, setname2)
+ struct ipset_session *session;
+ const char *setname;
+ const char *setname2;
+
+ PREINIT:
+ enum ipset_cmd cmd = IPSET_CMD_SWAP;
+
+ 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));
+ }
+
+ // Assign the second set data.
+ r = ipset_session_data_set(session, IPSET_OPT_SETNAME2, setname2);
+ if (r < 0) {
+ printf("Could not assign second set name: %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;
use strict;
use warnings;
-use Test::More tests => 6;
+use Test::More tests => 7;
BEGIN { use_ok('IPSet') };
#########################
$exists = &IPSet::setname_exists($session, $setname_renamed);
ok($exists, "Renamed testset exists.");
+# Create a second set for swap testing.
+&IPSet::create_set($session, $setname, "hash:ip", "1024", "10");
+my $swap = &IPSet::swap_set($session, $setname, $setname_renamed);
+ok($swap, "Successfully swapped sets.");
+
# Delete the renamed testset.
my $delete = &IPSet::delete_set($session, $setname_renamed);
ok($delete, "Successfully deleted set.");
+
+# CLEANUP: Delete the remaining set.
+&IPSet::delete_set($session, $setname);