mirror of
https://github.com/mfontanini/libtins
synced 2026-01-30 05:24:26 +01:00
Add missing operators to address classes (#275)
* * add or-operator and a simlple unit test for hw_address, ip_address, ipv6_address * add not-operator and a simlple unit test for hw_address, ip_address, ipv6_address * add greater-then-operator and a simlple unit test for ipv6_address * add new constructor and a simlple unit test for network_interface, which use a ipv6_address to find the nic * add override the function gateway_from_ip for ipv6_address parameter (untested) * change the ipv6_address in NotMaskAdress_Test, so that the expceted addresses are valid for the winsock api * Delete CMakeLists.txt.user * * add <=, >, >= operator for HWAddress with tests * add <=, >, >= operator for IPv4Address with tests * add <=,>= operator for IPv6Address with tests * refactoring the & , |, ~ operator of ipv6_address to "regular" operator
This commit is contained in:
committed by
Matias Fontanini
parent
7848e28b62
commit
342e2c77a7
@@ -110,6 +110,14 @@ struct Route6Entry {
|
||||
template<typename ForwardIterator>
|
||||
void route_entries(ForwardIterator output);
|
||||
|
||||
/**
|
||||
* \brief Retrieves entries in the routing table.
|
||||
*
|
||||
* \brief output ForwardIterator in which entries will be stored.
|
||||
*/
|
||||
template<typename ForwardIterator>
|
||||
void route6_entries(ForwardIterator output);
|
||||
|
||||
/**
|
||||
* \brief Retrieves entries in the routing table.
|
||||
*
|
||||
@@ -117,6 +125,7 @@ void route_entries(ForwardIterator output);
|
||||
*/
|
||||
TINS_API std::vector<RouteEntry> route_entries();
|
||||
|
||||
|
||||
/**
|
||||
* \brief Retrieves entries in the routing table.
|
||||
*
|
||||
@@ -146,6 +155,19 @@ TINS_API std::set<std::string> network_interfaces();
|
||||
*/
|
||||
TINS_API bool gateway_from_ip(IPv4Address ip, IPv4Address& gw_addr);
|
||||
|
||||
/**
|
||||
* \brief Finds the gateway's IP address for the given IP
|
||||
* address.
|
||||
*
|
||||
* \param ip The IP address for which the default gateway will
|
||||
* be searched.
|
||||
* \param gw_addr This parameter will contain the gateway's IP
|
||||
* address in case it is found.
|
||||
*
|
||||
* \return bool indicating whether the lookup was successfull.
|
||||
*/
|
||||
TINS_API bool gateway_from_ip(IPv6Address ip, IPv6Address& gw_addr);
|
||||
|
||||
} // Utils
|
||||
} // Tins
|
||||
|
||||
@@ -158,4 +180,13 @@ void Tins::Utils::route_entries(ForwardIterator output) {
|
||||
}
|
||||
}
|
||||
|
||||
template<typename ForwardIterator>
|
||||
void Tins::Utils::route6_entries(ForwardIterator output) {
|
||||
std::vector<Route6Entry> entries = route6_entries();
|
||||
for (size_t i = 0; i < entries.size(); ++i) {
|
||||
*output = entries[i];
|
||||
++output;
|
||||
}
|
||||
}
|
||||
|
||||
#endif // TINS_ROUTING_UTILS_H
|
||||
|
||||
Reference in New Issue
Block a user