summaryrefslogtreecommitdiff
path: root/src/ne_session.c
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2006-09-26 09:13:42 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2006-09-26 09:13:42 +0000
commitc3706745d52552e6b1d9d89ba9e0054bd753812c (patch)
tree6860465c5d0ca700e68458ee10ca1ea20e914fa7 /src/ne_session.c
parent808cce47c401fcbbf6036fc9668716b85df4a58c (diff)
downloadneon-c3706745d52552e6b1d9d89ba9e0054bd753812c.tar.gz
Add new hook which runs after the headers have been read:
* src/ne_request.h (ne_post_headers_fn, ne_hook_post_headers): Add type, prototype. * src/ne_private.h (struct ne_session_s): Add post_headers_hooks field. * src/ne_request.c (ne_begin_request): Run post_headers hooks. * src/ne_session.c (ne_session_destroy): Destroy post_headers hooks. (ne_hook_post_headers, ne_unhook_post_headers): New functions. * test/request.c (status_to_string): New function. (hook_post_send): Use it. (hook_post_headers): New function. (hooks): Test post_headers hook. git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@1075 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
Diffstat (limited to 'src/ne_session.c')
-rw-r--r--src/ne_session.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ne_session.c b/src/ne_session.c
index 3c2f822..b6e545b 100644
--- a/src/ne_session.c
+++ b/src/ne_session.c
@@ -68,6 +68,7 @@ void ne_session_destroy(ne_session *sess)
destroy_hooks(sess->create_req_hooks);
destroy_hooks(sess->pre_send_hooks);
+ destroy_hooks(sess->post_headers_hooks);
destroy_hooks(sess->post_send_hooks);
destroy_hooks(sess->destroy_req_hooks);
destroy_hooks(sess->destroy_sess_hooks);
@@ -392,6 +393,12 @@ void ne_hook_post_send(ne_session *sess, ne_post_send_fn fn, void *userdata)
ADD_HOOK(sess->post_send_hooks, fn, userdata);
}
+void ne_hook_post_headers(ne_session *sess, ne_post_headers_fn fn,
+ void *userdata)
+{
+ ADD_HOOK(sess->post_headers_hooks, fn, userdata);
+}
+
void ne_hook_destroy_request(ne_session *sess,
ne_destroy_req_fn fn, void *userdata)
{
@@ -437,6 +444,12 @@ void ne_unhook_pre_send(ne_session *sess, ne_pre_send_fn fn, void *userdata)
REMOVE_HOOK(sess->pre_send_hooks, fn, userdata);
}
+void ne_unhook_post_headers(ne_session *sess, ne_post_headers_fn fn,
+ void *userdata)
+{
+ REMOVE_HOOK(sess->post_headers_hooks, fn, userdata);
+}
+
void ne_unhook_post_send(ne_session *sess, ne_post_send_fn fn, void *userdata)
{
REMOVE_HOOK(sess->post_send_hooks, fn, userdata);