Changeset 3774

Show
Ignore:
Timestamp:
10/06/08 17:36:44
Author:
svillar
Message:
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • releases/modest/diablo-pe2/ChangeLog

    r3773 r3774  
     12008-10-06  Sergio Villar Senin  <svillar@igalia.com> 
     2 
     3        * Original patch by Philip Van Hoof 
     4        * Writing in chunks of 64 bytes 
     5        * Timeout per chunk is 15 seconds: (merged from trunk r3678) 
     6 
    172008-09-30  Sergio Villar Senin  <svillar@igalia.com> 
    28 
    3        * libtinymail-camel/camel-lite/camel/camel-tcp-stream-ssl.c: added 
     9* libtinymail-camel/camel-lite/camel/camel-tcp-stream-ssl.c: added 
    410        some code that properly checks the result of the call to 
    511        NSS_InitReadWrite (merged from trunk r3720). 
  • releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-file-utils.c

    r3449 r3774  
    602602        if (cancel_fd == -1) { 
    603603                do { 
     604                        /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 
     605                        ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 
     606 
    604607                        do { 
    605                                 w = write (fd, buf + written, n - written); 
     608                                w = write (fd, buf + written, actual /* n - written */); 
    606609                        } while (w == -1 && (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK)); 
    607610                        if (w > 0) 
     
    617620 
    618621                fdmax = MAX (fd, cancel_fd) + 1; 
     622 
     623 
    619624                do { 
    620625                        struct timeval tv; 
    621626                        int res; 
     627 
     628                        /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 
     629                        ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 
    622630 
    623631                        FD_ZERO (&rdset); 
     
    625633                        FD_SET (fd, &wrset); 
    626634                        FD_SET (cancel_fd, &rdset); 
    627                         tv.tv_sec = BLOCKING_READ_TIMEOUT; 
     635                        tv.tv_sec = BLOCKING_WRITE_TIMEOUT; 
    628636                        tv.tv_usec = 0; 
    629637                        w = -1; 
     
    639647                        else { 
    640648                                do { 
    641                                         w = write (fd, buf + written, n - written); 
     649                                        w = write (fd, buf + written, actual /*n - written*/); 
    642650                                } while (w == -1 && errno == EINTR); 
    643651 
  • releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-file-utils.h

    r3449 r3774  
    4646#define BLOCKING_READ_TIMEOUT 15 
    4747#define BLOCKING_WRITE_TIMEOUT 15 
     48#define WRITE_CHUNK_SIZE 64 
    4849 
    4950#define NONBLOCKING_READ_TIMEOUT 0 
  • releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-tcp-stream-openssl.c

    r3446 r3774  
    576576                fdmax = openssl->priv->sockfd + 1; 
    577577                do { 
     578                        /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 
     579                        ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 
     580 
    578581                        FD_ZERO (&rdset); 
    579582                        FD_ZERO (&wrset); 
     
    587590                        do { 
    588591                                if (ssl) { 
    589                                         w = SSL_write (ssl, buffer + written, n - written); 
     592                                        w = SSL_write (ssl, buffer + written, actual /* n - written */); 
    590593                                        if (w < 0) 
    591594                                                errno = ssl_errno (ssl, w); 
    592595                                } else { 
    593                                         w = write (openssl->priv->sockfd, buffer + written, n - written); 
     596                                        w = write (openssl->priv->sockfd, buffer + written, actual /* n - written */); 
    594597                                } 
    595598                        } while (w < 0 && errno == EINTR); 
     
    615618                fd_set rdset, wrset; 
    616619 
     620                /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 
     621                ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 
     622 
    617623                flags = fcntl (openssl->priv->sockfd, F_GETFL); 
    618624                fcntl (openssl->priv->sockfd, F_SETFL, flags | O_NONBLOCK); 
     
    636642                        do { 
    637643                                if (ssl) { 
    638                                         w = SSL_write (ssl, buffer + written, n - written); 
     644                                        w = SSL_write (ssl, buffer + written, actual /* n - written */); 
    639645                                        if (w < 0) 
    640646                                                errno = ssl_errno (ssl, w); 
    641647                                } else { 
    642                                         w = write (openssl->priv->sockfd, buffer + written, n - written); 
     648                                        w = write (openssl->priv->sockfd, buffer + written, actual /* n - written */); 
    643649                                } 
    644650                        } while (w < 0 && errno == EINTR); 
  • releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-tcp-stream-ssl.c

    r3773 r3774  
    710710                        PRInt32 res; 
    711711 
     712                        /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 
     713                        ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 
     714 
    712715                        pollfds[0].out_flags = 0; 
    713716                        w = -1; 
     
    728731                                        w = -1; 
    729732                                        if (begin_read (tcp_stream_ssl)) { 
    730                                                 w = PR_Write (tcp_stream_ssl->priv->sockfd, buffer + written, n - written); 
     733                                                w = PR_Write (tcp_stream_ssl->priv->sockfd, buffer + written, actual /* n - written */); 
    731734                                                if (w == -1) 
    732735                                                        set_errno (PR_GetError ()); 
     
    772775                do { 
    773776                        PRInt32 res; 
     777 
     778                        /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 
     779                        ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 
    774780 
    775781                        pollfds[0].out_flags = 0; 
     
    794800                                        w = -1; 
    795801                                        if (begin_read (tcp_stream_ssl)) { 
    796                                                 w = PR_Write (tcp_stream_ssl->priv->sockfd, buffer + written, n - written); 
     802                                                w = PR_Write (tcp_stream_ssl->priv->sockfd, buffer + written, actual /* n - written */); 
    797803                                                if (w == -1) 
    798804                                                        set_errno (PR_GetError ());