summaryrefslogtreecommitdiff
path: root/test/util-socks.c
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2009-09-02 15:50:05 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2009-09-02 15:50:05 +0000
commit779b58baf1bd0ec0abc8760234567549c4f12acd (patch)
treead2ef89d802e2d62dcb6f8cfc6688581c62ec4ec /test/util-socks.c
parent1326f3c72166f210beae76314baa7a50f34c25f6 (diff)
downloadneon-779b58baf1bd0ec0abc8760234567549c4f12acd.tar.gz
* test/util-socks.c (read_socks_0string): Pass through context string.
(socks_server): Fail for v4 server without expected address. Don't write "ok" message for v4 server without say_hello flag. git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@1709 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
Diffstat (limited to 'test/util-socks.c')
-rw-r--r--test/util-socks.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/test/util-socks.c b/test/util-socks.c
index a055bf5..0734460 100644
--- a/test/util-socks.c
+++ b/test/util-socks.c
@@ -90,7 +90,7 @@ static int read_socks_0string(ne_socket *sock, const char *ctx,
unsigned char *end = buf + *len, *p = buf;
while (p < end) {
- CALL(read_socks_byte(sock, "NUL-terminated string read", p));
+ CALL(read_socks_byte(sock, ctx, p));
if (*p == '\0')
break;
@@ -131,6 +131,9 @@ int socks_server(ne_socket *sock, void *userdata)
srv->version == NE_SOCK_SOCKSV4A && srv->expect_addr == NULL
&& memcmp(buf + 2, "\0\0\0", 3) != 0 && buf[6] != 0);
+ ONN("v4 server with no expected address! fail",
+ srv->version == NE_SOCK_SOCKSV4 && srv->expect_addr == NULL);
+
if (srv->expect_addr) {
ONN("v4 address mismatch",
memcmp(ne_iaddr_raw(srv->expect_addr, raw), buf + 2, 4) != 0);
@@ -156,9 +159,16 @@ int socks_server(ne_socket *sock, void *userdata)
("bad v4A hostname: %s not %s", buf, srv->expect_fqdn));
}
- CALL(full_write(sock, "\x00\x5A"
- "\x00\x00" "\x00\x00\x00\x00"
- "ok!\n", 12));
+ {
+ static const char msg[] = "\x00\x5A"
+ "\x00\x00" "\x00\x00\x00\x00"
+ "ok!\n";
+
+ if (srv->say_hello)
+ CALL(full_write(sock, msg, 12));
+ else
+ CALL(full_write(sock, msg, 8));
+ }
return srv->server(sock, srv->userdata);
}