netwib doc_html (version 5.39.0)

## main index

## section index

    /*-------------------------------------------------------------*/
    /***************************************************************
     * An port range is of the form :                              *
     *                                   portinf     portsup       *
     *   123                      :        123         123         *
     *   123-124                  :        123         124         *
     *                                                             *
     * An netwib_ports is of the form :                            *
     *   port,port,portrange,portrange                             *
     *   all,!port,!portrange                                      *
     *                                                             *
     * Complete examples :                                         *
     *   123                                                       *
     *   123-125                                                   *
     *   1234,5678                                                 *
     *   1234,12356-12358                                          *
     *   all,!1234,!1244-1246                                      *
     ***************************************************************/

    /*-------------------------------------------------------------*/
    /***************************************************************
     * Those functions ignores following error cases :             *
     *  - if we try to add a value already in the list             *
     *  - if we try to remove a value not in the list              *
     ***************************************************************/

    /*-------------------------------------------------------------*/
    typedef struct netwib_ports netwib_ports;
    typedef const netwib_ports netwib_constports;

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_init
       Description :
         Initialize a netwib_ports used to store port list.
       Input parameter(s) :
         inittype : if future added items will be sorted and/or unique
       Input/output parameter(s) :
       Output parameter(s) :
         **ppports : netwib_ports allocated and initialized
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    typedef enum {
      NETWIB_PORTS_INITTYPE_SORTUNIQ = 1, /* sorted and unique */
      NETWIB_PORTS_INITTYPE_NOTSORTUNIQ = 2, /* not sorted and unique */
      NETWIB_PORTS_INITTYPE_NOTSORTNOTUNIQ = 3 /* not sorted and not
                                                  unique (duplicates
                                                  are not removed) */
    } netwib_ports_inittype;
    netwib_err netwib_ports_init(netwib_ports_inittype inittype,
                                 netwib_ports **ppports);
    #define netwib_ports_initdefault(ppports) netwib_ports_init(NETWIB_PORTS_INITTYPE_SORTUNIQ,ppports)

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_close
       Description :
         Close a netwib_ports.
       Input parameter(s) :
       Input/output parameter(s) :
         **ppports : netwib_ports closed
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_ports_close(netwib_ports **ppports);

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_add_port
       Description :
         Add a port to the netwib_ports.
       Input parameter(s) :
         port : address to add
       Input/output parameter(s) :
         *pports : netwib_ports where to work
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_ports_add_port(netwib_ports *pports,
                                     netwib_port port);

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_add_portrange
       Description :
         Add a range of ports to the netwib_ports.
       Input parameter(s) :
         infport : inferior port
         support : superior port
       Input/output parameter(s) :
         *pports : netwib_ports where to work
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_ports_add_portrange(netwib_ports *pports,
                                          netwib_port infport,
                                          netwib_port support);

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_add_ports
       Description :
         Add a list of port to the netwib_ports.
       Input parameter(s) :
         *pportstoadd : netwib_ports to add
       Input/output parameter(s) :
         *pports : netwib_ports where to work
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_ports_add_ports(netwib_ports *pports,
                                      netwib_constports *pportstoadd);

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_add_buf
       Description :
         Update a netwib_ports with a string like "1234-1235".
       Input parameter(s) :
         *pbuf : buffer containing string
       Input/output parameter(s) :
         *pports : netwib_ports updated
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
       Note :
         If an error occurs during insertion, result will only
         contain partial data. It's developer's job to use a
         temporary netwib_ports to deal with such errors.
    */
    netwib_err netwib_ports_add_buf(netwib_ports *pports,
                                    netwib_constbuf *pbuf);

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_add_kbd
       Description :
         Update a netwib_ports with data entered through keyboard.
       Input parameter(s) :
         message : message to print before
         defaultlist : default list to use if user enters nothing
                       if NULL, there is no default
       Input/output parameter(s) :
         *pports : netwib_ports updated
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_ports_add_kbd(netwib_ports *pports,
                                    netwib_constbuf *pmessage,
                                    netwib_constbuf *pdefaultlist);

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_del_port
       Description :
         Del a port from the netwib_ports.
       Input parameter(s) :
         port : address to delete
       Input/output parameter(s) :
         *pports : netwib_ports where to work
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_ports_del_port(netwib_ports *pports,
                                     netwib_port port);

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_del_portrange
       Description :
         Del a range of ports to the netwib_ports.
       Input parameter(s) :
         infport : inferior port
         support : superior port
       Input/output parameter(s) :
         *pports : netwib_ports where to work
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_ports_del_portrange(netwib_ports *pports,
                                          netwib_port infport,
                                          netwib_port support);

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_del_ports
       Description :
         Remove a list of port to the netwib_ports.
       Input parameter(s) :
         *pportstodel : netwib_ports to remove
       Input/output parameter(s) :
         *pports : netwib_ports where to work
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_ports_del_ports(netwib_ports *pports,
                                      netwib_constports *pportstodel);

    /*-------------------------------------------------------------*/
    /* Name : netwib_ports_contains_xyz
       Description :
         Check if a netwib_port is in the list.
       Input parameter(s) :
         port : netwib_port to find
       Input/output parameter(s) :
         *pports : netwib_ports containing the list of addresses
       Output parameter(s) :
         *pyes : true if netwib_port is found
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_ports_contains_port(netwib_constports *pports,
                                          netwib_port port,
                                          netwib_bool *pyes);
    netwib_err netwib_ports_contains_portrange(netwib_constports *pports,
                                               netwib_port infport,
                                               netwib_port support,
                                               netwib_bool *pyes);

    /*-------------------------------------------------------------*/
    /* Name : netwib_buf_append_ports
       Description :
         Append a string representing a netwib_ports.
       Input parameter(s) :
         *pports : netwib_ports to append
       Input/output parameter(s) :
         pbuf : buffer updated
       Output parameter(s) :
       Normal return values :
         NETWIB_ERR_OK : ok
    */
    netwib_err netwib_buf_append_ports(netwib_constports *pports,
                                       netwib_buf *pbuf);

## main index

## section index