typos, auto loop refactor and more std::
This commit is contained in:
parent
6a3be6cfd3
commit
bde4718e3f
|
@ -63,7 +63,7 @@ namespace libtorrent {
|
||||||
char name[64];
|
char name[64];
|
||||||
int mtu;
|
int mtu;
|
||||||
// an interface is preferred if its address is
|
// an interface is preferred if its address is
|
||||||
// not tenative/duplicate/deprecated
|
// not tentative/duplicate/deprecated
|
||||||
bool preferred = true;
|
bool preferred = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -184,19 +184,18 @@ namespace libtorrent {
|
||||||
#endif
|
#endif
|
||||||
open_multicast_socket(ios, address_v4::any(), loopback, ec);
|
open_multicast_socket(ios, address_v4::any(), loopback, ec);
|
||||||
|
|
||||||
for (std::vector<ip_interface>::const_iterator i = interfaces.begin()
|
for (auto const& i : interfaces)
|
||||||
, end(interfaces.end()); i != end; ++i)
|
|
||||||
{
|
{
|
||||||
// only multicast on compatible networks
|
// only multicast on compatible networks
|
||||||
if (i->interface_address.is_v4() != m_multicast_endpoint.address().is_v4()) continue;
|
if (i.interface_address.is_v4() != m_multicast_endpoint.address().is_v4()) continue;
|
||||||
// ignore any loopback interface
|
// ignore any loopback interface
|
||||||
if (!loopback && is_loopback(i->interface_address)) continue;
|
if (!loopback && is_loopback(i.interface_address)) continue;
|
||||||
|
|
||||||
ec = error_code();
|
ec = error_code();
|
||||||
|
|
||||||
open_multicast_socket(ios, i->interface_address, loopback, ec);
|
open_multicast_socket(ios, i.interface_address, loopback, ec);
|
||||||
open_unicast_socket(ios, i->interface_address
|
open_unicast_socket(ios, i.interface_address
|
||||||
, i->netmask.is_v4() ? i->netmask.to_v4() : address_v4());
|
, i.netmask.is_v4() ? i.netmask.to_v4() : address_v4());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -107,8 +107,7 @@ namespace {
|
||||||
#if !defined TORRENT_BUILD_SIMULATOR
|
#if !defined TORRENT_BUILD_SIMULATOR
|
||||||
address_v4 inaddr_to_address(in_addr const* ina, int const len = 4)
|
address_v4 inaddr_to_address(in_addr const* ina, int const len = 4)
|
||||||
{
|
{
|
||||||
boost::asio::ip::address_v4::bytes_type b;
|
boost::asio::ip::address_v4::bytes_type b = {};
|
||||||
b.fill(0);
|
|
||||||
if (len > 0) std::memcpy(b.data(), ina, std::min(std::size_t(len), b.size()));
|
if (len > 0) std::memcpy(b.data(), ina, std::min(std::size_t(len), b.size()));
|
||||||
return address_v4(b);
|
return address_v4(b);
|
||||||
}
|
}
|
||||||
|
@ -116,8 +115,7 @@ namespace {
|
||||||
#if TORRENT_USE_IPV6
|
#if TORRENT_USE_IPV6
|
||||||
address_v6 inaddr6_to_address(in6_addr const* ina6, int const len = 16)
|
address_v6 inaddr6_to_address(in6_addr const* ina6, int const len = 16)
|
||||||
{
|
{
|
||||||
boost::asio::ip::address_v6::bytes_type b;
|
boost::asio::ip::address_v6::bytes_type b = {};
|
||||||
b.fill(0);
|
|
||||||
if (len > 0) std::memcpy(b.data(), ina6, std::min(std::size_t(len), b.size()));
|
if (len > 0) std::memcpy(b.data(), ina6, std::min(std::size_t(len), b.size()));
|
||||||
return address_v6(b);
|
return address_v6(b);
|
||||||
}
|
}
|
||||||
|
@ -371,7 +369,7 @@ namespace {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// intiialize name to be empty
|
// initialize name to be empty
|
||||||
ip_info->name[0] = '\0';
|
ip_info->name[0] = '\0';
|
||||||
|
|
||||||
int rt_len = int(IFA_PAYLOAD(nl_hdr));
|
int rt_len = int(IFA_PAYLOAD(nl_hdr));
|
||||||
|
@ -482,8 +480,8 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
strncpy(rv.name, ifa->ifa_name, sizeof(rv.name));
|
std::strncpy(rv.name, ifa->ifa_name, sizeof(rv.name));
|
||||||
rv.name[sizeof(rv.name)-1] = 0;
|
rv.name[sizeof(rv.name) - 1] = 0;
|
||||||
|
|
||||||
// determine address
|
// determine address
|
||||||
rv.interface_address = sockaddr_to_address(ifa->ifa_addr);
|
rv.interface_address = sockaddr_to_address(ifa->ifa_addr);
|
||||||
|
@ -508,12 +506,9 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
|
||||||
#if TORRENT_USE_IPV6
|
#if TORRENT_USE_IPV6
|
||||||
if (a1.is_v6())
|
if (a1.is_v6())
|
||||||
{
|
{
|
||||||
address_v6::bytes_type b1;
|
address_v6::bytes_type b1 = a1.to_v6().to_bytes();
|
||||||
address_v6::bytes_type b2;
|
address_v6::bytes_type b2 = a2.to_v6().to_bytes();
|
||||||
address_v6::bytes_type m;
|
address_v6::bytes_type m = mask.to_v6().to_bytes();
|
||||||
b1 = a1.to_v6().to_bytes();
|
|
||||||
b2 = a2.to_v6().to_bytes();
|
|
||||||
m = mask.to_v6().to_bytes();
|
|
||||||
for (std::size_t i = 0; i < b1.size(); ++i)
|
for (std::size_t i = 0; i < b1.size(); ++i)
|
||||||
{
|
{
|
||||||
b1[i] &= m[i];
|
b1[i] &= m[i];
|
||||||
|
@ -603,7 +598,7 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
|
||||||
ip_interface wan;
|
ip_interface wan;
|
||||||
wan.interface_address = ip;
|
wan.interface_address = ip;
|
||||||
wan.netmask = address_v4::from_string("255.255.255.255");
|
wan.netmask = address_v4::from_string("255.255.255.255");
|
||||||
strcpy(wan.name, "eth0");
|
std::strcpy(wan.name, "eth0");
|
||||||
wan.mtu = ios.sim().config().path_mtu(ip, ip);
|
wan.mtu = ios.sim().config().path_mtu(ip, ip);
|
||||||
ret.push_back(wan);
|
ret.push_back(wan);
|
||||||
}
|
}
|
||||||
|
@ -690,7 +685,7 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ifaddrs* ifa = ifaddr; ifa; ifa = ifa->ifa_next)
|
for (ifaddrs* ifa = ifaddr; ifa != nullptr; ifa = ifa->ifa_next)
|
||||||
{
|
{
|
||||||
if (ifa->ifa_addr == nullptr) continue;
|
if (ifa->ifa_addr == nullptr) continue;
|
||||||
if ((ifa->ifa_flags & IFF_UP) == 0) continue;
|
if ((ifa->ifa_flags & IFF_UP) == 0) continue;
|
||||||
|
@ -754,7 +749,7 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
|
||||||
{
|
{
|
||||||
ip_interface iface;
|
ip_interface iface;
|
||||||
iface.interface_address = sockaddr_to_address(&item.ifr_addr);
|
iface.interface_address = sockaddr_to_address(&item.ifr_addr);
|
||||||
strcpy(iface.name, item.ifr_name);
|
std::strcpy(iface.name, item.ifr_name);
|
||||||
|
|
||||||
ifreq req = {};
|
ifreq req = {};
|
||||||
// -1 to leave a 0-terminator
|
// -1 to leave a 0-terminator
|
||||||
|
@ -772,7 +767,7 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::memset(&req, 0, sizeof(req));
|
std::memset(&req, 0, sizeof(req));
|
||||||
strncpy(req.ifr_name, item.ifr_name, IF_NAMESIZE - 1);
|
std::strncpy(req.ifr_name, item.ifr_name, IF_NAMESIZE - 1);
|
||||||
if (ioctl(s, SIOCGIFNETMASK, &req) < 0)
|
if (ioctl(s, SIOCGIFNETMASK, &req) < 0)
|
||||||
{
|
{
|
||||||
#if TORRENT_USE_IPV6
|
#if TORRENT_USE_IPV6
|
||||||
|
@ -835,7 +830,7 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
|
||||||
adapter != 0; adapter = adapter->Next)
|
adapter != 0; adapter = adapter->Next)
|
||||||
{
|
{
|
||||||
ip_interface r;
|
ip_interface r;
|
||||||
strncpy(r.name, adapter->AdapterName, sizeof(r.name));
|
std::strncpy(r.name, adapter->AdapterName, sizeof(r.name));
|
||||||
r.name[sizeof(r.name)-1] = 0;
|
r.name[sizeof(r.name)-1] = 0;
|
||||||
r.mtu = adapter->Mtu;
|
r.mtu = adapter->Mtu;
|
||||||
for (IP_ADAPTER_UNICAST_ADDRESS* unicast = adapter->FirstUnicastAddress;
|
for (IP_ADAPTER_UNICAST_ADDRESS* unicast = adapter->FirstUnicastAddress;
|
||||||
|
@ -951,7 +946,7 @@ int _System __libsocket_sysctl(int* mib, u_int namelen, void *oldp, size_t *oldl
|
||||||
b[14] = 1;
|
b[14] = 1;
|
||||||
r.gateway = address_v6(b);
|
r.gateway = address_v6(b);
|
||||||
}
|
}
|
||||||
strcpy(r.name, "eth0");
|
std::strcpy(r.name, "eth0");
|
||||||
r.mtu = ios.sim().config().path_mtu(ip, ip);
|
r.mtu = ios.sim().config().path_mtu(ip, ip);
|
||||||
ret.push_back(r);
|
ret.push_back(r);
|
||||||
}
|
}
|
||||||
|
|
|
@ -302,10 +302,10 @@ namespace aux {
|
||||||
void expand_unspecified_address(std::vector<ip_interface> const& ifs
|
void expand_unspecified_address(std::vector<ip_interface> const& ifs
|
||||||
, std::vector<listen_endpoint_t>& eps)
|
, std::vector<listen_endpoint_t>& eps)
|
||||||
{
|
{
|
||||||
auto unspeficied_begin = std::partition(eps.begin(), eps.end()
|
auto unspecified_begin = std::partition(eps.begin(), eps.end()
|
||||||
, [](listen_endpoint_t const& ep) { return !(ep.addr.is_v6() && ep.addr.is_unspecified()); });
|
, [](listen_endpoint_t const& ep) { return !(ep.addr.is_v6() && ep.addr.is_unspecified()); });
|
||||||
std::vector<listen_endpoint_t> unspecified_eps(unspeficied_begin, eps.end());
|
std::vector<listen_endpoint_t> unspecified_eps(unspecified_begin, eps.end());
|
||||||
eps.erase(unspeficied_begin, eps.end());
|
eps.erase(unspecified_begin, eps.end());
|
||||||
for (auto const& uep : unspecified_eps)
|
for (auto const& uep : unspecified_eps)
|
||||||
{
|
{
|
||||||
for (auto const& ipface : ifs)
|
for (auto const& ipface : ifs)
|
||||||
|
|
Loading…
Reference in New Issue