You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mod_tcl-dev@tcl.apache.org by ml...@apache.org on 2002/03/11 20:47:06 UTC

cvs commit: tcl-modtcl tcl_core.c

mlink       02/03/11 11:47:06

  Modified:    .        tcl_core.c
  Log:
  changed non-content handlers to include a filename argument so that
  per-directory handlers can be executed with a mix of mod_tcl scripts
  and other files like html.
  
  Revision  Changes    Path
  1.11      +23 -14    tcl-modtcl/tcl_core.c
  
  Index: tcl_core.c
  ===================================================================
  RCS file: /home/cvs/tcl-modtcl/tcl_core.c,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- tcl_core.c	5 Mar 2002 18:35:04 -0000	1.10
  +++ tcl_core.c	11 Mar 2002 19:47:06 -0000	1.11
  @@ -95,14 +95,14 @@
   	
   	AP_INIT_TAKE2(		"Tcl_Hook_Post_Read_Request",	/*(fz_t)*/ add_hand2,		(void*) 0,	OR_AUTHCFG,		"add post_read_request handlers." ),
   	AP_INIT_TAKE2(		"Tcl_Hook_Translate_Name",		/*(fz_t)*/ add_hand2,		(void*) 1,	OR_AUTHCFG,		"add translate_name handlers." ),
  -	AP_INIT_TAKE1(		"Tcl_Hook_Header_Parser",		/*(fz_t)*/ add_hand1,		(void*) 2,	OR_AUTHCFG,		"add header_parser handlers." ),
  -	AP_INIT_TAKE1(		"Tcl_Hook_Access_Checker",		/*(fz_t)*/ add_hand1,		(void*) 3,	OR_AUTHCFG,		"add access_checker handlers." ),
  -	AP_INIT_TAKE1(		"Tcl_Hook_Check_User_ID",		/*(fz_t)*/ add_hand1,		(void*) 4,	OR_AUTHCFG,		"add check_user_id handlers." ),
  -	AP_INIT_TAKE1(		"Tcl_Hook_Auth_Checker",		/*(fz_t)*/ add_hand1,		(void*) 5,	OR_AUTHCFG,		"add auth_checker handlers." ),
  -	AP_INIT_TAKE1(		"Tcl_Hook_Type_Checker",		/*(fz_t)*/ add_hand1,		(void*) 6,	OR_AUTHCFG,		"add type_checker handlers." ),
  -	AP_INIT_TAKE1(		"Tcl_Hook_Fixups",				/*(fz_t)*/ add_hand1,		(void*) 7,	OR_AUTHCFG,		"add fixups handlers." ),
  +	AP_INIT_TAKE2(		"Tcl_Hook_Header_Parser",		/*(fz_t)*/ add_hand2,		(void*) 2,	OR_AUTHCFG,		"add header_parser handlers." ),
  +	AP_INIT_TAKE2(		"Tcl_Hook_Access_Checker",		/*(fz_t)*/ add_hand2,		(void*) 3,	OR_AUTHCFG,		"add access_checker handlers." ),
  +	AP_INIT_TAKE2(		"Tcl_Hook_Check_User_ID",		/*(fz_t)*/ add_hand2,		(void*) 4,	OR_AUTHCFG,		"add check_user_id handlers." ),
  +	AP_INIT_TAKE2(		"Tcl_Hook_Auth_Checker",		/*(fz_t)*/ add_hand2,		(void*) 5,	OR_AUTHCFG,		"add auth_checker handlers." ),
  +	AP_INIT_TAKE2(		"Tcl_Hook_Type_Checker",		/*(fz_t)*/ add_hand2,		(void*) 6,	OR_AUTHCFG,		"add type_checker handlers." ),
  +	AP_INIT_TAKE2(		"Tcl_Hook_Fixups",				/*(fz_t)*/ add_hand2,		(void*) 7,	OR_AUTHCFG,		"add fixups handlers." ),
   	AP_INIT_TAKE1(		"Tcl_Hook_Handler",				/*(fz_t)*/ add_hand1,		(void*) 8,	OR_AUTHCFG,		"add content handler." ),
  -	AP_INIT_TAKE1(		"Tcl_Hook_Log_Transaction",		/*(fz_t)*/ add_hand1,		(void*) 9,	OR_AUTHCFG,		"add log_transaction handlers." ),
  +	AP_INIT_TAKE2(		"Tcl_Hook_Log_Transaction",		/*(fz_t)*/ add_hand2,		(void*) 9,	OR_AUTHCFG,		"add log_transaction handlers." ),
   //	AP_INIT_RAW_ARGS(	"<Tcl>",						/*(fz_t)*/ tcl_raw_args,	NULL,		RSRC_CONF|EXEC_ON_READ,		"add raw tcl to the interpreter." ),
   	{ NULL }
   };
  @@ -142,7 +142,7 @@
   typedef struct {
   	int					fl;
   	char				*handlers[10];
  -	char				*file_location[2];
  +	char				*file_location[10];
   	apr_array_header_t	*var_list;
   } tcl_config_rec;
   
  @@ -168,7 +168,7 @@
   	tclr->var_list	= apr_array_make(p, 0, sizeof(var_cache));
   	
   	memset(tclr->handlers, 0, 10 * sizeof(char*));
  -	memset(tclr->file_location, 0, 2 * sizeof(char*));
  +	memset(tclr->file_location, 0, 10 * sizeof(char*));
   	
   	return tclr;
   }
  @@ -554,7 +554,7 @@
   	}";
   	
   	run_script(interp, buf);
  -
  +	
   	return OK;
   }
   
  @@ -572,8 +572,8 @@
   
   static int tcl_init_handler(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
   {
  -	ap_add_version_component(pconf, "mod_tcl/1.0d8-2002030500");
  -
  +	ap_add_version_component(pconf, "mod_tcl/1.0d8-2002031000");
  +	
   	return OK;
   }
   
  @@ -585,6 +585,7 @@
   	file_cache *fptr = NULL, *fa = (file_cache*) fcache->elts;
   	var_cache *vl = (var_cache*) tclr->var_list->elts;
   	struct stat st;
  +	char *tmp_filename;
   	
   	if (!interp) {
   		return DECLINED;
  @@ -595,7 +596,14 @@
   		return DECLINED;
   	}
   	
  -	if (hh < 2) {
  +	if (hh != 8) {
  +		if (hh < 2) {
  +			tmp_filename = tclr->file_location[hh];
  +		}
  +		else {
  +			tmp_filename = r->filename;
  +		}
  +		
   		/* this will be rewritten by some translation... */
   		r->filename = tclr->file_location[hh];
   	}
  @@ -763,6 +771,8 @@
   		Tcl_GetIntFromObj(interp, Tcl_GetObjResult(interp), &xx);
   	}
   	
  +	r->filename = tmp_filename;
  +	
   	return xx;
   }
   
  @@ -805,7 +815,6 @@
   {
   	return run_handler(r, 7);
   }
  -
   
   inline int tcl_handler(request_rec *r)
   {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: mod_tcl-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: mod_tcl-dev-help@tcl.apache.org