python-texttable: update to 1.3.1
[void-packages.git] / srcpkgs / eiskaltdcpp-qt / patches / Util.cpp.patch
blob50603313aeb33346936a73050f89160d32e07827
1 --- dcpp/Util.cpp 2015-04-20 02:57:16.000000000 +0500
2 +++ dcpp/Util.cpp.new 2017-10-09 15:00:00.000000000 +0500
3 @@ -171,8 +171,8 @@
4 ::GetShortPathName(localePath_.c_str(), buf, sizeof(buf)/sizeof(TCHAR));
5 if (Util::getPath(Util::PATH_LOCALE).empty())
6 paths[PATH_LOCALE] = Text::fromT(buf);
7 - if (Util::getPath(Util::PATH_DOWNLOADS).empty())
8 - paths[PATH_DOWNLOADS] = getDownloadsPath(paths[PATH_USER_CONFIG]);
9 + //if (Util::getPath(Util::PATH_DOWNLOADS).empty())
10 + // paths[PATH_DOWNLOADS] = getDownloadsPath(paths[PATH_USER_CONFIG]);
12 #else
13 if (Util::getPath(Util::PATH_GLOBAL_CONFIG).empty())
14 @@ -704,7 +704,7 @@
15 #endif
18 -vector<string> Util::getLocalIPs() {
19 +vector<string> Util::getLocalIPs(unsigned short sa_family) {
20 vector<string> addresses;
22 #ifdef HAVE_IFADDRS_H
23 @@ -712,6 +712,9 @@
25 if (getifaddrs(&ifap) == 0)
27 + bool ipv4 = (sa_family == AF_UNSPEC) || (sa_family == AF_INET);
28 + bool ipv6 = (sa_family == AF_UNSPEC) || (sa_family == AF_INET6);
30 for (struct ifaddrs *i = ifap; i != NULL; i = i->ifa_next)
32 struct sockaddr *sa = i->ifa_addr;
33 @@ -723,14 +726,14 @@
34 socklen_t len;
36 // IPv4 address
37 - if (sa->sa_family == AF_INET)
38 + if (ipv4 && (sa->sa_family == AF_INET))
40 struct sockaddr_in* sai = (struct sockaddr_in*)sa;
41 src = (void*) &(sai->sin_addr);
42 len = INET_ADDRSTRLEN;
44 // IPv6 address
45 - else if (sa->sa_family == AF_INET6)
46 + else if (ipv6 && (sa->sa_family == AF_INET6))
48 struct sockaddr_in6* sai6 = (struct sockaddr_in6*)sa;
49 src = (void*) &(sai6->sin6_addr);
50 @@ -752,9 +755,13 @@
52 return addresses;
54 -string Util::getLocalIp() {
55 +string Util::getLocalIp(unsigned short as_family) {
56 #ifdef HAVE_IFADDRS_H
57 - return getLocalIPs().empty() ? "0.0.0.0" : getLocalIPs()[0];
58 + vector<string> addresses = getLocalIPs(as_family);
59 + if (addresses.empty())
60 + return (((as_family == AF_UNSPEC) || (as_family == AF_INET)) ? "0.0.0.0" : "::");
62 + return addresses[0];
63 #else
64 string tmp;