Line 0
Link Here
|
|
|
1 |
--- ncat/ncat_core.c.orig 2009-04-02 04:57:42.000000000 +0200 |
2 |
+++ ncat/ncat_core.c 2009-04-16 14:12:39.000000000 +0200 |
3 |
@@ -11,6 +11,7 @@ |
4 |
#include <netinet/in.h> |
5 |
#include <arpa/inet.h> |
6 |
#endif |
7 |
+#include <sys/param.h> |
8 |
#include <stdlib.h> |
9 |
#include <string.h> |
10 |
#include <stdio.h> |
11 |
@@ -96,13 +97,22 @@ |
12 |
rc = Snprintf(portbuf, sizeof(portbuf), "%hu", port); |
13 |
assert(rc >= 0 && rc < sizeof(portbuf)); |
14 |
|
15 |
+#if (defined(__FreeBSD_version) && (__FreeBSD_version < 800075) \ |
16 |
+ && ((__FreeBSD_version > 800000) || (__FreeBSD_version < 702000))) |
17 |
+ rc = getaddrinfo(hostname, "domain", &hints, &result); |
18 |
+#else |
19 |
rc = getaddrinfo(hostname, portbuf, &hints, &result); |
20 |
+#endif |
21 |
if (rc != 0 || result == NULL) |
22 |
return 0; |
23 |
assert(result->ai_addrlen > 0 && result->ai_addrlen <= (int) sizeof(struct sockaddr_storage)); |
24 |
*sslen = result->ai_addrlen; |
25 |
memcpy(ss, result->ai_addr, *sslen); |
26 |
freeaddrinfo(result); |
27 |
+#if (defined(__FreeBSD_version) && (__FreeBSD_version < 800075) \ |
28 |
+ && ((__FreeBSD_version > 800000) || (__FreeBSD_version < 702000))) |
29 |
+ ((struct sockaddr_in *)ss)->sin_port = htons(port); |
30 |
+#endif |
31 |
return 1; |
32 |
} |
33 |
|