diff options
author | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2012-06-26 10:13:33 +0000 |
---|---|---|
committer | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2012-06-26 10:13:33 +0000 |
commit | 2e07c98a3458da33a777dd4df159463864033a85 (patch) | |
tree | 7647b237a8a1e483d0aec23a03ed78a6258edae6 | |
parent | 4f50a65041ba63d29c183190801c5899b377e27c (diff) | |
download | neon-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.c | 28 | ||||
-rw-r--r-- | test/utils.h | 10 |
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); |