hgomez 02/02/22 02:08:35 Modified: jk/native2/server/apache2 jk_service_apache2.c Log: Correct problems with headers handling, mod_jk2 was broken. Now mod_jk 2.0.0 works correctly with Tomcat 3.3.1-b1 There is still a problem with Tomcat 4.0.2 and SessionId Revision Changes Path 1.9 +11 -5 jakarta-tomcat-connectors/jk/native2/server/apache2/jk_service_apache2.c Index: jk_service_apache2.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_service_apache2.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- jk_service_apache2.c 21 Feb 2002 11:18:59 -0000 1.8 +++ jk_service_apache2.c 22 Feb 2002 10:08:35 -0000 1.9 @@ -59,7 +59,7 @@ * Description: Apache 2 plugin for Jakarta/Tomcat * Author: Gal Shachor <[EMAIL PROTECTED]> * Henri Gomez <[EMAIL PROTECTED]> - * Version: $Revision: 1.8 $ + * Version: $Revision: 1.9 $ */ #include "apu_compat.h" @@ -99,6 +99,7 @@ static int JK_METHOD jk2_service_apache2_head(jk_env_t *env, jk_ws_service_t *s ) { int h; + int numheaders; request_rec *r; jk_map_t *headers; @@ -114,17 +115,19 @@ r->status_line = apr_psprintf(r->pool, "%d %s", s->status, s->msg); headers=s->headers_out; + numheaders = headers->size(env, headers); /* XXX As soon as we switch to jk_map_apache2, this will not be needed ! */ env->l->jkLog(env, env->l, JK_LOG_INFO, "service.head() %d %d\n", s->status, - headers->size(env, headers )); + numheaders); - for(h = 0 ; h < headers->size( env, headers ) ; h++) { + for(h = 0 ; h < numheaders; h++) { char *name=headers->nameAt( env, headers, h ); char *val=headers->valueAt( env, headers, h ); env->l->jkLog(env, env->l, JK_LOG_INFO, - "service.head() %s: %s\n", name, val); + "service.head() %s: %s %d %d\n", name, val, h, headers->size( env, headers )); + /* the cmp can also be avoided in we do this earlier and use the header id */ if(!strcasecmp(name, "Content-type")) { @@ -132,6 +135,7 @@ char *tmp = apr_pstrdup(r->pool, val); ap_content_type_tolower(tmp); r->content_type = tmp; + apr_table_set(r->headers_out, name, val); } else if(!strcasecmp(name, "Location")) { /* XXX setn */ apr_table_set(r->headers_out, name, val); @@ -146,8 +150,10 @@ */ ap_update_mtime(r, ap_parseHTTPdate(val)); ap_set_last_modified(r); + apr_table_set(r->headers_out, name, val); } else { - apr_table_add(r->headers_out, name, val); + /* apr_table_add(r->headers_out, name, val); */ + apr_table_set(r->headers_out, name, val); } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>