1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-29 10:18:30 +00:00

- Add patch to work around versions of FreeBSD with broken

getaddrinfo(3) (7.1 and earlier, and -CURRENT before the end of March
  2009).

PR:		ports/133779
Submitted by:	Daniel Roethlisberger <daniel@roe.ch> (maintainer)
This commit is contained in:
Wesley Shields 2009-04-21 15:36:56 +00:00
parent e4cfacfa55
commit 5098fed9c7
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=232432
2 changed files with 34 additions and 0 deletions

View File

@ -7,6 +7,7 @@
PORTNAME= nmap
DISTVERSION= 4.85BETA7
PORTREVISION= 1
CATEGORIES= security ipv6
MASTER_SITES= http://nmap.org/dist/ \
http://www.mirrors.wiretapped.net/security/network-mapping/nmap/ \

View File

@ -0,0 +1,33 @@
--- ncat/ncat_core.c.orig 2009-04-02 04:57:42.000000000 +0200
+++ ncat/ncat_core.c 2009-04-16 14:12:39.000000000 +0200
@@ -11,6 +11,7 @@
#include <netinet/in.h>
#include <arpa/inet.h>
#endif
+#include <sys/param.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
@@ -96,13 +97,22 @@
rc = Snprintf(portbuf, sizeof(portbuf), "%hu", port);
assert(rc >= 0 && rc < sizeof(portbuf));
+#if (defined(__FreeBSD_version) && (__FreeBSD_version < 800075) \
+ && ((__FreeBSD_version > 800000) || (__FreeBSD_version < 702000)))
+ rc = getaddrinfo(hostname, "domain", &hints, &result);
+#else
rc = getaddrinfo(hostname, portbuf, &hints, &result);
+#endif
if (rc != 0 || result == NULL)
return 0;
assert(result->ai_addrlen > 0 && result->ai_addrlen <= (int) sizeof(struct sockaddr_storage));
*sslen = result->ai_addrlen;
memcpy(ss, result->ai_addr, *sslen);
freeaddrinfo(result);
+#if (defined(__FreeBSD_version) && (__FreeBSD_version < 800075) \
+ && ((__FreeBSD_version > 800000) || (__FreeBSD_version < 702000)))
+ ((struct sockaddr_in *)ss)->sin_port = htons(port);
+#endif
return 1;
}