const struct sockaddr_in *saddr,
int child_num, int thread_num);
CORE_EXPORT(void) ap_process_connection(conn_rec *);
+int ap_process_http_connection(conn_rec *);
/* Hooks */
DECLARE_HOOK(void,pre_connection,(conn_rec *))
+DECLARE_HOOK(int,process_connection,(conn_rec *))
#ifdef __cplusplus
}
HOOK_STRUCT(
HOOK_LINK(pre_connection)
+ HOOK_LINK(process_connection)
);
IMPLEMENT_VOID_HOOK(pre_connection,(conn_rec *c),(c),RUN_ALL)
+IMPLEMENT_HOOK(int,process_connection,(conn_rec *c),(c),RUN_FIRST,OK,DECLINED)
/* TODO: re-implement the lingering close stuff */
#define NO_LINGCLOSE
CORE_EXPORT(void) ap_process_connection(conn_rec *c)
{
- request_rec *r;
-
ap_update_vhost_given_ip(c);
ap_run_pre_connection(c);
+ ap_run_process_connection(c);
+}
+
+int ap_process_http_connection(conn_rec *c)
+ {
+ request_rec *r;
+
/*
* Read and process each request found on our connection
* until no requests are left or we decide to close.
if (ap_graceful_stop_signalled()) {
/* XXX: hey wait, this should do a lingering_close! */
ap_bclose(c->client);
- return;
+ return OK;
}
}
ap_bclose(c->client);
}
#endif
+
+ return OK;
}
/* Clearly some of this stuff doesn't belong in a generalised connection