costin 02/05/30 11:05:08 Modified: jk/native2/common jk_channel_apr_socket.c jk_channel.c jk_channel_jni.c jk_channel_socket.c jk_channel_un.c Log: Use the common super method for setAttribute. This allows setDisabled() on channel to propagate to worker, and reduce the code duplication. Added the JK_INVOKE_WITH_RESPONSE case to read(). Revision Changes Path 1.21 +1 -4 jakarta-tomcat-connectors/jk/native2/common/jk_channel_apr_socket.c Index: jk_channel_apr_socket.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel_apr_socket.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- jk_channel_apr_socket.c 26 May 2002 07:30:01 -0000 1.20 +++ jk_channel_apr_socket.c 30 May 2002 18:05:08 -0000 1.21 @@ -122,10 +122,7 @@ } else if( strcmp( "port", name ) == 0 ) { socketInfo->port=atoi( value ); } else { - if( ch->worker!=NULL ) { - return ch->worker->mbean->setAttribute( env, ch->worker->mbean, name, valueP ); - } - return JK_ERR; + return jk2_channel_setAttribute( env, mbean, name, valueP ); } return JK_OK; } 1.3 +28 -0 jakarta-tomcat-connectors/jk/native2/common/jk_channel.c Index: jk_channel.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- jk_channel.c 28 May 2002 22:40:25 -0000 1.2 +++ jk_channel.c 30 May 2002 18:05:08 -0000 1.3 @@ -69,6 +69,32 @@ #include <string.h> #include "jk_registry.h" +/** Common attributes for all channels + */ +int JK_METHOD jk2_channel_setAttribute(jk_env_t *env, + jk_bean_t *mbean, + char *name, void *valueP) +{ + jk_channel_t *ch=(jk_channel_t *)mbean->object; + char *value=valueP; + + if( strcmp( "debug", name ) == 0 ) { + ch->mbean->debug=atoi( value ); + } else if( strcmp( "disabled", name ) == 0 ) { + ch->mbean->disabled=atoi( value ); + if( ch->worker!=NULL) + ch->worker->mbean->disabled=ch->mbean->disabled; + } else { + if( ch->worker!=NULL ) { + return ch->worker->mbean->setAttribute( env, ch->worker->mbean, name, valueP ); + } + return JK_ERR; + } + return JK_OK; +} + + + /** Called by java ( local or remote ). */ int JK_METHOD jk2_channel_invoke(jk_env_t *env, jk_bean_t *bean, jk_endpoint_t *ep, int code, @@ -101,6 +127,8 @@ env->l->jkLog(env, env->l, JK_LOG_INFO, "ch.recv()\n"); if( ch->recv != NULL ) rc=ch->recv(env, ch, ep, msg); + if( rc==JK_OK ) + return JK_INVOKE_WITH_RESPONSE; return rc; } case CH_WRITE: { 1.24 +2 -14 jakarta-tomcat-connectors/jk/native2/common/jk_channel_jni.c Index: jk_channel_jni.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel_jni.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- jk_channel_jni.c 27 May 2002 15:54:44 -0000 1.23 +++ jk_channel_jni.c 30 May 2002 18:05:08 -0000 1.24 @@ -106,19 +106,6 @@ -static int JK_METHOD jk2_channel_jni_setAttribute(jk_env_t *env, - jk_bean_t *mbean, - char *name, void *valueP) -{ - jk_channel_t *ch=(jk_channel_t *)mbean->object; - char *value=valueP; - - if( ch->worker!=NULL ) { - return ch->worker->mbean->setAttribute( env, ch->worker->mbean, name, valueP ); - } - return JK_OK; -} - static int JK_METHOD jk2_channel_jni_init(jk_env_t *env, jk_bean_t *jniWB) { @@ -553,7 +540,8 @@ sizeof(jk_channel_jni_private_t)); ch->is_stream=JK_FALSE; - result->setAttribute= jk2_channel_jni_setAttribute; + /* No special attribute */ + result->setAttribute= jk2_channel_setAttribute; ch->mbean=result; result->object= ch; result->init= jk2_channel_jni_init; 1.30 +1 -4 jakarta-tomcat-connectors/jk/native2/common/jk_channel_socket.c Index: jk_channel_socket.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel_socket.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- jk_channel_socket.c 26 May 2002 07:30:01 -0000 1.29 +++ jk_channel_socket.c 30 May 2002 18:05:08 -0000 1.30 @@ -129,10 +129,7 @@ } else if( strcmp( "port", name ) == 0 ) { socketInfo->port=atoi( value ); } else { - if( ch->worker!=NULL ) { - return ch->worker->mbean->setAttribute( env, ch->worker->mbean, name, valueP ); - } - return JK_ERR; + return jk2_channel_setAttribute( env, mbean, name, valueP ); } return JK_OK; } 1.10 +1 -6 jakarta-tomcat-connectors/jk/native2/common/jk_channel_un.c Index: jk_channel_un.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel_un.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- jk_channel_un.c 29 May 2002 17:51:23 -0000 1.9 +++ jk_channel_un.c 30 May 2002 18:05:08 -0000 1.10 @@ -118,16 +118,11 @@ socketInfo->file=value; } else if( strcmp( "soLinger", name ) == 0 ) { socketInfo->l_linger=atoi( value ); - } else if( strcmp( "debug", name ) == 0 ) { - ch->mbean->debug=atoi( value ); } else if( strcmp( "listen", name ) == 0 ) { socketInfo->backlog=atoi( value ); ch->serverSide=JK_TRUE; } else { - if( ch->worker!=NULL ) { - return ch->worker->mbean->setAttribute( env, ch->worker->mbean, name, valueP ); - } - return JK_ERR; + return jk2_channel_setAttribute( env, mbean, name, valueP ); } return JK_OK; }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>