aboutsummaryrefslogtreecommitdiff
path: root/net/socks5/files/patch-aa
diff options
context:
space:
mode:
Diffstat (limited to 'net/socks5/files/patch-aa')
-rw-r--r--net/socks5/files/patch-aa33
1 files changed, 30 insertions, 3 deletions
diff --git a/net/socks5/files/patch-aa b/net/socks5/files/patch-aa
index 393eee3f9f6d..87cc2585803e 100644
--- a/net/socks5/files/patch-aa
+++ b/net/socks5/files/patch-aa
@@ -1,6 +1,6 @@
---- lib/rld.c.org Wed Jun 24 22:32:37 1998
-+++ lib/rld.c Wed Jun 24 22:33:11 1998
-@@ -140,7 +140,7 @@
+--- lib/rld.c.orig Wed Aug 4 04:59:28 1999
++++ lib/rld.c Mon Feb 21 03:55:45 2000
+@@ -143,7 +143,7 @@
static void DGetOriginalFunc(void **fptr, char *name, int libmask) {
/* Synchronize access to func and lib opening functions if we can... */
@@ -9,3 +9,30 @@
name++;
#endif
+@@ -197,6 +197,26 @@
+ lsInRLDFunctions = 0;
+ S5LogUpdate(S5LogDefaultHandle, S5_LOG_DEBUG(10), 0, "RLD: gethostbyname2 results: %s %s", name, hp?hp->h_name:"???");
+ return hp;
++}
++#endif
++
++#ifdef HAVE_GETADDRINFO
++int REAL(getaddrinfo)(const char *hostname, const char *servname,
++ const struct addrinfo *hints, struct addrinfo **aip) {
++ int error;
++ static void *func = NULL;
++
++ S5LogUpdate(S5LogDefaultHandle, S5_LOG_DEBUG(10), 0, "RLD: getaddrinfo: %s", hostname);
++ GetOriginalFunc(&func, "_getaddrinfo", TRY_LIBC | TRY_LIBNSL | TRY_LIBRESOLV);
++ if (!func || func == (void *)-1) return NULL;
++
++ lsInRLDFunctions = 1;
++ error = ((int (*)P((const char *, const char *, const struct addrinfo *,
++ struct addrinfo **)))func)(hostname, servname,
++ hints, aip);
++ lsInRLDFunctions = 0;
++ S5LogUpdate(S5LogDefaultHandle, S5_LOG_DEBUG(10), 0, "RLD: getaddrinfo results: %s %s", hostname, (*aip&&(*aip)->ai_canonname)?(*aip)->ai_canonname:"???");
++ return error;
+ }
+ #endif
+