summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2008-10-09 20:18:52 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2008-10-09 20:18:52 +0000
commit7dbf6935b36ef6929f44ba277b1b569e780b96c7 (patch)
treee12ba5bf23a8a68cbaa75c36c0a50dfa98cb32ad /test
parentdc9a3704bfc313991c54ba985e344d3ee88b4168 (diff)
downloadneon-7dbf6935b36ef6929f44ba277b1b569e780b96c7.tar.gz
Add support for configuring a SOCKS proxy for the HTTP session:
* src/ne_request.c (open_connection): Fix non-proxy error path. Establish connection via SOCKS proxy. * src/ne_session.c (ne_session_socks_proxy): New function. * src/ne_session.h (ne_session_socks_proxy): New prototype. * src/ne_private.h (struct ne_session_s): Add socks_ver, socks_user, socks_password fields. * test/request.c (socks_session, socks_proxy): New functions. git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@1559 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
Diffstat (limited to 'test')
-rw-r--r--test/request.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/request.c b/test/request.c
index 247e738..207181e 100644
--- a/test/request.c
+++ b/test/request.c
@@ -2176,6 +2176,41 @@ static int addrlist(void)
return await_server();
}
+static int socks_session(ne_session **sess, struct socks_server *srv,
+ const char *hostname, unsigned int port,
+ server_fn server, void *userdata)
+{
+ srv->server = server;
+ srv->userdata = userdata;
+ CALL(spawn_server(7777, socks_server, srv));
+ *sess = ne_session_create("http", hostname, port);
+ ne_session_socks_proxy(*sess, srv->version, "localhost", 7777,
+ srv->username, srv->password);
+ return OK;
+}
+
+static int socks_proxy(void)
+{
+ ne_session *sess;
+ struct socks_server srv = {0};
+
+ srv.version = NE_SOCK_SOCKSV5;
+ srv.failure = fail_none;
+ srv.expect_port = 4242;
+ srv.expect_addr = NULL;
+ srv.expect_fqdn = "socks.example.com";
+ srv.username = "bloggs";
+ srv.password = "guessme";
+
+ CALL(socks_session(&sess, &srv, srv.expect_fqdn, srv.expect_port,
+ single_serve_string, EMPTY_RESP));
+
+ CALL(any_2xx_request(sess, "/blee"));
+
+ ne_session_destroy(sess);
+ return await_server();
+}
+
/* TODO: test that ne_set_notifier(, NULL, NULL) DTRT too. */
ne_test tests[] = {
@@ -2267,5 +2302,6 @@ ne_test tests[] = {
T(local_addr),
T(dereg_progress),
T(addrlist),
+ T(socks_proxy),
T(NULL)
};