Return-Path: Delivered-To: apache-cvs-archive@hyperreal.org Received: (qmail 27319 invoked by uid 6000); 22 Jul 1999 19:17:30 -0000 Received: (qmail 27303 invoked by alias); 22 Jul 1999 19:17:28 -0000 Delivered-To: apache-2.0-cvs@hyperreal.org Received: (qmail 27295 invoked by uid 124); 22 Jul 1999 19:17:27 -0000 Date: 22 Jul 1999 19:17:27 -0000 Message-ID: <19990722191727.27294.qmail@hyperreal.org> From: ben@hyperreal.org To: apache-2.0-cvs@hyperreal.org Subject: cvs commit: apache-2.0/mpm/src/main http_connection.c http_core.c http_request.c Sender: apache-cvs-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org ben 99/07/22 12:17:26 Modified: mpm/src/include ap_hooks.h http_connection.h mpm/src/main http_connection.c http_core.c http_request.c Log: And with one bound, he was free! This seemingly minor change allows modules to take over connection processing, thus making Apache multiprotocol. Woo! Revision Changes Path 1.8 +4 -1 apache-2.0/mpm/src/include/ap_hooks.h Index: ap_hooks.h =================================================================== RCS file: /export/home/cvs/apache-2.0/mpm/src/include/ap_hooks.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ap_hooks.h 1999/07/11 16:54:02 1.7 +++ ap_hooks.h 1999/07/22 19:17:15 1.8 @@ -60,8 +60,11 @@ return rv_final; \ } +/* RUN_ALL runs to the first one to return other than ok or decline + RUN_FIRST runs to the first one to return other than ok +*/ #define RUN_ALL 1 -#define RUN_TO_FIRST_ERROR 0 +#define RUN_FIRST 0 #define IMPLEMENT_HOOK(ret,name,args,args2,run_all,ok,decline) \ IMPLEMENT_HOOK_BASE(ret,ret r_;,r_=,r_,name,args,args2,run_all,r_ != decline,r_ != ok,run_all ? ok : decline) 1.5 +2 -0 apache-2.0/mpm/src/include/http_connection.h Index: http_connection.h =================================================================== RCS file: /export/home/cvs/apache-2.0/mpm/src/include/http_connection.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- http_connection.h 1999/07/05 13:00:42 1.4 +++ http_connection.h 1999/07/22 19:17:16 1.5 @@ -69,9 +69,11 @@ 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 } 1.11 +12 -3 apache-2.0/mpm/src/main/http_connection.c Index: http_connection.c =================================================================== RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_connection.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- http_connection.c 1999/07/11 16:42:24 1.10 +++ http_connection.c 1999/07/22 19:17:21 1.11 @@ -66,9 +66,11 @@ 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 @@ -190,12 +192,17 @@ 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. @@ -216,7 +223,7 @@ if (ap_graceful_stop_signalled()) { /* XXX: hey wait, this should do a lingering_close! */ ap_bclose(c->client); - return; + return OK; } } @@ -241,6 +248,8 @@ ap_bclose(c->client); } #endif + + return OK; } /* Clearly some of this stuff doesn't belong in a generalised connection 1.8 +3 -0 apache-2.0/mpm/src/main/http_core.c Index: http_core.c =================================================================== RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_core.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- http_core.c 1999/07/17 10:35:40 1.7 +++ http_core.c 1999/07/22 19:17:22 1.8 @@ -67,6 +67,7 @@ #include "rfc1413.h" #include "util_md5.h" #include "fnmatch.h" +#include "http_connection.h" #ifdef USE_MMAP_FILES #include @@ -2632,6 +2633,8 @@ static void register_hooks() { ap_hook_translate_name(core_translate,NULL,NULL,HOOK_REALLY_LAST); + ap_hook_process_connection(ap_process_http_connection,NULL,NULL, + HOOK_REALLY_LAST); } API_VAR_EXPORT module core_module = { 1.12 +2 -4 apache-2.0/mpm/src/main/http_request.c Index: http_request.c =================================================================== RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_request.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- http_request.c 1999/07/17 10:35:42 1.11 +++ http_request.c 1999/07/22 19:17:23 1.12 @@ -83,10 +83,8 @@ HOOK_LINK(check_user_id) ) -IMPLEMENT_HOOK(int,translate_name,(request_rec *r),(r),RUN_TO_FIRST_ERROR,OK, - DECLINED) -IMPLEMENT_HOOK(int,check_user_id,(request_rec *r),(r),RUN_TO_FIRST_ERROR,OK, - DECLINED) +IMPLEMENT_HOOK(int,translate_name,(request_rec *r),(r),RUN_FIRST,OK,DECLINED) +IMPLEMENT_HOOK(int,check_user_id,(request_rec *r),(r),RUN_FIRST,OK,DECLINED) /***************************************************************** *