libipset(category22-scripting.html) - phpMan

libipset(3)                                                        libipset(3)

NAME
       libipset - A library for using ipset
SYNOPSIS
       #include <libipset/ipset.h>
       void ipset_load_types(void)
       struct ipset * ipset_init(void)
       int ipset_parse_argv(struct ipset *ipset, int argc, char *argv[])
       int ipset_parse_line(struct ipset *ipset, char *line)
       int ipset_parse_stream(struct ipset *ipset, FILE *f)
       int ipset_fini(struct ipset *ipset)
       int ipset_custom_printf(struct ipset *ipset,
                      ipset_custom_errorfn custom_error,
                      ipset_standard_errorfn standard_error,
                      ipset_print_outfn outfn,
                      void *p)
       struct ipset_session * ipset_session(struct ipset *ipset)
       int ipset_session_full_io(struct ipset_session *session,
                        const char *filename,
                        enum ipset_io_type what)
       int ipset_session_normal_io(struct ipset_session *session,
                          const char *filename,
                          enum ipset_io_type what)
       FILE * ipset_session_io_stream(struct ipset_session *session,
                             enum ipset_io_type what)
       int ipset_session_io_close(struct ipset_session *session,
                         enum ipset_io_type what)
DESCRIPTION
       libipset  provides a library interface to ipset(8).  The integer return
       valued functions return 0 on success and a negative value on failure.
       ipset_load_types
              Loads in the supported ipset types in the library and make  them
              available for the ipset interface.

       ipset_init
              Initializes  the  ipset interface: allocates and initializes the
              required internal structures, opens up the netlink channel.  The
              function  returns the library interface structure of type struct
              ipset * or NULL on failure.

       ipset_parse_argv
              Parses the argc lenght of array of strings argv with the already
              initialized ipset library structure.  If the command is success-
              fully parsed, it is then submitted to the kernel to execute.  In
              the  case  of  error, the textual error message is printed and a
              negative number is returned.

       ipset_parse_line
              Parses the  string  line  with  the  already  initialized  ipset
              library  structure.  The  line  is  supposed to contain a single
              ipset command in restore format. If the command is  successfully
              parsed,  it  is  then submitted to the kernel to execute. In the
              case of error, the textual error message is printed and a  nega-
              tive number is returned.

       ipset_parse_stream
              Parses  the  stream f with the already initialized ipset library
              structure. The stream may  contain  multiple  newline  separated
              ipset  commands  in  restore format. The commands are parsed and
              then submitted to the kernel in batches for  efficiecy.  In  the
              case  of error, the textual error message is printed and a nega-
              tive number is returned.

       ipset_fini
              Closes the netlink channel, closes opened streams  and  releases
              allocated structures holding by the ipset library structure.

       The following functions makes possible to customize the interface.
       ipset_custom_printf
              Sets  or resets the print functions for the ipset library struc-
              ture, where custom_error is the custom error print function  for
              the  internal  library errors, standard_error is the print func-
              tion for the netlink/kernel related errors and outfn is the out-
              put  function  to print the result of list/save commands.  The p
              pointer makes possible to pass arbitrary structure to the custom
              print  functions.  If  NULL  is  passed  instead  of  a function
              pointer, the default print function is set for the  given  task.
              If  any of the print functions is non-default, then the version,
              help, interactive ipset commands are ignored.

       ipset_session
              The function returns the session structure of the ipset  library
              structure, in order to manipulate the IO parameters.

       ipset_session_full_io
              You  can  controll  the full IO, i.e. input (restore) and output
              (save) separatedly by the function. The session parameter is the
              session  structure  of  the  library  interface, filename is the
              filename you want to use for input or output and what tells  the
              function  you  want  to set input or output file.  If there's an
              already opened file for the given IO mode, it  is  closed.   The
              function  returns  an error if normal mode is in use. If NULL is
              passed instead of a filename, already opened file is closed  and
              the normal stream is set for the given IO mode (stdin for input,
              stdout for output). Input/output files can be set separatedly.

       ipset_session_normal_io
              You can controll the normal IO, which corresponds to the  inter-
              face provided by ipset(8) itself.  session parameter is the ses-
              sion structure of the library interface, filename is  the  file-
              name  you  want  to  use  for input or output and what tells the
              function you want to set input or output file.   If  there's  an
              already  opened  file for input/output, it is closed.  The func-
              tion returns an error if full mode is in use. If NULL is  passed
              instead  of  a  filename,  already opened file is closed and the
              normal stream is set for the given IO  mode  (stdin  for  input,
              stdout  for  output).  Input/output files cannot be set separat-
              edly.

       ipset_session_io_stream
              The function returns the stream set for the session  where  what
              tells  the  funtion  you  want  to  get  the input or the output
              stream.

       ipset_session_io_close
              The function closes the stream for the session where what  tells
              the  funtion  you  want to close the input or the output stream.
              After closing, the standard streams are set:  stdin  for  input,
              stdout for output.

AUTHORS
       ipset/libipset was designed and written by Jozsef Kadlecsik.

SEE ALSO
       ipset(8),
       /usr/include/libipset/ipset.h /usr/include/libipset/session.h

Jozsef Kadlecsik                 Oct 16, 2018                      libipset(3)