I allways use read/write on Unix instead of recv/send.
It works way better.

-
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: Sunday, June 23, 2002 8:56 AM
>To: [EMAIL PROTECTED]
>Subject: cvs commit: jakarta-tomcat-connectors/jk/native2/common
>jk_channel_socket.c
>
>
>mturk       2002/06/22 23:55:56
>
>  Modified:    jk/native2/common jk_channel_socket.c
>  Log:
>  Costin changed it to use read/write instead of send/receive.
>  Unfortunaly that doesn't work on WIN32 cause read/write 
>cannot operate on sockets.
>  Perhaps we shoud reverse that unless there is a strong 
>reason to use the
>  read/write on unix.
>  
>  Revision  Changes    Path
>  1.35      +20 -2     
>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_channe
>l_socket.c,v
>  retrieving revision 1.34
>  retrieving revision 1.35
>  diff -u -r1.34 -r1.35
>  --- jk_channel_socket.c      20 Jun 2002 18:45:01 -0000      1.34
>  +++ jk_channel_socket.c      23 Jun 2002 06:55:55 -0000      1.35
>  @@ -355,9 +355,13 @@
>       len=msg->len;
>       b=msg->buf;
>   
>  -    
>  +
>       while(sent < len) {
>  +#ifdef WIN32
>  +        int this_time = send(sd, (char *)b + sent , len - sent, 0);
>  +#else
>           int this_time = write(sd, (char *)b + sent , len - sent);
>  +#endif
>       if(0 == this_time) {
>           return -2;
>       }
>  @@ -393,9 +397,16 @@
>       if( sd<0 ) return JK_ERR;
>       
>       while(rdlen < len) {
>  +#ifdef WIN32
>  +    /* WIN32 read cannot operate on sockets */
>  +    int this_time = recv(sd, 
>  +                         (char *)b + rdlen, 
>  +                         len - rdlen, 0);   
>  +#else
>       int this_time = read(sd, 
>                            (char *)b + rdlen, 
>                            len - rdlen);      
>  +#endif
>       if(-1 == this_time) {
>   #ifdef WIN32
>           if(SOCKET_ERROR == this_time) { 
>  @@ -430,9 +441,16 @@
>       if( sd<0 ) return JK_ERR;
>       
>       while(rdlen < minLen ) {
>  +#ifdef WIN32
>  +    /* WIN32 read cannot operate on sockets */
>  +    int this_time = recv(sd, 
>  +                         (char *)b + rdlen, 
>  +                         maxLen - rdlen, 0);        
>  +#else
>       int this_time = read(sd, 
>                            (char *)b + rdlen, 
>  -                         maxLen - rdlen);
>  +                         maxLen - rdlen);   
>  +#endif
>   /*         fprintf(stderr, "XXX received %d\n", this_time ); */
>       if(-1 == this_time) {
>   #ifdef WIN32
>  
>  
>  
>
>--
>To unsubscribe, e-mail:   
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>


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

Reply via email to