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

Collapse All | Expand All

(-)net/torsocks/Makefile (-5 / +1 lines)
Lines 2-8 Link Here
2
# $FreeBSD: head/net/torsocks/Makefile 384229 2015-04-18 15:14:57Z tijl $
2
# $FreeBSD: head/net/torsocks/Makefile 384229 2015-04-18 15:14:57Z tijl $
3
3
4
PORTNAME=	torsocks
4
PORTNAME=	torsocks
5
PORTVERSION=	2.0.0
5
PORTVERSION=	2.1.0
6
CATEGORIES=	net security
6
CATEGORIES=	net security
7
MASTER_SITES=	GH
7
MASTER_SITES=	GH
8
DISTNAME=	${GH_ACCOUNT}-${PORTNAME}-${GH_TAGNAME}
8
DISTNAME=	${GH_ACCOUNT}-${PORTNAME}-${GH_TAGNAME}
Lines 33-42 Link Here
33
PORTDOCS=	ChangeLog DEBUG SOCKS5 socks-extensions.txt
33
PORTDOCS=	ChangeLog DEBUG SOCKS5 socks-extensions.txt
34
.endif
34
.endif
35
35
36
post-patch:
37
	${REINPLACE_CMD} -e 's,(defined(__linux__) || defined(__darwin__) || (defined(__FreeBSD_kernel__) && defined(__i386__))),defined(__FreeBSD__),' ${WRKSRC}/src/lib/syscall.c
38
	${REINPLACE_CMD} -e 's,(defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && defined(__x86_64),defined(badbadbad),' ${WRKSRC}/src/lib/syscall.c
39
40
post-build:
36
post-build:
41
	@${ECHO}
37
	@${ECHO}
42
	@${ECHO} "Please run 'make check' (requires bash)."
38
	@${ECHO} "Please run 'make check' (requires bash)."
(-)net/torsocks/files/patch-compatibility-2.0.0 (-43 lines)
Lines 1-43 Link Here
1
--- configure.ac
2
+++ configure.ac
3
@@ -126,6 +126,10 @@ AS_CASE([$host_os],
4
 			libc_name="libc.so.6"
5
 		fi
6
 	],
7
+	[freebsd*],
8
+	[
9
+		libc_name=`ldd /usr/bin/yes | grep 'libc\.' | cut -d ' ' -f 3 | tr -d '\t'`
10
+	],
11
 	[libc_name="libc.so"]
12
 )
13
 AC_DEFINE_UNQUOTED([LIBC_NAME],["${libc_name}"], [Description])
14
--- src/common/compat.h.orig	2014-08-11 09:44:46.000000000 -0700
15
+++ src/common/compat.h	2015-03-24 15:19:54.396135000 -0700
16
@@ -95,6 +95,10 @@
17
 #define TSOCKS_NR_CLOSE     SYS_close
18
 #define TSOCKS_NR_MMAP      SYS_mmap
19
 #define TSOCKS_NR_MUNMAP    SYS_munmap
20
+#if defined(__FreeBSD__)
21
+#define TSOCKS_NR_GETPID    SYS_getpid
22
+#define TSOCKS_NR_FORK      SYS_fork
23
+#endif
24
 
25
 #endif /* __FreeBSD__, __FreeBSD_kernel__, __darwin__, __NetBSD__ */
26
 
27
--- src/lib/syscall.c	2014-08-11 09:44:46.000000000 -0700
28
+++ src/lib/syscall.c	2015-03-24 15:24:10.695024000 -0700
29
@@ -156,6 +156,14 @@
30
 	case TSOCKS_NR_MUNMAP:
31
 		ret = handle_munmap(args);
32
 		break;
33
+#if defined(__FreeBSD__)
34
+	case TSOCKS_NR_FORK:
35
+		ret = tsocks_libc_syscall(TSOCKS_NR_FORK);
36
+		break;
37
+	case TSOCKS_NR_GETPID:
38
+		ret = tsocks_libc_syscall(TSOCKS_NR_GETPID);
39
+		break;
40
+#endif
41
 	default:
42
 		/*
43
 		 * Deny call since we have no idea if this call can leak or not data
(-)net/torsocks/files/patch-configure.ac (+13 lines)
Line 0 Link Here
1
--- configure.ac.orig	2014-08-11 16:44:46 UTC
2
+++ configure.ac
3
@@ -126,6 +126,10 @@ AS_CASE([$host_os],
4
 			libc_name="libc.so.6"
5
 		fi
6
 	],
7
+	[freebsd*],
8
+	[
9
+		libc_name=`ldd /usr/bin/yes | grep 'libc\.' | cut -d ' ' -f 3 | tr -d '\t'`
10
+	],
11
 	[libc_name="libc.so"]
12
 )
13
 AC_DEFINE_UNQUOTED([LIBC_NAME],["${libc_name}"], [Description])
(-)net/torsocks/files/patch-src_common_compat.h (+13 lines)
Line 0 Link Here
1
--- src/common/compat.h.orig	2014-08-11 16:44:46 UTC
2
+++ src/common/compat.h
3
@@ -95,6 +95,10 @@ void tsocks_mutex_unlock(tsocks_mutex_t 
4
 #define TSOCKS_NR_CLOSE     SYS_close
5
 #define TSOCKS_NR_MMAP      SYS_mmap
6
 #define TSOCKS_NR_MUNMAP    SYS_munmap
7
+#if defined(__FreeBSD__)
8
+#define TSOCKS_NR_GETPID    SYS_getpid
9
+#define TSOCKS_NR_FORK      SYS_fork
10
+#endif
11
 
12
 #endif /* __FreeBSD__, __FreeBSD_kernel__, __darwin__, __NetBSD__ */
13
 
(-)net/torsocks/files/patch-src_lib_syscall.c (+35 lines)
Line 0 Link Here
1
--- src/lib/syscall.c.orig	2014-08-11 16:44:46 UTC
2
+++ src/lib/syscall.c
3
@@ -68,7 +68,7 @@ static LIBC_CONNECT_RET_TYPE handle_conn
4
 	return tsocks_connect(sockfd, addr, addrlen);
5
 }
6
 
7
-#if (defined(__linux__) || defined(__darwin__) || (defined(__FreeBSD_kernel__) && defined(__i386__)))
8
+#if defined(__FreeBSD__)
9
 /*
10
  * Handle mmap(2) syscall.
11
  */
12
@@ -122,7 +122,7 @@ LIBC_SYSCALL_RET_TYPE tsocks_syscall(lon
13
 		ret = handle_close(args);
14
 		break;
15
 	case TSOCKS_NR_MMAP:
16
-#if (defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && defined(__x86_64)
17
+#if defined(badbadbad)
18
 		/*
19
 		 * On an 64 bit *BSD system, __syscall(2) should be used for mmap().
20
 		 * This is NOT suppose to happen but for protection we deny that call.
21
@@ -156,6 +156,14 @@ LIBC_SYSCALL_RET_TYPE tsocks_syscall(lon
22
 	case TSOCKS_NR_MUNMAP:
23
 		ret = handle_munmap(args);
24
 		break;
25
+#if defined(__FreeBSD__)
26
+	case TSOCKS_NR_FORK:
27
+		ret = tsocks_libc_syscall(TSOCKS_NR_FORK);
28
+		break;
29
+	case TSOCKS_NR_GETPID:
30
+		ret = tsocks_libc_syscall(TSOCKS_NR_GETPID);
31
+		break;
32
+#endif
33
 	default:
34
 		/*
35
 		 * Deny call since we have no idea if this call can leak or not data
(-)net/torsocks/files/patch-yuri-socks5-error-KEEP-ME.patch (-509 lines)
Lines 1-509 Link Here
1
--- src/common/socks5.c
2
+++ src/common/socks5.c
3
@@ -466,13 +466,15 @@ error:
4
  * Return 0 on success or else a negative value.
5
  */
6
 ATTR_HIDDEN
7
-int socks5_recv_connect_reply(struct connection *conn)
8
+int socks5_recv_connect_reply(struct connection *conn,
9
+		const struct sockaddr *addr)
10
 {
11
 	int ret;
12
 	ssize_t ret_recv;
13
 	unsigned char buffer[22];	/* Maximum size possible (with IPv6). */
14
 	struct socks5_reply msg;
15
 	size_t recv_len;
16
+	char addr_buf[256];
17
 
18
 	assert(conn);
19
 	assert(conn->fd >= 0);
20
@@ -507,47 +509,41 @@ int socks5_recv_connect_reply(struct connection *conn)
21
 	DBG("Socks5 received connect reply - ver: %d, rep: 0x%02x, atype: 0x%02x",
22
 			msg.ver, msg.rep, msg.atyp);
23
 
24
-	switch (msg.rep) {
25
-	case SOCKS5_REPLY_SUCCESS:
26
+	if (msg.rep == SOCKS5_REPLY_SUCCESS) {
27
 		DBG("Socks5 connection is successful.");
28
 		ret = 0;
29
-		break;
30
-	case SOCKS5_REPLY_FAIL:
31
-		ERR("General SOCKS server failure");
32
-		ret = -ECONNREFUSED;
33
-		break;
34
-	case SOCKS5_REPLY_DENY_RULE:
35
-		ERR("Connection not allowed by ruleset");
36
-		ret = -ECONNABORTED;
37
-		break;
38
-	case SOCKS5_REPLY_NO_NET:
39
-		ERR("Network unreachable");
40
-		ret = -ENETUNREACH;
41
-		break;
42
-	case SOCKS5_REPLY_NO_HOST:
43
-		ERR("Host unreachable");
44
-		ret = -EHOSTUNREACH;
45
-		break;
46
-	case SOCKS5_REPLY_REFUSED:
47
-		ERR("Connection refused to Tor SOCKS");
48
-		ret = -ECONNREFUSED;
49
-		break;
50
-	case SOCKS5_REPLY_TTL_EXP:
51
-		ERR("Connection timed out");
52
-		ret = -ETIMEDOUT;
53
-		break;
54
-	case SOCKS5_REPLY_CMD_NOTSUP:
55
-		ERR("Command not supported");
56
-		ret = -ECONNREFUSED;
57
-		break;
58
-	case SOCKS5_REPLY_ADR_NOTSUP:
59
-		ERR("Address type not supported");
60
-		ret = -ECONNREFUSED;
61
-		break;
62
-	default:
63
-		ERR("Socks5 server replied an unknown code %d", msg.rep);
64
-		ret = -ECONNABORTED;
65
-		break;
66
+	} else {
67
+		ERR("%s while connecting to %s",
68
+			socks5_error_message(msg.rep),
69
+			inet_ntoa_r(((struct sockaddr_in*)addr)->sin_addr,
70
+				addr_buf, sizeof(addr_buf)));
71
+		switch (msg.rep) {
72
+		case SOCKS5_REPLY_FAIL:
73
+			ret = -ECONNREFUSED;
74
+			break;
75
+		case SOCKS5_REPLY_DENY_RULE:
76
+			ret = -ECONNABORTED;
77
+			break;
78
+		case SOCKS5_REPLY_NO_NET:
79
+			ret = -ENETUNREACH;
80
+			break;
81
+		case SOCKS5_REPLY_NO_HOST:
82
+			ret = -EHOSTUNREACH;
83
+			break;
84
+		case SOCKS5_REPLY_REFUSED:
85
+			ret = -ECONNREFUSED;
86
+			break;
87
+		case SOCKS5_REPLY_TTL_EXP:
88
+			ret = -ETIMEDOUT;
89
+			break;
90
+		case SOCKS5_REPLY_CMD_NOTSUP:
91
+		case SOCKS5_REPLY_ADR_NOTSUP:
92
+			ret = -ECONNREFUSED;
93
+			break;
94
+		default:
95
+			ret = -ECONNABORTED;
96
+			break;
97
+		}
98
 	}
99
 
100
 error:
101
@@ -623,8 +619,8 @@ error:
102
  * Return 0 on success else a negative value.
103
  */
104
 ATTR_HIDDEN
105
-int socks5_recv_resolve_reply(struct connection *conn, void *addr,
106
-		size_t addrlen)
107
+int socks5_recv_resolve_reply(struct connection *conn, const char *hostname,
108
+		void *addr, size_t addrlen)
109
 {
110
 	int ret;
111
 	size_t recv_len;
112
@@ -648,13 +644,15 @@ int socks5_recv_resolve_reply(struct connection *conn, void *addr,
113
 	}
114
 
115
 	if (buffer.msg.ver != SOCKS5_VERSION) {
116
-		ERR("Bad SOCKS5 version reply");
117
+		ERR("Bad SOCKS5 version reply: expected %d, receved %d",
118
+			SOCKS5_VERSION, buffer.msg.ver);
119
 		ret = -ECONNABORTED;
120
 		goto error;
121
 	}
122
 
123
 	if (buffer.msg.rep != SOCKS5_REPLY_SUCCESS) {
124
-		ERR("Unable to resolve. Status reply: %d", buffer.msg.rep);
125
+		ERR("Unable to resolve host %s: %s (%d)", hostname,
126
+			socks5_error_message(buffer.msg.rep), buffer.msg.rep);
127
 		ret = -ECONNABORTED;
128
 		goto error;
129
 	}
130
@@ -763,7 +761,8 @@ error:
131
  * Return 0 on success else a negative value.
132
  */
133
 ATTR_HIDDEN
134
-int socks5_recv_resolve_ptr_reply(struct connection *conn, char **_hostname)
135
+int socks5_recv_resolve_ptr_reply(struct connection *conn, const char *addr,
136
+		char **_hostname)
137
 {
138
 	int ret;
139
 	ssize_t ret_recv;
140
@@ -790,7 +789,8 @@ int socks5_recv_resolve_ptr_reply(struct connection *conn, char **_hostname)
141
 	}
142
 
143
 	if (buffer.msg.rep != SOCKS5_REPLY_SUCCESS) {
144
-		ERR("Unable to resolve. Status reply: %d", buffer.msg.rep);
145
+		ERR("Unable to resolve host %s: %s (%d)", addr,
146
+			socks5_error_message(buffer.msg.rep), buffer.msg.rep);
147
 		ret = -ECONNABORTED;
148
 		goto error;
149
 	}
150
@@ -815,11 +815,12 @@ int socks5_recv_resolve_ptr_reply(struct connection *conn, char **_hostname)
151
 	}
152
 
153
 	*_hostname = hostname;
154
-	DBG("[socks5] Resolve reply received: %s", *_hostname);
155
+	DBG("[socks5] Resolve reply received: %s (host %s)", *_hostname, addr);
156
 	return 0;
157
 
158
 error:
159
-	free(hostname);
160
+	if (hostname)
161
+		free(hostname);
162
 	return ret;
163
 }
164
 
165
@@ -849,3 +850,29 @@ void socks5_init(ssize_t (*new_send_data)(int, const void *, size_t),
166
 		recv_data = new_recv_data;
167
 	}
168
 }
169
+
170
+const char* socks5_error_message(uint8_t code)
171
+{
172
+	switch (code) {
173
+	case SOCKS5_REPLY_SUCCESS:
174
+		return "Success";
175
+	case SOCKS5_REPLY_FAIL:
176
+		return "General server failure";
177
+	case SOCKS5_REPLY_DENY_RULE:
178
+		return "Connection not allowed by ruleset";
179
+	case SOCKS5_REPLY_NO_NET:
180
+		return "Network unreachable";
181
+	case SOCKS5_REPLY_NO_HOST:
182
+		return "Host unreachable";
183
+	case SOCKS5_REPLY_REFUSED:
184
+		return "Connection to SOCKS server refused";
185
+	case SOCKS5_REPLY_TTL_EXP:
186
+		return "Connection timed out";
187
+	case SOCKS5_REPLY_CMD_NOTSUP:
188
+		return "Command not supported";
189
+	case SOCKS5_REPLY_ADR_NOTSUP:
190
+		return "Address type not supported";
191
+	default:
192
+		return "Unknown error";
193
+	}
194
+}
195
--- src/common/socks5.h
196
+++ src/common/socks5.h
197
@@ -145,16 +145,21 @@ int socks5_recv_user_pass_reply(struct connection *conn);
198
 
199
 /* Connect request. */
200
 int socks5_send_connect_request(struct connection *conn);
201
-int socks5_recv_connect_reply(struct connection *conn);
202
+int socks5_recv_connect_reply(struct connection *conn,
203
+		const struct sockaddr *addr);
204
 
205
 /* Tor DNS resolve. */
206
 int socks5_send_resolve_request(const char *hostname, struct connection *conn);
207
-int socks5_recv_resolve_reply(struct connection *conn, void *addr,
208
-		size_t addrlent);
209
-int socks5_recv_resolve_ptr_reply(struct connection *conn, char **_hostname);
210
+int socks5_recv_resolve_reply(struct connection *conn, const char *hostname,
211
+		void *addr, size_t addrlent);
212
+int socks5_recv_resolve_ptr_reply(struct connection *conn,
213
+		const char *addr, char **_hostname);
214
 int socks5_send_resolve_ptr_request(struct connection *conn, const void *ip, int af);
215
 
216
 void socks5_init(ssize_t (*new_send_data)(int, const void *, size_t),
217
 		ssize_t (*new_recv_data)(int, void *, size_t));
218
 
219
+/* Print error messages in human readable form. */
220
+const char* socks5_error_message(uint8_t code);
221
+
222
 #endif /* TORSOCKS_SOCKS_H */
223
--- src/lib/connect.c
224
+++ src/lib/connect.c
225
@@ -196,7 +196,7 @@ LIBC_CONNECT_RET_TYPE tsocks_connect(LIBC_CONNECT_SIG)
226
 	}
227
 
228
 	/* Connect the socket to the Tor network. */
229
-	ret = tsocks_connect_to_tor(new_conn);
230
+	ret = tsocks_connect_to_tor(new_conn, addr);
231
 	if (ret < 0) {
232
 		ret_errno = -ret;
233
 		goto error_free;
234
--- src/lib/torsocks.c
235
+++ src/lib/torsocks.c
236
@@ -397,7 +397,7 @@ error:
237
  * Return 0 on success or else a negative value being the errno value that
238
  * needs to be sent back.
239
  */
240
-int tsocks_connect_to_tor(struct connection *conn)
241
+int tsocks_connect_to_tor(struct connection *conn, const struct sockaddr *addr)
242
 {
243
 	int ret;
244
 	uint8_t socks5_method;
245
@@ -438,7 +438,7 @@ int tsocks_connect_to_tor(struct connection *conn)
246
 		goto error;
247
 	}
248
 
249
-	ret = socks5_recv_connect_reply(conn);
250
+	ret = socks5_recv_connect_reply(conn, addr);
251
 	if (ret < 0) {
252
 		goto error;
253
 	}
254
@@ -518,7 +518,7 @@ int tsocks_tor_resolve(int af, const char *hostname, void *ip_addr)
255
 	}
256
 
257
 	/* Force IPv4 resolution for now. */
258
-	ret = socks5_recv_resolve_reply(&conn, ip_addr, addr_len);
259
+	ret = socks5_recv_resolve_reply(&conn, hostname, ip_addr, addr_len);
260
 	if (ret < 0) {
261
 		goto end_close;
262
 	}
263
@@ -566,7 +566,7 @@ int tsocks_tor_resolve_ptr(const char *addr, char **ip, int af)
264
 	}
265
 
266
 	/* Force IPv4 resolution for now. */
267
-	ret = socks5_recv_resolve_ptr_reply(&conn, ip);
268
+	ret = socks5_recv_resolve_ptr_reply(&conn, addr, ip);
269
 	if (ret < 0) {
270
 		goto end_close;
271
 	}
272
--- src/lib/torsocks.h
273
+++ src/lib/torsocks.h
274
@@ -416,7 +416,7 @@ extern struct onion_pool tsocks_onion_pool;
275
 
276
 extern unsigned int tsocks_cleaned_up;
277
 
278
-int tsocks_connect_to_tor(struct connection *conn);
279
+int tsocks_connect_to_tor(struct connection *conn, const struct sockaddr *addr);
280
 void *tsocks_find_libc_symbol(const char *symbol,
281
 		enum tsocks_sym_action action);
282
 int tsocks_tor_resolve(int af, const char *hostname, void *ip_addr);
283
--- tests/unit/test_socks5.c
284
+++ tests/unit/test_socks5.c
285
@@ -36,10 +36,11 @@ static struct socks5_request_domain req_name;
286
 static struct socks5_request_resolve req_resolve;
287
 static struct socks5_request_resolve_ptr req_resolve_ptr;
288
 
289
+static struct connection_addr c_addr;
290
+
291
 static struct connection *get_connection_stub(void)
292
 {
293
 	struct connection *conn = NULL;
294
-	struct connection_addr c_addr;
295
 
296
 	connection_addr_set(CONNECTION_DOMAIN_INET,
297
 			DEFAULT_TOR_ADDRESS,
298
@@ -695,7 +696,7 @@ static void test_socks5_recv_connect_reply_success(void)
299
 	conn_stub = get_connection_stub();
300
 	socks5_init(NULL, socks5_recv_connect_reply_ipv4_success_stub);
301
 
302
-	ret = socks5_recv_connect_reply(conn_stub);
303
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
304
 
305
 	ok(ret == 0, "socks5 reply success");
306
 
307
@@ -711,7 +712,7 @@ static void test_socks5_recv_connect_reply_fail(void)
308
 	conn_stub = get_connection_stub();
309
 	socks5_init(NULL, socks5_recv_connect_reply_ipv4_fail_stub);
310
 
311
-	ret = socks5_recv_connect_reply(conn_stub);
312
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
313
 
314
 	ok(ret == -ECONNREFUSED, "socks5 reply fail");
315
 
316
@@ -727,7 +728,7 @@ static void test_socks5_recv_connect_reply_deny_rule(void)
317
 	conn_stub = get_connection_stub();
318
 	socks5_init(NULL, socks5_recv_connect_reply_ipv4_deny_rule_stub);
319
 
320
-	ret = socks5_recv_connect_reply(conn_stub);
321
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
322
 
323
 	ok(ret == -ECONNABORTED, "socks5 reply deny rule");
324
 
325
@@ -743,7 +744,7 @@ static void test_socks5_recv_connect_reply_no_net(void)
326
 	conn_stub = get_connection_stub();
327
 	socks5_init(NULL, socks5_recv_connect_reply_ipv4_no_net_stub);
328
 
329
-	ret = socks5_recv_connect_reply(conn_stub);
330
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
331
 
332
 	ok(ret == -ENETUNREACH, "socks5 reply no net");
333
 
334
@@ -759,7 +760,7 @@ static void test_socks5_recv_connect_reply_no_host(void)
335
 	conn_stub = get_connection_stub();
336
 	socks5_init(NULL, socks5_recv_connect_reply_ipv4_no_host_stub);
337
 
338
-	ret = socks5_recv_connect_reply(conn_stub);
339
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
340
 
341
 	ok(ret == -EHOSTUNREACH, "socks5 reply no host");
342
 
343
@@ -775,7 +776,7 @@ static void test_socks5_recv_connect_reply_refused(void)
344
 	conn_stub = get_connection_stub();
345
 	socks5_init(NULL, socks5_recv_connect_reply_ipv4_refused_stub);
346
 
347
-	ret = socks5_recv_connect_reply(conn_stub);
348
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
349
 
350
 	ok(ret == -ECONNREFUSED, "socks5 reply refused");
351
 
352
@@ -791,7 +792,7 @@ static void test_socks5_recv_connect_reply_ttl_expired(void)
353
 	conn_stub = get_connection_stub();
354
 	socks5_init(NULL, socks5_recv_connect_reply_ipv4_ttl_expired_stub);
355
 
356
-	ret = socks5_recv_connect_reply(conn_stub);
357
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
358
 
359
 	ok(ret == -ETIMEDOUT, "socks5 reply TTL expired");
360
 
361
@@ -808,7 +809,7 @@ static void test_socks5_recv_connect_reply_cmd_not_supported(void)
362
 	socks5_init(NULL,
363
 			socks5_recv_connect_reply_ipv4_cmd_not_supported_stub);
364
 
365
-	ret = socks5_recv_connect_reply(conn_stub);
366
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
367
 
368
 	ok(ret == -ECONNREFUSED, "socks5 reply command not supported");
369
 
370
@@ -825,7 +826,7 @@ static void test_socks5_recv_connect_reply_addr_not_supported(void)
371
 	socks5_init(NULL,
372
 			socks5_recv_connect_reply_ipv4_addr_not_supported_stub);
373
 
374
-	ret = socks5_recv_connect_reply(conn_stub);
375
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
376
 
377
 	ok(ret == -ECONNREFUSED, "socks5 reply address type not supported");
378
 
379
@@ -841,7 +842,7 @@ static void test_socks5_recv_connect_reply_unkown(void)
380
 	conn_stub = get_connection_stub();
381
 	socks5_init(NULL, socks5_recv_connect_reply_ipv4_unkown_stub);
382
 
383
-	ret = socks5_recv_connect_reply(conn_stub);
384
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
385
 
386
 	ok(ret == -ECONNABORTED, "socks5 reply unkown code");
387
 
388
@@ -857,7 +858,7 @@ static void test_socks5_recv_connect_reply_ipv6_success(void)
389
 	conn_stub = get_connection_stub();
390
 	socks5_init(NULL, socks5_recv_connect_reply_ipv6_success_stub);
391
 
392
-	ret = socks5_recv_connect_reply(conn_stub);
393
+	ret = socks5_recv_connect_reply(conn_stub, (struct sockaddr *) &c_addr.u.sin);
394
 
395
 	ok(ret == 0, "socks5 reply IPv6 success");
396
 
397
@@ -931,7 +932,7 @@ static void test_socks5_recv_resolve_reply_valid(void)
398
 	conn_stub = get_connection_stub();
399
 	socks5_init(NULL, socks5_recv_resolve_reply_ipv4_stub);
400
 
401
-	ret = socks5_recv_resolve_reply(conn_stub, &ipv4_addr, sizeof(uint32_t));
402
+	ret = socks5_recv_resolve_reply(conn_stub, "test", &ipv4_addr, sizeof(uint32_t));
403
 
404
 	inet_ntop(AF_INET, &ipv4_addr, ip_str, INET_ADDRSTRLEN);
405
 
406
@@ -947,7 +948,7 @@ static void test_socks5_recv_resolve_reply_valid(void)
407
 	conn_stub = get_connection_ipv6_stub();
408
 	socks5_init(NULL, socks5_recv_resolve_reply_ipv6_stub);
409
 
410
-	ret = socks5_recv_resolve_reply(conn_stub, &ipv6_addr, sizeof(ipv6_addr));
411
+	ret = socks5_recv_resolve_reply(conn_stub, "test", &ipv6_addr, sizeof(ipv6_addr));
412
 
413
 	inet_ntop(AF_INET6, &ipv6_addr, ip_str, INET6_ADDRSTRLEN);
414
 
415
@@ -968,7 +969,7 @@ static void test_socks5_recv_resolve_reply_failure(void)
416
 	conn_stub = get_connection_stub();
417
 	socks5_init(NULL, socks5_recv_data_error_stub);
418
 
419
-	ret = socks5_recv_resolve_reply(conn_stub, &dummy_ip_addr,
420
+	ret = socks5_recv_resolve_reply(conn_stub, "test", &dummy_ip_addr,
421
 			sizeof(dummy_ip_addr));
422
 
423
 	ok(ret == -1, "socks5 resolve reply returns recv error code");
424
@@ -986,7 +987,7 @@ static void test_socks5_recv_resolve_reply_incorrect_version(void)
425
 	conn_stub = get_connection_stub();
426
 	socks5_init(NULL, socks5_recv_resolve_reply_incorrect_version_stub);
427
 
428
-	ret = socks5_recv_resolve_reply(conn_stub, &dummy_ip_addr,
429
+	ret = socks5_recv_resolve_reply(conn_stub, "test", &dummy_ip_addr,
430
 			sizeof(dummy_ip_addr));
431
 
432
 	ok(ret == -ECONNABORTED, "socks5 resolve reply incorrect version");
433
@@ -1004,7 +1005,7 @@ static void test_socks5_recv_resolve_reply_response_error(void)
434
 	conn_stub = get_connection_stub();
435
 	socks5_init(NULL, socks5_recv_resolve_reply_response_error_stub);
436
 
437
-	ret = socks5_recv_resolve_reply(conn_stub, &dummy_ip_addr,
438
+	ret = socks5_recv_resolve_reply(conn_stub, "test", &dummy_ip_addr,
439
 			sizeof(dummy_ip_addr));
440
 
441
 	ok(ret == -ECONNABORTED, "socks5 resolve reply response error");
442
@@ -1022,7 +1023,7 @@ static void test_socks5_recv_resolve_reply_address_type_error(void)
443
 	conn_stub = get_connection_stub();
444
 	socks5_init(NULL, socks5_recv_resolve_reply_address_type_error_stub);
445
 
446
-	ret = socks5_recv_resolve_reply(conn_stub, &dummy_ip_addr,
447
+	ret = socks5_recv_resolve_reply(conn_stub, "test", &dummy_ip_addr,
448
 			sizeof(dummy_ip_addr));
449
 
450
 	ok(ret == -EINVAL, "socks5 resolve reply address type error");
451
@@ -1040,7 +1041,7 @@ static void test_socks5_recv_resolve_reply_addrlen_error(void)
452
 	conn_stub = get_connection_stub();
453
 	socks5_init(NULL, socks5_recv_resolve_reply_addrlen_error_stub);
454
 
455
-	ret = socks5_recv_resolve_reply(conn_stub, &dummy_ip_addr, 1);
456
+	ret = socks5_recv_resolve_reply(conn_stub, "test", &dummy_ip_addr, 1);
457
 
458
 	ok(ret == -EINVAL, "socks5 resolve reply address length error");
459
 
460
@@ -1134,7 +1135,8 @@ static void test_socks5_recv_resolve_ptr_reply_valid(void)
461
 	conn_stub = get_connection_stub();
462
 	socks5_init(NULL, socks5_recv_resolve_ptr_reply_stub);
463
 
464
-	ret = socks5_recv_resolve_ptr_reply(conn_stub, &hostname);
465
+	ret = socks5_recv_resolve_ptr_reply(conn_stub, CONNECTION_DOMAIN_INET,
466
+		&hostname);
467
 
468
 	ok(ret == 0 &&
469
 		strncmp(hostname, "example.org", strlen(hostname)) == 0,
470
@@ -1154,7 +1156,8 @@ static void test_socks5_recv_resolve_ptr_reply_failure(void)
471
 	conn_stub = get_connection_stub();
472
 	socks5_init(NULL, socks5_recv_data_error_stub);
473
 
474
-	ret = socks5_recv_resolve_ptr_reply(conn_stub, &hostname);
475
+	ret = socks5_recv_resolve_ptr_reply(conn_stub, CONNECTION_DOMAIN_INET,
476
+		&hostname);
477
 
478
 	ok(ret == -1, "socks5 recv resolve ptr reply returns recv error code");
479
 
480
@@ -1172,7 +1175,8 @@ static void test_socks5_recv_resolve_ptr_reply_incorrect_version(void)
481
 	conn_stub = get_connection_stub();
482
 	socks5_init(NULL, socks5_recv_resolve_reply_incorrect_version_stub);
483
 
484
-	ret = socks5_recv_resolve_ptr_reply(conn_stub, &hostname);
485
+	ret = socks5_recv_resolve_ptr_reply(conn_stub, CONNECTION_DOMAIN_INET,
486
+		&hostname);
487
 
488
 	ok(ret == -ECONNABORTED, "socks5 recv resolve ptr reply incorrect version");
489
 
490
@@ -1190,7 +1194,8 @@ static void test_socks5_recv_resolve_ptr_reply_response_error(void)
491
 	conn_stub = get_connection_stub();
492
 	socks5_init(NULL, socks5_recv_resolve_reply_response_error_stub);
493
 
494
-	ret = socks5_recv_resolve_ptr_reply(conn_stub, &hostname);
495
+	ret = socks5_recv_resolve_ptr_reply(conn_stub, CONNECTION_DOMAIN_INET,
496
+		&hostname);
497
 
498
 	ok(ret == -ECONNABORTED, "socks5 recv resolve ptr reply response error");
499
 
500
@@ -1208,7 +1213,8 @@ static void test_socks5_recv_resolve_ptr_reply_atyp_error(void)
501
 	conn_stub = get_connection_stub();
502
 	socks5_init(NULL, socks5_recv_resolve_ptr_reply_atyp_error_stub);
503
 
504
-	ret = socks5_recv_resolve_ptr_reply(conn_stub, &hostname);
505
+	ret = socks5_recv_resolve_ptr_reply(conn_stub, CONNECTION_DOMAIN_INET,
506
+		&hostname);
507
 
508
 	ok(ret == -EINVAL, "socks5 recv resolve ptr reply atyp error");
509
 

Return to bug 200503