Oups in fact it JkOptions :::
with options :
+ForwardUnparsed => Forward URI as unparsed, spec compliant but broke
mod_rewrite
-ForwardUnparsed => Forward URI normally, less spec compliant but
mod_rewrite compatible
+ForwardSSLKeySize => Forward SSL Key Size, to follow 2.3 specs but may
broke old TC 3.2
-ForwardSSLKeySize => Don't Forward SSL Key Size, will make mod_jk works
with all TC release
-
Henri Gomez ___[_]____
EMAIL : [EMAIL PROTECTED] (. .)
PGP KEY : 697ECEDD ...oOOo..(_)..oOOo...
PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6
>-----Original Message-----
>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
>Sent: Friday, September 14, 2001 7:45 PM
>To: [EMAIL PROTECTED]
>Subject: cvs commit: jakarta-tomcat-connectors/jk/native/common
>jk_global.h
>
>
>hgomez 01/09/14 10:45:15
>
> Modified: jk/native/apache-1.3 mod_jk.c
> jk/native/common jk_global.h
> Log:
> Add JkSetOptions
>
> Revision Changes Path
> 1.15 +111 -40
>jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c
>
> Index: mod_jk.c
> ===================================================================
> RCS file:
>/home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c,v
> retrieving revision 1.14
> retrieving revision 1.15
> diff -u -r1.14 -r1.15
> --- mod_jk.c 2001/09/10 18:32:36 1.14
> +++ mod_jk.c 2001/09/14 17:45:14 1.15
> @@ -61,7 +61,7 @@
> * Author: Gal Shachor <[EMAIL PROTECTED]>
> *
> * Dan Milstein <[EMAIL PROTECTED]>
> *
> * Henri Gomez <[EMAIL PROTECTED]>
> *
> - * Version: $Revision: 1.14 $
> *
> + * Version: $Revision: 1.15 $
> *
>
>***************************************************************
>************/
>
> /*
> @@ -142,6 +142,11 @@
> char *key_size_indicator;
>
> /*
> + * Jk Options
> + */
> + int options;
> +
> + /*
> * Environment variables support
> */
> int envvars_in_use;
> @@ -280,12 +285,12 @@
> }
> }
>
> - if(p->read_body_started) {
> - long rv;
> - if ((rv = ap_get_client_block(p->r, b, len)) < 0) {
> - *actually_read = 0;
> + if(p->read_body_started) {
> + long rv;
> + if ((rv = ap_get_client_block(p->r, b, len)) < 0) {
> + *actually_read = 0;
> } else {
> - *actually_read = (unsigned) rv;
> + *actually_read = (unsigned) rv;
> }
> return JK_TRUE;
> }
> @@ -460,23 +465,33 @@
> s->server_software = (char *)ap_get_server_version();
>
> s->method = (char *)r->method;
> - s->content_length = get_content_length(r);
> - s->is_chunked = r->read_chunked;
> + s->content_length = get_content_length(r);
> + s->is_chunked = r->read_chunked;
> s->no_more_chunks = 0;
> s->query_string = r->args;
>
> - /*
> + if (conf->options & JK_OPT_FWDUNPARSED) {
> + /*
> * The 2.2 servlet spec errata says the uri from
> * HttpServletRequest.getRequestURI() should remain encoded.
> * [http://java.sun.com/products/servlet/errata_042700.html]
> - */
> - s->req_uri = r->unparsed_uri;
> - if (s->req_uri != NULL) {
> - char *query_str = strchr(s->req_uri, '?');
> - if (query_str != NULL) {
> - *query_str = 0;
> - }
> - }
> + *
> + * we follow spec in that case but can't use mod_rewrite
> + */
> + s->req_uri = r->unparsed_uri;
> + if (s->req_uri != NULL) {
> + char *query_str = strchr(s->req_uri, '?');
> + if (query_str != NULL) {
> + *query_str = 0;
> + }
> + }
> + }
> + else {
> + /*
> + * we don't follow spec but we can use mod_rewrite
> + */
> + s->req_uri = r->uri;
> + }
>
> s->is_ssl = JK_FALSE;
> s->ssl_cert = NULL;
> @@ -738,7 +753,6 @@
>
> /* Set up our value */
> conf->ssl_enable = flag ? JK_TRUE : JK_FALSE;
> -
> return NULL;
> }
>
> @@ -756,8 +770,7 @@
> jk_server_conf_t *conf =
> (jk_server_conf_t
>*)ap_get_module_config(s->module_config, &jk_module);
>
> - conf->https_indicator = indicator;
> -
> + conf->https_indicator = ap_pstrdup(cmd->pool,indicator);
> return NULL;
> }
>
> @@ -774,9 +787,8 @@
> server_rec *s = cmd->server;
> jk_server_conf_t *conf =
> (jk_server_conf_t
>*)ap_get_module_config(s->module_config, &jk_module);
> -
> - conf->certs_indicator = indicator;
>
> + conf->certs_indicator = ap_pstrdup(cmd->pool,indicator);
> return NULL;
> }
>
> @@ -793,9 +805,8 @@
> server_rec *s = cmd->server;
> jk_server_conf_t *conf =
> (jk_server_conf_t
>*)ap_get_module_config(s->module_config, &jk_module);
> -
> - conf->cipher_indicator = indicator;
>
> + conf->cipher_indicator = ap_pstrdup(cmd->pool,indicator);
> return NULL;
> }
>
> @@ -813,8 +824,7 @@
> jk_server_conf_t *conf =
> (jk_server_conf_t
>*)ap_get_module_config(s->module_config, &jk_module);
>
> - conf->session_indicator = indicator;
> -
> + conf->session_indicator = ap_pstrdup(cmd->pool,indicator);
> return NULL;
> }
>
> @@ -831,9 +841,58 @@
> server_rec *s = cmd->server;
> jk_server_conf_t *conf =
> (jk_server_conf_t
>*)ap_get_module_config(s->module_config, &jk_module);
> +
> + conf->key_size_indicator = ap_pstrdup(cmd->pool,indicator);
> + return NULL;
> +}
> +
> +/*
> + * JkOptions Directive Handling
> + *
> + *
> + * +ForwardUnparsed => Forward URI as unparsed, spec
>compliant but broke mod_rewrite
> + * -ForwardUnparsed => Forward URI normally, less spec
>compliant but mod_rewrite compatible
> + * +ForwardSSLKeySize => Forward SSL Key Size, to follow
>2.3 specs but may broke old TC 3.2
> + * -ForwardSSLKeySize => Don't Forward SSL Key Size, will
>make mod_jk works with all TC release
> + */
> +
> +const char *jk_set_options(cmd_parms *cmd,
> + void *dummy,
> + const char *line)
> +{
> + int opt = 0;
> + char action;
> + char *w;
> +
> + server_rec *s = cmd->server;
> + jk_server_conf_t *conf =
> + (jk_server_conf_t
>*)ap_get_module_config(s->module_config, &jk_module);
> +
> + while (line[0] != 0) {
> + w = ap_getword_conf(cmd->pool, &line);
> + action = 0;
>
> - conf->key_size_indicator = indicator;
> + if (*w == '+' || *w == '-') {
> + action = *(w++);
> + }
>
> + if (!strcasecmp(w, "ForwardUnparsedUri"))
> + opt = JK_OPT_FWDUNPARSED;
> + else if (!strcasecmp(w, "ForwardKeySize"))
> + opt = JK_OPT_FWDKEYSIZE;
> + else
> + return ap_pstrcat(cmd->pool, "JkOptions:
>Illegal option '", w, "'", NULL);
> +
> + if (action == '-') {
> + conf->options &= ~opt;
> + }
> + else if (action == '+') {
> + conf->options |= opt;
> + }
> + else { /* for now +Opt == Opt */
> + conf->options |= opt;
> + }
> + }
> return NULL;
> }
>
> @@ -929,6 +988,17 @@
> {"JkExtractSSL", jk_set_enable_ssl, NULL, RSRC_CONF, FLAG,
> "Turns on SSL processing and information gathering by
>mod_jk"},
>
> + /*
> + * Options to tune mod_jk configuration
> + * for now we understand :
> + * +ForwardUnparsed => Forward URI as unparsed, spec
>compliant but broke mod_rewrite
> + * -ForwardUnparsed => Forward URI normally, less
>spec compliant but mod_rewrite compatible
> + * +ForwardSSLKeySize => Forward SSL Key Size, to
>follow 2.3 specs but may broke old TC 3.2
> + * -ForwardSSLKeySize => Don't Forward SSL Key Size,
>will make mod_jk works with all TC release
> + */
> + {"JkOptions", jk_set_options, NULL, RSRC_CONF, RAW_ARGS,
> + "Set one of more options to configure the mod_jk module"},
> +
> /*
> * JkEnvVar let user defines envs var passed from WebServer to
> * Servlet Engine
> @@ -950,17 +1020,17 @@
> {
> /* Retrieve the worker name stored by jk_translate() */
> const char *worker_name = ap_table_get(r->notes, JK_WORKER_ID);
> - int rc;
> + int rc;
>
> if(r->proxyreq) {
> return HTTP_INTERNAL_SERVER_ERROR;
> - }
> -
> + }
> +
>
> - /* Set up r->read_chunked flags for chunked encoding,
>if present */
> - if(rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK)) {
> - return rc;
> - }
> + /* Set up r->read_chunked flags for chunked encoding,
>if present */
> + if(rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK)) {
> + return rc;
> + }
>
> if(worker_name) {
> jk_server_conf_t *conf =
> @@ -990,7 +1060,7 @@
> int is_recoverable_error = JK_FALSE;
> rc = end->service(end, &s, l,
>&is_recoverable_error);
>
> - if (s.content_read < s.content_length ||
> + if (s.content_read < s.content_length ||
> (s.is_chunked && ! s.no_more_chunks)) {
> /*
> * If the servlet engine didn't
>consume all of the
> @@ -1103,11 +1173,12 @@
> jk_server_conf_t *overrides = (jk_server_conf_t *)overridesv;
>
> if(base->ssl_enable) {
> - overrides->ssl_enable = base->ssl_enable;
> - overrides->https_indicator = base->https_indicator;
> - overrides->certs_indicator = base->certs_indicator;
> - overrides->cipher_indicator = base->cipher_indicator;
> - overrides->session_indicator = base->session_indicator;
> + overrides->ssl_enable = base->ssl_enable;
> + overrides->https_indicator = base->https_indicator;
> + overrides->certs_indicator = base->certs_indicator;
> + overrides->cipher_indicator = base->cipher_indicator;
> + overrides->session_indicator = base->session_indicator;
> + overrides->key_size_indicator = base->key_size_indicator;
> }
>
> if(overrides->mountcopy) {
>
>
>
> 1.6 +8 -1
>jakarta-tomcat-connectors/jk/native/common/jk_global.h
>
> Index: jk_global.h
> ===================================================================
> RCS file:
>/home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_global.h,v
> retrieving revision 1.5
> retrieving revision 1.6
> diff -u -r1.5 -r1.6
> --- jk_global.h 2001/06/22 16:22:01 1.5
> +++ jk_global.h 2001/09/14 17:45:15 1.6
> @@ -59,7 +59,7 @@
> * Description: Global definitions and include files that
>should exist *
> * anywhere
> *
> * Author: Gal Shachor <[EMAIL PROTECTED]>
> *
> - * Version: $Revision: 1.5 $
> *
> + * Version: $Revision: 1.6 $
> *
>
>***************************************************************
>************/
>
> #ifndef JK_GLOBAL_H
> @@ -147,6 +147,13 @@
> #define FILE_SEPERATOR ('/')
> #define PATH_ENV_VARIABLE ("LD_LIBRARY_PATH")
> #endif
> +
> +/*
> + * JK options
> + */
> +
> +#define JK_OPT_FWDUNPARSED 0x0001
> +#define JK_OPT_FWDKEYSIZE 0x0002
>
> #ifdef __cplusplus
> }
>
>
>
>