View | Details | Raw Unified | Return to bug 145789 | Differences between
and this patch

Collapse All | Expand All

(-)net/udpxy/Makefile (-5 / +13 lines)
Lines 6-12 Link Here
6
#
6
#
7
7
8
PORTNAME=	udpxy
8
PORTNAME=	udpxy
9
PORTVERSION=	1.0.15
9
PORTVERSION=	1.0.16
10
CATEGORIES=	net
10
CATEGORIES=	net
11
MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/${RELEASE_MASCOT}-${PORTVERSION:R}
11
MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/${RELEASE_MASCOT}-${PORTVERSION:R}
12
DISTNAME=	${PORTNAME}.${PORTVERSION:R}-${RELEASE_MASCOT}-${PORTVERSION:E}
12
DISTNAME=	${PORTNAME}.${PORTVERSION:R}-${RELEASE_MASCOT}-${PORTVERSION:E}
Lines 20-27 Link Here
20
USE_GMAKE=	yes
20
USE_GMAKE=	yes
21
MAKE_JOBS_SAFE=	yes
21
MAKE_JOBS_SAFE=	yes
22
RELEASE_MASCOT=	Chipmunk
22
RELEASE_MASCOT=	Chipmunk
23
CFLAGS+=	-DNDEBUG
23
OPTIONS=	RELEASE "No asserts, no debug symbols, verbose mode on"	on \
24
OPTIONS=	TRACING	"Enable tracing (verbose)"	off
24
		LEAN "No asserts, no debug symbols, verbose mode off" off \
25
		DEBUG "Asserts, debug symbols, verbose mode on" off
25
26
26
PLIST_FILES=	sbin/udpxy \
27
PLIST_FILES=	sbin/udpxy \
27
		sbin/udpxrec
28
		sbin/udpxrec
Lines 32-39 Link Here
32
33
33
.include <bsd.port.pre.mk>
34
.include <bsd.port.pre.mk>
34
35
35
.ifdef WITH_TRACING
36
.if defined(WITH_RELEASE) && defined(WITHOUT_LEAN) && defined(WITHOUT_DEBUG)
36
CFLAGS+=	-DTRACE_MODULE
37
ALL_TARGET=release
38
.elif defined(WITH_LEAN) && defined(WITHOUT_RELEASE) && defined(WITHOUT_DEBUG)
39
ALL_TARGET=lean
40
.elif defined(WITH_DEBUG) && defined(WITHOUT_RELEASE) && defined(WITHOUT_LEAN)
41
ALL_TARGET=debug
42
WITH_DEBUG=yes
43
.else
44
IGNORE=please run 'make config' again and select one build option
37
.endif
45
.endif
38
46
39
.include <bsd.port.post.mk>
47
.include <bsd.port.post.mk>
(-)net/udpxy/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
MD5 (udpxy.1.0-Chipmunk-15.tgz) = ef992c1f2f4622439252968c8e920b20
1
MD5 (udpxy.1.0-Chipmunk-16.tgz) = 0bba6fd3e0b0065424b198abdf0acb7d
2
SHA256 (udpxy.1.0-Chipmunk-15.tgz) = ca2ded933336c7cd6afe530539a85624b2cd497a11b79dc6cf051be25e91f14c
2
SHA256 (udpxy.1.0-Chipmunk-16.tgz) = d6e9e387e4fb465c8835bb95c6b1488122a20cc47a6991733b814bbcab31c325
3
SIZE (udpxy.1.0-Chipmunk-15.tgz) = 79093
3
SIZE (udpxy.1.0-Chipmunk-16.tgz) = 79231
(-)net/udpxy/files/patch-Makefile (-17 lines)
Lines 1-17 Link Here
1
--- Makefile	2009-07-23 19:28:41.000000000 +0000
2
+++ Makefile	2010-01-08 23:47:38.630600000 +0000
3
@@ -141,4 +141,5 @@
4
 else
5
 make_deps := HPATH='.' $(MKDEP_TOOL) -- $(SRC)
6
+$(DEPFILE):	$(MKDEP_TOOL)
7
 endif
8
 
9
@@ -150,6 +151,6 @@
10
 	@ls -l $@
11
 
12
-$(DEPFILE): $(MKDEP_TOOL) $(SRC)
13
-	$($(MAKE)_deps) > $(DEPFILE)
14
+$(DEPFILE): $(SRC)
15
+	$(make_deps) > $(DEPFILE)
16
 
17
 $(EXEC) : $(DEPFILE) $(OBJ)
(-)net/udpxy/files/patch-ifaddr.c (-149 lines)
Lines 1-149 Link Here
1
--- ifaddr.c.orig	2010-01-14 23:49:24.515378502 +0300
2
+++ ifaddr.c	2010-01-14 23:50:07.723908032 +0300
3
@@ -10,6 +10,7 @@
4
 #include <stdlib.h>
5
 #include <netinet/in.h>
6
 #include <arpa/inet.h>
7
+#include <ifaddrs.h>
8
 
9
 #include <assert.h>
10
 #include <limits.h>
11
@@ -21,114 +22,29 @@
12
  */
13
 int
14
 if2addr( const char* ifname,
15
-             struct sockaddr *addr, size_t addrlen )
16
+             struct sockaddr_in *addr, size_t addrlen )
17
 {
18
-    int rc, sockfd;
19
-    char *buf, *rec;
20
-    size_t buflen, sa_len;
21
-    int last_len;
22
-    struct ifconf  ifc;
23
-    struct ifreq   ifr;
24
-
25
-    static size_t IFC_TABLE_SIZE;
26
-
27
-    static const size_t IFC_ENTRIES = 32;
28
-    static const size_t MAX_IFCBUF_SIZE = (1024 * 256);
29
-
30
-    IFC_TABLE_SIZE = sizeof(struct ifreq) * IFC_ENTRIES;
31
+    int rc = -1;
32
+    struct ifaddrs *ifr, *ifc;
33
+    struct sockaddr_in *sin;
34
 
35
     assert( ifname && addr && addrlen );
36
-    rc = 0;
37
-
38
-    /* acquire the list of network interfaces */
39
-
40
-    sockfd = socket( AF_INET, SOCK_DGRAM, 0 );
41
-    if( -1 == sockfd ) return -1;
42
-
43
-    buf = NULL; buflen = IFC_TABLE_SIZE; last_len = 0;
44
-    for( ; buflen < MAX_IFCBUF_SIZE; buflen += IFC_TABLE_SIZE ) {
45
-        if( NULL == (buf = malloc( buflen )) ) {
46
-            rc = -1;
47
-            break;
48
-        }
49
-
50
-        ifc.ifc_len = buflen;
51
-        ifc.ifc_buf = buf;
52
-        if( ioctl( sockfd, SIOCGIFCONF, &ifc ) < 0 ) {
53
-            if( (EINVAL != errno) || (last_len != 0) ) {
54
-                rc = errno;
55
-                break;
56
-            }
57
-        }
58
-        else {
59
-            if( ifc.ifc_len == last_len )
60
-                break;
61
-            else
62
-                last_len = ifc.ifc_len;
63
-        }
64
-
65
-        free( buf );
66
-        buf = NULL;
67
-    } /* for */
68
-
69
-    (void) close( sockfd );
70
-    if( buflen > MAX_IFCBUF_SIZE ) rc = -1;
71
-
72
-    if( 0 != rc ) {
73
-        if( NULL != buf ) free( buf );
74
-        return rc;
75
-    }
76
 
77
-    assert( ifc.ifc_buf );
78
+    getifaddrs(&ifr);
79
 
80
-    /* look for ifname in the list */
81
-
82
-    for( rec = ifc.ifc_buf; rec < (ifc.ifc_buf + ifc.ifc_len); ) {
83
-        (void) memcpy( &ifr, rec, sizeof(struct ifreq) );
84
-
85
-        #ifdef NO_SOCKADDR_SA_LEN
86
-        switch( ifr.ifr_addr.sa_family )
87
-        {
88
-            case AF_INET:
89
-                sa_len = sizeof(struct sockaddr); break;
90
-#ifndef NO_INET6_SUPPORT
91
-            case AF_INET6:
92
-                sa_len = sizeof(struct sockaddr_in6); break;
93
-#endif
94
-            default:
95
-                rc = -1; break;
96
-        }
97
-        #else
98
-        sa_len = ifr.ifr_addr.sa_len;
99
-        #endif
100
-        if( 0 != rc ) break;
101
-
102
-        if( ifr.ifr_addr.sa_family != AF_INET )
103
+    for (ifc = ifr; ifc != NULL; ifc = ifc->ifa_next) {
104
+	if (strcmp(ifc->ifa_name, ifname) != 0)
105
             continue;
106
-
107
-        if( 0 == strncmp(ifname, ifr.ifr_name, sizeof(struct ifreq)) ) {
108
-            if( addrlen < sa_len ) {
109
-                rc = -1;
110
-                break;
111
-            }
112
-
113
-            (void) memcpy( addr, &(ifr.ifr_addr), sa_len );
114
-            break;
115
-        }
116
-        else {
117
-            /* rec += (sa_len + sizeof( ifr.ifr_name )); */
118
-            /**** the above is per R. Stevens' book and not working
119
-             **** on 64-bit Linux */
120
-
121
-            rec += sizeof(ifr);
122
-        }
123
-    } /* for */
124
-
125
-    if( rec >= (buf + ifc.ifc_len) ) {
126
-        rc = -1;
127
+        if (ifc->ifa_addr == NULL)
128
+            continue;
129
+        sin = (struct sockaddr_in *)ifc->ifa_addr;
130
+        if (sin->sin_family != AF_INET)
131
+            continue;
132
+        memcpy(addr, sin, addrlen);
133
+        rc = 0;
134
     }
135
 
136
-    free( buf );
137
+    freeifaddrs(ifr);
138
     return rc;
139
 }
140
 
141
@@ -147,7 +63,7 @@
142
         (void) strncpy( buf, s, len );
143
     }
144
     else {
145
-        rc = if2addr( s, (struct sockaddr*)&saddr, sizeof(saddr) );
146
+        rc = if2addr( s, (struct sockaddr_in *)&saddr, sizeof(saddr) );
147
         if( 0 != rc ) return rc;
148
 
149
         (void) strncpy( buf, inet_ntoa(saddr.sin_addr), len );
(-)net/udpxy/files/patch-ifaddr.h (-11 lines)
Lines 1-11 Link Here
1
--- ifaddr.h.orig	2010-01-14 23:49:31.288490434 +0300
2
+++ ifaddr.h	2010-01-14 23:49:56.636770433 +0300
3
@@ -21,7 +21,7 @@
4
  */
5
 int
6
 if2addr( const char* ifname,
7
-         struct sockaddr *addr, size_t addrlen );
8
+         struct sockaddr_in *addr, size_t addrlen );
9
 
10
 
11
 /* convert input parameter into an IPv4-address string

Return to bug 145789