Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ZIFLIST(3)			  CZMQ Manual			    ZIFLIST(3)

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

CZMQ 4.2.1			  11/01/2025			    ZIFLIST(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ziflist&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help