costin      00/12/20 11:32:43

  Modified:    src/native/mod_jk/apache2.0 Makefile.linux mod_jk.c
  Log:
  More changes for Apache2.0.
  
  Now it works for pages<4k, there is still a problem with ap_rwrite()
  when we send larger pages ( probably we need to call a different apache
  function )
  
  Note that APXS changed and now uses libtool in a strange mode ( i.e. apxs *.c
  will create a module for each c file instead of the previous behavior when
  it creates a module containing all c files ).
  
  That means you have to use Makefile.linux to build - I hope Dan or Henri will
  take a look and write a "real" makefile.
  
  Revision  Changes    Path
  1.4       +6 -8      jakarta-tomcat/src/native/mod_jk/apache2.0/Makefile.linux
  
  Index: Makefile.linux
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/native/mod_jk/apache2.0/Makefile.linux,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Makefile.linux    2000/12/19 21:19:20     1.3
  +++ Makefile.linux    2000/12/20 19:32:42     1.4
  @@ -1,34 +1,32 @@
   ## You need to edit this file - configure later :-)
   
  -APACHE_HOME=/usr/local/apache-2.0a9
  +APACHE_HOME=/usr/local/apache2.0
   OS=linux
   
  -# AP20_SRC=/home/costin/src/jakarta/apache-2.0/src
  -
   ## I assume this one is set up already
   # JAVA_HOME=
   
   ## 
   
   AP20_INCL=-I${APACHE_HOME}/include/apr -I${APACHE_HOME}/include/apr-util 
-I${APACHE_HOME}/include
  +
   JAVA_INCL=-I${JAVA_HOME}/include -I${JAVA_HOME}/include/${OS}
  -JAVA_LIB=-L${JAVA_HOME}/jre/lib/${ARCH} -L${JAVA_HOME}/lib/${ARCH}/native_threads
   
  -# AP20SRC_INCL=-I. -I${AP20_SRC}/modules/standard -I${AP20_SRC} 
-I${AP20_SRC}/include -I${AP20_SRC}/lib/apr/include -I${AP20_SRC}/os/unix
  +JAVA_LIB=-L${JAVA_HOME}/jre/lib/${ARCH} -L${JAVA_HOME}/lib/${ARCH}/native_threads
   
   CFLAGS=-DHAVE_CONFIG_H -g -fpic  -DSHARED_MODULE -O2 -D_REENTRANT -pthread -DLINUX 
-Wall -DAPACHE2_SIGHACK
   
   SRCS=jk_ajp12_worker.c jk_connect.c jk_msg_buff.c jk_util.c jk_ajp13.c \
        jk_jni_worker.c jk_pool.c jk_worker.c jk_ajp13_worker.c jk_lb_worker.c \
  -     jk_sockbuf.c  jk_map.c jk_uri_worker_map.c          
  +     jk_sockbuf.c  jk_map.c jk_uri_worker_map.c 
   
   OBJS=${patsubst %.c,%.o,${SRCS}}
   
   %.o: ../common/%.c 
  -     ${CC} -c ${CFLAGS} ${JAVA_INCL} ${AP20SRC_INCL}  $< -o $@
  +     ${CC} -c ${CFLAGS} ${JAVA_INCL} ${AP20_INCL}  $< -o $@
   
   .c.o:
  -     ${CC} -c ${CFLAGS} ${JAVA_INCL} ${AP20SRC_INCL} -I../common $<
  +     ${CC} -c ${CFLAGS} ${JAVA_INCL} ${AP20_INCL} -I../common $<
   
   all: mod_jk.so
   
  
  
  
  1.5       +23 -13    jakarta-tomcat/src/native/mod_jk/apache2.0/mod_jk.c
  
  Index: mod_jk.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/native/mod_jk/apache2.0/mod_jk.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- mod_jk.c  2000/12/19 23:18:30     1.4
  +++ mod_jk.c  2000/12/20 19:32:42     1.5
  @@ -222,6 +222,7 @@
               // BUFF *bf = p->r->connection->client;
               size_t w = (size_t)l;
               size_t r = 0;
  +         long ll=l;
   
               if(!p->response_started) {
                   if(!s->start_response(s, 200, NULL, NULL, NULL, 0)) {
  @@ -229,20 +230,29 @@
                   }
               }
               
  -             
  -            //ap_bwrite(bf, (const char *)b, w, &r);
  -         r = ap_rwrite((const char *)b, w, p->r );
  -            if(w != r) {
  -                         return JK_FALSE;
  -            }
  +         // Debug - try to get around rwrite
  +         while( ll > 0 ) {
  +             long toSend=(ll>2048) ? 2048 : ll;
  +             r = ap_rwrite((const char *)b, toSend, p->r );
  +             ll-=2048;
  +             
  +             // DEBUG 
  +             ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_NOERRNO, 0, 
  +                          NULL, "mod_jk: writing %ld (%ld) out of %ld bytes \n",  
  +                          toSend, r, ll );
  +             if(toSend != r) { 
  +                 return JK_FALSE; 
  +             } 
   
  -            /*
  -             * To allow server push.
  -             */
  -         //            if(ap_bflush(bf) != APR_SUCCESS) {
  -            if(ap_rflush(p->r) != APR_SUCCESS) {
  -                return JK_FALSE;
  -            }
  +             /*
  +              * To allow server push.
  +              */
  +             if(ap_rflush(p->r) != APR_SUCCESS) {
  +                 ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_NOERRNO, 0, 
  +                              NULL, "mod_jk: Error flushing \n"  );
  +                 return JK_FALSE;
  +             }
  +         }
           }
   
           return JK_TRUE;
  
  
  

Reply via email to