]> git.ipfire.org Git - people/stevee/perl-ipset.git/commitdiff
Add function to get the raw set data.
authorStefan Schantl <stefan.schantl@ipfire.org>
Thu, 1 Sep 2022 17:56:43 +0000 (19:56 +0200)
committerStefan Schantl <stefan.schantl@ipfire.org>
Thu, 1 Sep 2022 17:56:43 +0000 (19:56 +0200)
The data will be returned as a single string and
processed by the get_set_data() function, which is part
of the IPSet.pm file. (Because string manipulation and extraction
is much easier in perl than in C.)

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
IPSet.xs

index 2d8c8622b507b423d1d76798fcb86eb4e534f163..ceb6a899d0639710560e96ea68b8c76b33a81e6b 100644 (file)
--- a/IPSet.xs
+++ b/IPSet.xs
@@ -361,6 +361,26 @@ get_sets(session)
                        free(sets);
                }
 
+SV*
+get_set_data_raw(session, setname)
+       struct ipset_session *session;
+       char* setname;
+
+       PREINIT:
+               enum ipset_envopt envopt;
+               char* data = NULL;
+
+       CODE:
+               RETVAL = &PL_sv_undef;
+
+               data = call_list_cmd(session, envopt, setname);
+
+               if(data) {
+                       RETVAL = newSVpv(data, strlen(data));
+               }
+       OUTPUT:
+               RETVAL
+
 SV*
 get_error_message(session)
        struct ipset_session *session;