Provided by: libczmq-dev_4.1.0-2_amd64 bug

NAME

       ziflist - Class for list of network interfaces available on system

SYNOPSIS

       //  This is a stable class, and may not change except for emergencies. It
       //  is provided in stable builds.
       //  This class has draft methods, which may change over time. They are not
       //  in stable releases, by default. Use --enable-drafts to enable.
       //  Get a list of network interfaces currently defined on the system
       CZMQ_EXPORT ziflist_t *
           ziflist_new (void);

       //  Destroy a ziflist instance
       CZMQ_EXPORT void
           ziflist_destroy (ziflist_t **self_p);

       //  Reload network interfaces from system
       CZMQ_EXPORT void
           ziflist_reload (ziflist_t *self);

       //  Return the number of network interfaces on system
       CZMQ_EXPORT size_t
           ziflist_size (ziflist_t *self);

       //  Get first network interface, return NULL if there are none
       CZMQ_EXPORT const char *
           ziflist_first (ziflist_t *self);

       //  Get next network interface, return NULL if we hit the last one
       CZMQ_EXPORT const char *
           ziflist_next (ziflist_t *self);

       //  Return the current interface IP address as a printable string
       CZMQ_EXPORT const char *
           ziflist_address (ziflist_t *self);

       //  Return the current interface broadcast address as a printable string
       CZMQ_EXPORT const char *
           ziflist_broadcast (ziflist_t *self);

       //  Return the current interface network mask as a printable string
       CZMQ_EXPORT const char *
           ziflist_netmask (ziflist_t *self);

       //  Return the list of interfaces.
       CZMQ_EXPORT void
           ziflist_print (ziflist_t *self);

       //  Self test of this class.
       CZMQ_EXPORT void
           ziflist_test (bool verbose);

       #ifdef CZMQ_BUILD_DRAFT_API
       //  *** Draft method, for development use, may change without warning ***
       //  Get a list of network interfaces currently defined on the system
       //  Includes IPv6 interfaces
       //  Caller owns return value and must destroy it when done.
       CZMQ_EXPORT ziflist_t *
           ziflist_new_ipv6 (void);

       //  *** Draft method, for development use, may change without warning ***
       //  Reload network interfaces from system, including IPv6
       CZMQ_EXPORT void
           ziflist_reload_ipv6 (ziflist_t *self);

       //  *** Draft method, for development use, may change without warning ***
       //  Return true if the current interface uses IPv6
       CZMQ_EXPORT bool
           ziflist_is_ipv6 (ziflist_t *self);

       #endif // CZMQ_BUILD_DRAFT_API
       Please add '@interface' section in './../src/ziflist.c'.

DESCRIPTION

       The ziflist class takes a snapshot of the network interfaces that the system currently
       supports (this can change arbitrarily, especially on mobile devices). The caller can then
       access the network interface information using an iterator that works like zlistx. Only
       stores those interfaces with broadcast capability, and ignores the loopback interface.

       Please add @discuss section in ./../src/ziflist.c.

EXAMPLE

       From ziflist_test method.

           ziflist_t *iflist = ziflist_new ();
           assert (iflist);

           size_t items = ziflist_size (iflist);

           if (verbose) {
               printf ("ziflist: interfaces=%zu\n", ziflist_size (iflist));
               const char *name = ziflist_first (iflist);
               while (name) {
                   printf (" - name=%s address=%s netmask=%s broadcast=%s\n",
                           name, ziflist_address (iflist), ziflist_netmask (iflist), ziflist_broadcast (iflist));
                   name = ziflist_next (iflist);
               }
           }
           ziflist_reload (iflist);
           assert (items == ziflist_size (iflist));
           ziflist_destroy (&iflist);

           #if defined (__WINDOWS__)
           zsys_shutdown();
           #endif

AUTHORS

       The czmq manual was written by the authors in the AUTHORS file.

RESOURCES

       Main web site:

       Report bugs to the email <zeromq-dev@lists.zeromq.org[1]>

COPYRIGHT

       Copyright (c) the Contributors as noted in the AUTHORS file. This file is part of CZMQ,
       the high-level C binding for 0MQ: http://czmq.zeromq.org. This Source Code Form is subject
       to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not
       distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. LICENSE
       included with the czmq distribution.

NOTES

        1. zeromq-dev@lists.zeromq.org
           mailto:zeromq-dev@lists.zeromq.org