mturk       2005/06/17 07:17:00

  Modified:    jni/native/include tcn.h
               jni/native/src network.c sslnetwork.c
  Log:
  Instead duplicating entire Socket API, duplicate APR API.
  
  Revision  Changes    Path
  1.21      +12 -16    jakarta-tomcat-connectors/jni/native/include/tcn.h
  
  Index: tcn.h
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/include/tcn.h,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- tcn.h     17 Jun 2005 11:22:30 -0000      1.20
  +++ tcn.h     17 Jun 2005 14:17:00 -0000      1.21
  @@ -45,7 +45,7 @@
   #include <process.h>
   #else
   #include <unistd.h>
  -#endif 
  +#endif
   #include <jni.h>
   
   #if defined(_DEBUG) || defined(DEBUG)
  @@ -107,26 +107,22 @@
   
   #define TCN_GETNET_METHOD(FN)  method_##FN
   
  -#define TCN_SOCKET_APR      1
  -#define TCN_SOCKET_SSL      2
  -#define TCN_SOCKET_UNIX     4
  -#define TCN_SOCKET_NTPIPE   5
  +#define TCN_SOCKET_APR      0
  +#define TCN_SOCKET_SSL      1
  +#define TCN_SOCKET_UNIX     2
  +#define TCN_SOCKET_NTPIPE   3
   
   typedef struct {
       apr_pool_t   *pool;
       apr_socket_t *sock;
       void         *opaque;
       int          type;
  -    apr_status_t (*cleanup)(void *opaque);
  -    jint (*shutdown)(TCN_IMPARGS, jint how);
  -    jint (*close)(TCN_IMPARGS);
  -    jint (*send)(TCN_IMPARGS, jbyteArray buf, jint offset, jint tosend);
  -    jint (*sendb)(TCN_IMPARGS, jobject buf, jint offset, jint len);
  -    jint (*sendv)(TCN_IMPARGS, jobjectArray bufs);
  -    jint (*recv)(TCN_IMPARGS, jbyteArray buf, jint offset, jint toread);
  -    jint (*recvt)(TCN_IMPARGS, jbyteArray buf, jint offset, jint toread, 
jlong timeout);
  -    jint (*recvb)(TCN_IMPARGS, jobject buf, jint offset, jint len);
  -    jint (*recvbt)(TCN_IMPARGS, jobject buf, jint offset, jint len, jlong 
timeout);
  +    apr_status_t (*cleanup)(void *);
  +    apr_status_t (APR_THREAD_FUNC *net_send) (void *, const char *, 
apr_size_t *);
  +    apr_status_t (APR_THREAD_FUNC *net_sendv)(void *sock, const struct iovec 
*, apr_int32_t, apr_size_t *);
  +    apr_status_t (APR_THREAD_FUNC *net_recv) (void *sock, char *, apr_size_t 
*);
  +    apr_status_t (APR_THREAD_FUNC *net_close) (void *);
  +    apr_status_t (APR_THREAD_FUNC *net_shutdown) (void *, 
apr_shutdown_how_e);
   
   } tcn_socket_t;
   
  
  
  
  1.29      +27 -34    jakarta-tomcat-connectors/jni/native/src/network.c
  
  Index: network.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/network.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- network.c 17 Jun 2005 11:22:30 -0000      1.28
  +++ network.c 17 Jun 2005 14:17:00 -0000      1.29
  @@ -189,6 +189,12 @@
       a->sock = s;
       a->pool = p;
       a->type = TCN_SOCKET_APR;
  +    a->net_recv     = apr_socket_recv;
  +    a->net_send     = apr_socket_send;
  +    a->net_sendv    = apr_socket_sendv;
  +    a->net_shutdown = apr_socket_shutdown;
  +    a->net_close    = NULL;
  +    a->opaque       = s;
       apr_pool_cleanup_register(p, (const void *)a,
                                 sp_socket_cleanup,
                                 apr_pool_cleanup_null);
  @@ -223,10 +229,7 @@
   
       UNREFERENCED_STDARGS;
       TCN_ASSERT(sock != 0);
  -    if (s->shutdown)
  -        return (*s->shutdown)(TCN_IMPCALL(s), how);
  -    else
  -        return (jint)apr_socket_shutdown(s->sock, (apr_shutdown_how_e)how);
  +    return (jint)(*s->net_shutdown)(s->opaque, how);
   }
   
   TCN_IMPLEMENT_CALL(jint, Socket, close)(TCN_STDARGS, jlong sock)
  @@ -239,9 +242,9 @@
   #ifdef TCN_DO_STATISTICS
       apr_atomic_inc32(&sp_closed);
   #endif
  -    if (s->close)
  -        rv = (*s->close)(TCN_IMPCALL(s));
  -    if (s->sock) {        
  +    if (s->net_close)
  +        rv = (*s->net_close)(s->opaque);
  +    if (s->sock) {
           rv = (jint)apr_socket_close(s->sock);
           s->sock = NULL;
       }
  @@ -290,6 +293,12 @@
           a->sock = n;
           a->pool = p;
           a->type = TCN_SOCKET_APR;
  +        a->net_recv     = apr_socket_recv;
  +        a->net_send     = apr_socket_send;
  +        a->net_sendv    = apr_socket_sendv;
  +        a->net_shutdown = apr_socket_shutdown;
  +        a->net_close    = NULL;
  +        a->opaque       = n;
           apr_pool_cleanup_register(p, (const void *)a,
                                     sp_socket_cleanup,
                                     apr_pool_cleanup_null);
  @@ -320,8 +329,6 @@
       UNREFERENCED(o);
       TCN_ASSERT(sock != 0);
       
  -    if (s->send)
  -        return (*s->send)(TCN_IMPCALL(s), buf, offset, tosend);
       if (tosend <= TCN_BUFFER_SZ) {
           char sb[TCN_BUFFER_SZ];
           (*e)->GetByteArrayRegion(e, buf, offset, tosend, (jbyte *)sb);
  @@ -335,8 +342,7 @@
               bytes = (*e)->GetPrimitiveArrayCritical(e, buf, NULL);
           else
               bytes = (*e)->GetByteArrayElements(e, buf, NULL);
  -        ss = apr_socket_send(s->sock, bytes + offset, &nbytes);
  -
  +        ss = (*s->net_send)(s->opaque, bytes + offset, &nbytes);
           if (nb)
               (*e)->ReleasePrimitiveArrayCritical(e, buf, bytes, JNI_ABORT);
           else
  @@ -361,11 +367,9 @@
       UNREFERENCED(o);
       TCN_ASSERT(sock != 0);
       TCN_ASSERT(buf != NULL);
  -    if (s->sendb)
  -        return (*s->sendb)(TCN_IMPCALL(s), buf, offset, len);
   
       bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
  -    ss = apr_socket_send(s->sock, bytes + offset, &nbytes);
  +    ss = (*s->net_send)(s->opaque, bytes + offset, &nbytes);
   
       if (ss == APR_SUCCESS)
           return (jint)nbytes;
  @@ -389,8 +393,6 @@
       UNREFERENCED(o);
       TCN_ASSERT(sock != 0);
   
  -    if (s->sendv)
  -        return (*s->sendv)(TCN_IMPCALL(s), bufs);
       nvec = (*e)->GetArrayLength(e, bufs);
       if (nvec >= APR_MAX_IOVEC_SIZE)
           return (jint)(-APR_ENOMEM);
  @@ -401,7 +403,7 @@
           vec[i].iov_base = (*e)->GetByteArrayElements(e, ba[i], NULL);
       }
   
  -    ss = apr_socket_sendv(s->sock, vec, nvec, &written);
  +    ss = (*s->net_sendv)(s->opaque, vec, nvec, &written);
   
       for (i = 0; i < nvec; i++) {
           (*e)->ReleaseByteArrayElements(e, ba[i], vec[i].iov_base, JNI_ABORT);
  @@ -459,17 +461,15 @@
       UNREFERENCED(o);
       TCN_ASSERT(sock != 0);
   
  -    if (s->recv)
  -        return (*s->recv)(TCN_IMPCALL(s), buf, offset, toread);
  -
       if (toread <= TCN_BUFFER_SZ) {
           char sb[TCN_BUFFER_SZ];
  -        if ((ss = apr_socket_recv(s->sock, sb, &nbytes)) == APR_SUCCESS)
  +        
  +        if ((ss = (*s->net_recv)(s->opaque, sb, &nbytes)) == APR_SUCCESS)
               (*e)->SetByteArrayRegion(e, buf, offset, (jsize)nbytes, sb);
       }
       else {
           jbyte *bytes = (*e)->GetByteArrayElements(e, buf, NULL);
  -        ss = apr_socket_recv(s->sock, bytes + offset, &nbytes);
  +        ss = (*s->net_recv)(s->opaque, bytes + offset, &nbytes);
           (*e)->ReleaseByteArrayElements(e, buf, bytes,
                                          nbytes ? 0 : JNI_ABORT);
       }
  @@ -494,20 +494,18 @@
       TCN_ASSERT(sock != 0);
       TCN_ASSERT(buf != NULL);
   
  -    if (s->recvt)
  -        return (*s->recvt)(TCN_IMPCALL(s), buf, offset, toread, timeout);
       if ((ss = apr_socket_timeout_get(s->sock, &t)) != APR_SUCCESS)
           goto cleanup;
       if ((ss = apr_socket_timeout_set(s->sock, J2T(timeout))) != APR_SUCCESS)
           goto cleanup;
       if (toread <= TCN_BUFFER_SZ) {
           char sb[TCN_BUFFER_SZ];
  -        ss = apr_socket_recv(s->sock, sb, &nbytes);
  +        ss = (*s->net_recv)(s->opaque, sb, &nbytes);
           (*e)->SetByteArrayRegion(e, buf, offset, (jsize)nbytes, sb);
       }
       else {
           jbyte *bytes = (*e)->GetByteArrayElements(e, buf, NULL);
  -        ss = apr_socket_recv(s->sock, bytes + offset, &nbytes);
  +        ss = (*s->net_recv)(s->opaque, bytes + offset, &nbytes);
           (*e)->ReleaseByteArrayElements(e, buf, bytes,
                                          nbytes ? 0 : JNI_ABORT);
       }
  @@ -533,12 +531,10 @@
       UNREFERENCED(o);
       TCN_ASSERT(sock != 0);
       TCN_ASSERT(buf != NULL);
  -    if (s->recvb)
  -        return (*s->recvb)(TCN_IMPCALL(s), buf, offset, len);
   
       bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
       TCN_ASSERT(bytes != NULL);
  -    ss = apr_socket_recv(s->sock, bytes + offset, &nbytes);
  +    ss = (*s->net_recv)(s->opaque, bytes + offset, &nbytes);
   
       if (ss == APR_SUCCESS)
           return (jint)nbytes;
  @@ -562,9 +558,6 @@
       TCN_ASSERT(sock != 0);
       TCN_ASSERT(buf != NULL);
   
  -    if (s->recvbt)
  -        return (*s->recvbt)(TCN_IMPCALL(s), buf, offset, len, timeout);
  -
       bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
       TCN_ASSERT(bytes != NULL);
   
  @@ -572,7 +565,7 @@
            return -(jint)ss;
       if ((ss = apr_socket_timeout_set(s->sock, J2T(timeout))) != APR_SUCCESS)
            return -(jint)ss;
  -    ss = apr_socket_recv(s->sock, bytes + offset, &nbytes);
  +    ss = (*s->net_recv)(s->opaque, bytes + offset, &nbytes);
       /* Resore the original timeout */
       apr_socket_timeout_set(s->sock, t);
   
  
  
  
  1.15      +38 -222   jakarta-tomcat-connectors/jni/native/src/sslnetwork.c
  
  Index: sslnetwork.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/sslnetwork.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- sslnetwork.c      17 Jun 2005 12:04:40 -0000      1.14
  +++ sslnetwork.c      17 Jun 2005 14:17:00 -0000      1.15
  @@ -91,7 +91,7 @@
       return rc;
   }
   
  -TCN_IMPLEMENT_METHOD(apr_status_t, cleanup)(void *data)
  +static apr_status_t ssl_cleanup(void *data)
   {
       tcn_ssl_conn_t *con = (tcn_ssl_conn_t *)data;
   
  @@ -181,7 +181,7 @@
   
       apr_socket_timeout_get(con->sock, &timeout);
       pfd.desc_type = APR_POLL_SOCKET;
  -    pfd.desc.s    = con->sock;    
  +    pfd.desc.s    = con->sock;
       pfd.reqevents = type;
   
       /* Remove the object if it was in the pollset, then add in the new
  @@ -205,13 +205,12 @@
       return status;
   }
   
  -TCN_IMPLEMENT_METHOD(jint, shutdown)(TCN_IMPARGS, jint how)
  +static apr_status_t APR_THREAD_FUNC
  +ssl_socket_shutdown(void *sock, apr_shutdown_how_e how)
   {
       apr_status_t rv = APR_SUCCESS;
       tcn_ssl_conn_t *con = (tcn_ssl_conn_t *)sock;
   
  -    UNREFERENCED_STDARGS;
  -    TCN_ASSERT(sock != 0);
       if (con->ssl) {
           if (how < 1)
               how = con->shutdown_type;
  @@ -220,15 +219,14 @@
           SSL_free(con->ssl);
           con->ssl = NULL;
       }
  -    return (jint)rv;
  +    return rv;
   }
   
  -TCN_IMPLEMENT_METHOD(jint, close)(TCN_IMPARGS)
  +static apr_status_t APR_THREAD_FUNC
  +ssl_socket_close(void *sock)
   {
       tcn_ssl_conn_t *con = (tcn_ssl_conn_t *)sock;
       apr_status_t rv = APR_SUCCESS;
  -    UNREFERENCED_STDARGS;
  -    TCN_ASSERT(sock != 0);
   
   #ifdef TCN_DO_STATISTICS
       apr_atomic_inc32(&ssl_closed);
  @@ -242,7 +240,7 @@
           X509_free(con->peer);
           con->peer = NULL;
       }
  -    return (jint)rv;
  +    return rv;
   }
   
   TCN_IMPLEMENT_CALL(jint, SSLSocket, handshake)(TCN_STDARGS, jlong sock)
  @@ -310,7 +308,8 @@
       return APR_SUCCESS;
   }
   
  -static apr_status_t ssl_socket_recv(tcn_ssl_conn_t *con, char *buf, 
apr_size_t *len)
  +static apr_status_t APR_THREAD_FUNC
  +ssl_socket_recv(tcn_ssl_conn_t *con, char *buf, apr_size_t *len)
   {
       int s, rd = (int)(*len);
       apr_status_t rv = APR_SUCCESS;
  @@ -355,8 +354,9 @@
       return rv;
   }
   
  -static apr_status_t ssl_socket_send(tcn_ssl_conn_t *con, const char *buf,
  -                                    apr_size_t *len)
  +static apr_status_t APR_THREAD_FUNC
  +ssl_socket_send(tcn_ssl_conn_t *con, const char *buf,
  +                apr_size_t *len)
   {
       int s, rd = (int)(*len);
       apr_status_t rv = APR_SUCCESS;
  @@ -396,207 +396,27 @@
       return rv;
   }
   
  -TCN_IMPLEMENT_METHOD(jint, send)(TCN_IMPARGS,
  -                                 jbyteArray buf, jint offset,
  -                                 jint tosend)
  -{
  -    tcn_ssl_conn_t *s = (tcn_ssl_conn_t *)sock;
  -    apr_size_t nbytes = (apr_size_t)tosend;
  -    jbyte *bytes;
  -    apr_int32_t nb;
  -    apr_status_t ss;
  -
  -    UNREFERENCED(o);
  -    TCN_ASSERT(sock != 0);
  -    apr_socket_opt_get(s->sock, APR_SO_NONBLOCK, &nb);
  -    if (nb)
  -         bytes = (*e)->GetPrimitiveArrayCritical(e, buf, NULL);
  -    else
  -         bytes = (*e)->GetByteArrayElements(e, buf, NULL);
  -    ss = ssl_socket_send(s, bytes + offset, &nbytes);
  -    if (nb)
  -        (*e)->ReleasePrimitiveArrayCritical(e, buf, bytes, JNI_ABORT);
  -    else
  -        (*e)->ReleaseByteArrayElements(e, buf, bytes, JNI_ABORT);
  -    if (ss == APR_SUCCESS)
  -        return (jint)nbytes;
  -    else {
  -        TCN_ERROR_WRAP(ss);
  -        return -(jint)ss;
  -    }
  -}
  -
  -TCN_IMPLEMENT_METHOD(jint, sendv)(TCN_IMPARGS,
  -                                  jobjectArray bufs)
  +static apr_status_t APR_THREAD_FUNC
  +ssl_socket_sendv(tcn_ssl_conn_t *sock,
  +                 const struct iovec *vec,
  +                 apr_int32_t nvec, apr_size_t *len)
   {
  -    tcn_ssl_conn_t *s = (tcn_ssl_conn_t *)sock;
  -    jsize nvec = (*e)->GetArrayLength(e, bufs);
  -    jsize i;
  -    jobject ba;
  -    apr_size_t written = 0;
  -    apr_status_t ss;
  -
  -    UNREFERENCED(o);
  -    TCN_ASSERT(sock != 0);
  +    apr_status_t rv;
  +    apr_size_t readed = 0;
  +    apr_int32_t i;
   
  -    if (nvec >= APR_MAX_IOVEC_SIZE)
  -        return (jint)(-APR_ENOMEM);
       for (i = 0; i < nvec; i++) {
  -        apr_size_t len;
  -        jbyte     *buf;
  -        ba = (*e)->GetObjectArrayElement(e, bufs, i);
  -        len = (*e)->GetArrayLength(e, ba);
  -        buf = (*e)->GetByteArrayElements(e, ba, NULL);
  -        ss = ssl_socket_send(s, buf, &len);
  -        (*e)->ReleaseByteArrayElements(e, ba, buf, JNI_ABORT);
  -        if (ss == APR_SUCCESS)
  -            written += len;
  -        else
  -            break;
  -    }
  -
  -    if (ss == APR_SUCCESS)
  -        return (jint)written;
  -    else {
  -        TCN_ERROR_WRAP(ss);
  -        return -(jint)ss;
  -    }
  -}
  -
  -TCN_IMPLEMENT_METHOD(jint, sendb)(TCN_IMPARGS,
  -                                  jobject buf, jint offset, jint len)
  -{
  -    tcn_ssl_conn_t *s = (tcn_ssl_conn_t *)sock;
  -    apr_size_t nbytes = (apr_size_t)len;
  -    char *bytes;
  -    apr_status_t ss;
  -
  -    UNREFERENCED(o);
  -    TCN_ASSERT(sock != 0);
  -    TCN_ASSERT(buf != NULL);
  -    bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
  -    ss = ssl_socket_send(s, bytes + offset, &nbytes);
  -
  -    if (ss == APR_SUCCESS)
  -        return (jint)nbytes;
  -    else {
  -        TCN_ERROR_WRAP(ss);
  -        return -(jint)ss;
  -    }
  -}
  -
  -
  -TCN_IMPLEMENT_METHOD(jint, recv)(TCN_IMPARGS,
  -                                 jbyteArray buf, jint offset,
  -                                 jint toread)
  -{
  -    tcn_ssl_conn_t *s = (tcn_ssl_conn_t *)sock;
  -    apr_size_t nbytes = (apr_size_t)toread;
  -    jbyte *bytes = (*e)->GetByteArrayElements(e, buf, NULL);
  -    apr_status_t ss;
  -
  -    UNREFERENCED(o);
  -    TCN_ASSERT(sock != 0);
  -    TCN_ASSERT(bytes != NULL);
  -    ss = ssl_socket_recv(s, bytes + offset, &nbytes);
  -
  -    (*e)->ReleaseByteArrayElements(e, buf, bytes,
  -                                   nbytes ? 0 : JNI_ABORT);
  -    if (ss == APR_SUCCESS)
  -        return (jint)nbytes;
  -    else {
  -        TCN_ERROR_WRAP(ss);
  -        return -(jint)ss;
  -    }
  -}
  -
  -TCN_IMPLEMENT_METHOD(jint, recvt)(TCN_IMPARGS,
  -                                  jbyteArray buf, jint offset,
  -                                  jint toread, jlong timeout)
  -{
  -    tcn_ssl_conn_t *s = (tcn_ssl_conn_t *)sock;
  -    apr_size_t nbytes = (apr_size_t)toread;
  -    jbyte *bytes = (*e)->GetByteArrayElements(e, buf, NULL);
  -    apr_status_t ss;
  -    apr_interval_time_t t;
  -
  -    UNREFERENCED(o);
  -    TCN_ASSERT(sock != 0);
  -    TCN_ASSERT(buf != NULL);
  -    TCN_ASSERT(bytes != NULL);
  -
  -    if ((ss = apr_socket_timeout_get(s->sock, &t)) != APR_SUCCESS)
  -        goto cleanup;
  -    if ((ss = apr_socket_timeout_set(s->sock, J2T(timeout))) != APR_SUCCESS)
  -        goto cleanup;
  -    ss = ssl_socket_recv(s, bytes + offset, &nbytes);
  -    /* Resore the original timeout */
  -    apr_socket_timeout_set(s->sock, t);
  -cleanup:
  -    (*e)->ReleaseByteArrayElements(e, buf, bytes,
  -                                   nbytes ? 0 : JNI_ABORT);
  -    if (ss == APR_SUCCESS)
  -        return (jint)nbytes;
  -    else {
  -        TCN_ERROR_WRAP(ss);
  -        return -(jint)ss;
  -    }
  -}
  -
  -TCN_IMPLEMENT_METHOD(jint, recvb)(TCN_IMPARGS,
  -                                  jobject buf, jint offset, jint len)
  -{
  -    tcn_ssl_conn_t *s = J2P(sock, tcn_ssl_conn_t *);
  -    apr_status_t ss;
  -    apr_size_t nbytes = (apr_size_t)len;
  -    char *bytes;
  -
  -    UNREFERENCED(o);
  -    TCN_ASSERT(sock != 0);
  -    TCN_ASSERT(buf != NULL);
  -    bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
  -    TCN_ASSERT(bytes != NULL);
  -    ss = ssl_socket_recv(s, bytes + offset, &nbytes);
  -
  -    if (ss == APR_SUCCESS)
  -        return (jint)nbytes;
  -    else {
  -        TCN_ERROR_WRAP(ss);
  -        return -(jint)ss;
  +        apr_size_t rd = vec[i].iov_len;
  +        if ((rv = ssl_socket_send(sock, vec[i].iov_base, &rd)) != 
APR_SUCCESS) {
  +            *len = readed;
  +            return rv;
  +        }
  +        readed += rd;
       }
  +    *len = readed;
  +    return APR_SUCCESS;
   }
   
  -TCN_IMPLEMENT_METHOD(jint, recvbt)(TCN_IMPARGS,
  -                                   jobject buf, jint offset,
  -                                   jint len, jlong timeout)
  -{
  -    tcn_ssl_conn_t *s = J2P(sock, tcn_ssl_conn_t *);
  -    apr_status_t ss;
  -    apr_size_t nbytes = (apr_size_t)len;
  -    char *bytes;
  -    apr_interval_time_t t;
  -
  -    UNREFERENCED(o);
  -    TCN_ASSERT(sock != 0);
  -    TCN_ASSERT(buf != NULL);
  -    bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
  -    TCN_ASSERT(bytes != NULL);
  -
  -    if ((ss = apr_socket_timeout_get(s->sock, &t)) != APR_SUCCESS)
  -         return -(jint)ss;
  -    if ((ss = apr_socket_timeout_set(s->sock, J2T(timeout))) != APR_SUCCESS)
  -         return -(jint)ss;
  -    ss = ssl_socket_recv(s, bytes + offset, &nbytes);
  -    /* Resore the original timeout */
  -    apr_socket_timeout_set(s->sock, t);
  -
  -    if (ss == APR_SUCCESS)
  -        return (jint)nbytes;
  -    else {
  -        TCN_ERROR_WRAP(ss);
  -        return -(jint)ss;
  -    }
  -}
   
   TCN_IMPLEMENT_CALL(jint, SSLSocket, attach)(TCN_STDARGS, jlong ctx,
                                               jlong sock, jlong pool)
  @@ -625,18 +445,14 @@
       else
           SSL_set_connect_state(con->ssl);
       /* Change socket type */
  -    s->type     = TCN_SOCKET_SSL;
  -    s->cleanup  = TCN_GETNET_METHOD(cleanup);
  -    s->shutdown = TCN_GETNET_METHOD(shutdown);
  -    s->close    = TCN_GETNET_METHOD(close);
  -    s->send     = TCN_GETNET_METHOD(send);
  -    s->sendb    = TCN_GETNET_METHOD(sendb);
  -    s->sendv    = TCN_GETNET_METHOD(sendv);
  -    s->recv     = TCN_GETNET_METHOD(recv);
  -    s->recvt    = TCN_GETNET_METHOD(recvt);
  -    s->recvb    = TCN_GETNET_METHOD(recvb);
  -    s->recvbt   = TCN_GETNET_METHOD(recvbt);
  -    s->opaque   = con;
  +    s->type         = TCN_SOCKET_SSL;
  +    s->cleanup      = ssl_cleanup;
  +    s->net_recv     = ssl_socket_recv;
  +    s->net_send     = ssl_socket_send;
  +    s->net_sendv    = ssl_socket_sendv;
  +    s->net_shutdown = ssl_socket_shutdown;
  +    s->net_close    = ssl_socket_close;
  +    s->opaque    = con;
   
       return APR_SUCCESS;
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to