42#ifndef _DWMLOCALINTERFACES_HH_
43#define _DWMLOCALINTERFACES_HH_
46 #include <sys/types.h>
47 #include <sys/socket.h>
48 #include <netinet/in.h>
49 #include <arpa/inet.h>
109 friend std::ostream &
132 const std::string &
Name()
const;
137 const std::string &
Name(
const std::string & name);
175 bool IsRunning()
const;
192 const std::set<LocalInterfaceAlias> &
Aliases()
const;
210 std::set<LocalInterfaceAlias> _aliases;
Dwm::Ipv4Address class definition.
bool GetLocalInterfaces(std::map< std::string, LocalInterface > &interfaces)
Fetches local interfaces with IP addresses into interfaces.
This class encapsulates an IPv4 address.
Definition DwmIpv4Address.hh:63
Holds an interface alias, which is just IP address and netmask.
Definition DwmLocalInterfaces.hh:64
bool operator==(const LocalInterfaceAlias &alias) const
operator ==
const Ipv4Address & Mask(const Ipv4Address &mask)
Sets and returns the netmask.
const Ipv4Address & Addr() const
Returns the IP address.
bool operator<(const LocalInterfaceAlias &alias) const
operator <
LocalInterfaceAlias()
Constructor.
const Ipv4Address & Addr(const Ipv4Address &addr)
Sets and returns the IP address.
friend std::ostream & operator<<(std::ostream &os, const LocalInterfaceAlias &alias)
Prints a LocalInterfaceAlias to an ostream.
const Ipv4Address & Mask() const
Returns the netmask.
LocalInterfaceAlias(const Ipv4Address &address, const Ipv4Address &mask)
Construct from an address and netmask.
Simple class to hold the name and IPv4 address of a local interface.
Definition DwmLocalInterfaces.hh:122
const std::string & Name() const
Returns the interface name.
bool RemoveAlias(const Ipv4Address &address, const Ipv4Address &netmask)
Removes an alias with the given address and netmask.
const Ipv4Address & Addr(const Ipv4Address &addr)
Sets and returns the interface address.
bool IsUp() const
Returns true if the interface is administratively 'up'.
bool AddAlias(const Ipv4Address &address, const Ipv4Address &netmask)
Adds an alias with the given address and netmask.
std::set< LocalInterfaceAlias > & Aliases()
Returns a mutable reference to the aliases.
const Ipv4Address & Mask(const Ipv4Address &mask)
Sets and returns the interface netmask.
int Mtu(int mtu)
Sets and returns the MTU.
const Ipv4Address & Mask() const
Returns the interface netmask.
friend std::ostream & operator<<(std::ostream &os, const LocalInterface &li)
Prints a LocalInterface to an ostream.
const std::set< LocalInterfaceAlias > & Aliases() const
Returns a const reference to the aliases.
int Mtu() const
Returns the MTU.
const std::string & Name(const std::string &name)
Sets and returns the interface name.
LocalInterface()
Constructor.
const Ipv4Address & Addr() const
Returns the interface address.