Made IP address enumeration more flexible
Also added an option to enumerate addresses on ignored interfaces.
This commit is contained in:
@@ -23,11 +23,30 @@
|
||||
#define KERNEL_NET_H_
|
||||
|
||||
typedef struct kernel_net_t kernel_net_t;
|
||||
typedef enum kernel_address_type_t kernel_address_type_t;
|
||||
|
||||
#include <utils/enumerator.h>
|
||||
#include <utils/host.h>
|
||||
#include <plugins/plugin.h>
|
||||
|
||||
/**
|
||||
* Type of addresses (e.g. when enumerating them)
|
||||
*/
|
||||
enum kernel_address_type_t {
|
||||
/** normal addresses (on regular, up, non-ignored) interfaces */
|
||||
ADDR_TYPE_REGULAR = 0,
|
||||
/** addresses on down interfaces */
|
||||
ADDR_TYPE_DOWN = (1 << 0),
|
||||
/** addresses on ignored interfaces */
|
||||
ADDR_TYPE_IGNORED = (1 << 1),
|
||||
/** addresses on loopback interfaces */
|
||||
ADDR_TYPE_LOOPBACK = (1 << 2),
|
||||
/** virtual IP addresses */
|
||||
ADDR_TYPE_VIRTUAL = (1 << 3),
|
||||
/** to enumerate all available addresses */
|
||||
ADDR_TYPE_ALL = (1 << 4) - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* Interface to the network subsystem of the kernel.
|
||||
*
|
||||
@@ -81,14 +100,11 @@ struct kernel_net_t {
|
||||
* enumerator gets destroyed.
|
||||
* The hosts are read-only, do not modify of free.
|
||||
*
|
||||
* @param include_down_ifaces TRUE to enumerate addresses from down interfaces
|
||||
* @param include_virtual_ips TRUE to enumerate virtual IP addresses
|
||||
* @param include_loopback TRUE to enumerate addresses on loopback interfaces
|
||||
* @return enumerator over host_t's
|
||||
* @param which a combination of address types to enumerate
|
||||
* @return enumerator over host_t's
|
||||
*/
|
||||
enumerator_t *(*create_address_enumerator) (kernel_net_t *this,
|
||||
bool include_down_ifaces, bool include_virtual_ips,
|
||||
bool include_loopback);
|
||||
kernel_address_type_t which);
|
||||
|
||||
/**
|
||||
* Add a virtual IP to an interface.
|
||||
|
||||
Reference in New Issue
Block a user