summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2012-06-26 10:13:33 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2012-06-26 10:13:33 +0000
commit2e07c98a3458da33a777dd4df159463864033a85 (patch)
tree7647b237a8a1e483d0aec23a03ed78a6258edae6
parent4f50a65041ba63d29c183190801c5899b377e27c (diff)
downloadneon-2e07c98a3458da33a777dd4df159463864033a85.tar.gz
* test/utils.c (fakeproxied_session_server): New function.
git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@1890 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
-rw-r--r--test/utils.c28
-rw-r--r--test/utils.h10
2 files changed, 36 insertions, 2 deletions
diff --git a/test/utils.c b/test/utils.c
index 0749774..aa3141b 100644
--- a/test/utils.c
+++ b/test/utils.c
@@ -201,6 +201,34 @@ int proxied_session_server(ne_session **sess, const char *scheme,
return OK;
}
+static void fakesess_destroy(void *userdata)
+{
+ ne_inet_addr *addr = userdata;
+
+ ne_iaddr_free(addr);
+}
+
+int fakeproxied_session_server(ne_session **sess, const char *scheme,
+ const char *host, unsigned int fakeport,
+ server_fn fn, void *userdata)
+{
+ unsigned int port;
+ ne_inet_addr *addr;
+ const ne_inet_addr *alist[1];
+
+ CALL(new_spawn_server2(1, fn, userdata, &addr, &port));
+
+ alist[0] = addr;
+
+ *sess = ne_session_create(scheme, host, fakeport);
+
+ ne_set_addrlist2(*sess, port, alist, 1);
+
+ ne_hook_destroy_session(*sess, fakesess_destroy, addr);
+
+ return OK;
+}
+
int make_session(ne_session **sess, server_fn fn, void *ud)
{
return session_server(sess, fn, ud);
diff --git a/test/utils.h b/test/utils.h
index 39c4722..21cea13 100644
--- a/test/utils.h
+++ b/test/utils.h
@@ -118,12 +118,18 @@ int session_server(ne_session **sess, server_fn fn, void *userdata);
/* Create a session with server process running fn(userdata). Sets
* test suite error on failure; initializes *sess with a new session
* on success. Uses an unspecified hostname/port for the server;
- * session is created as if using origin 'host:fakeport' via proxy to
- * spawned server. */
+ * session is created as if using origin 'host:fakeport' via HTTP
+ * proxy to spawned server. */
int proxied_session_server(ne_session **sess, const char *scheme,
const char *host, unsigned int fakeport,
server_fn fn, void *userdata);
+/* As per proxied_session_server, but uses a "fake" (direct) TCP proxy
+ * rather than an HTTP proxy. */
+int fakeproxied_session_server(ne_session **sess, const char *scheme,
+ const char *host, unsigned int fakeport,
+ server_fn fn, void *userdata);
+
/* Read contents of file 'filename' into buffer 'buf'. */
int file_to_buffer(const char *filename, ne_buffer *buf);