Changeset 3774
- Timestamp:
- 10/06/08 17:36:44
- Files:
-
- releases/modest/diablo-pe2/ChangeLog (modified) (1 diff)
- releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-file-utils.c (modified) (4 diffs)
- releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-file-utils.h (modified) (1 diff)
- releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-tcp-stream-openssl.c (modified) (4 diffs)
- releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-tcp-stream-ssl.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
releases/modest/diablo-pe2/ChangeLog
r3773 r3774 1 2008-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 1 7 2008-09-30 Sergio Villar Senin <svillar@igalia.com> 2 8 3 * libtinymail-camel/camel-lite/camel/camel-tcp-stream-ssl.c: added9 * libtinymail-camel/camel-lite/camel/camel-tcp-stream-ssl.c: added 4 10 some code that properly checks the result of the call to 5 11 NSS_InitReadWrite (merged from trunk r3720). releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-file-utils.c
r3449 r3774 602 602 if (cancel_fd == -1) { 603 603 do { 604 /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 605 ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 606 604 607 do { 605 w = write (fd, buf + written, n - written);608 w = write (fd, buf + written, actual /* n - written */); 606 609 } while (w == -1 && (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK)); 607 610 if (w > 0) … … 617 620 618 621 fdmax = MAX (fd, cancel_fd) + 1; 622 623 619 624 do { 620 625 struct timeval tv; 621 626 int res; 627 628 /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 629 ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 622 630 623 631 FD_ZERO (&rdset); … … 625 633 FD_SET (fd, &wrset); 626 634 FD_SET (cancel_fd, &rdset); 627 tv.tv_sec = BLOCKING_ READ_TIMEOUT;635 tv.tv_sec = BLOCKING_WRITE_TIMEOUT; 628 636 tv.tv_usec = 0; 629 637 w = -1; … … 639 647 else { 640 648 do { 641 w = write (fd, buf + written, n - written);649 w = write (fd, buf + written, actual /*n - written*/); 642 650 } while (w == -1 && errno == EINTR); 643 651 releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-file-utils.h
r3449 r3774 46 46 #define BLOCKING_READ_TIMEOUT 15 47 47 #define BLOCKING_WRITE_TIMEOUT 15 48 #define WRITE_CHUNK_SIZE 64 48 49 49 50 #define NONBLOCKING_READ_TIMEOUT 0 releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-tcp-stream-openssl.c
r3446 r3774 576 576 fdmax = openssl->priv->sockfd + 1; 577 577 do { 578 /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 579 ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 580 578 581 FD_ZERO (&rdset); 579 582 FD_ZERO (&wrset); … … 587 590 do { 588 591 if (ssl) { 589 w = SSL_write (ssl, buffer + written, n - written);592 w = SSL_write (ssl, buffer + written, actual /* n - written */); 590 593 if (w < 0) 591 594 errno = ssl_errno (ssl, w); 592 595 } else { 593 w = write (openssl->priv->sockfd, buffer + written, n - written);596 w = write (openssl->priv->sockfd, buffer + written, actual /* n - written */); 594 597 } 595 598 } while (w < 0 && errno == EINTR); … … 615 618 fd_set rdset, wrset; 616 619 620 /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 621 ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 622 617 623 flags = fcntl (openssl->priv->sockfd, F_GETFL); 618 624 fcntl (openssl->priv->sockfd, F_SETFL, flags | O_NONBLOCK); … … 636 642 do { 637 643 if (ssl) { 638 w = SSL_write (ssl, buffer + written, n - written);644 w = SSL_write (ssl, buffer + written, actual /* n - written */); 639 645 if (w < 0) 640 646 errno = ssl_errno (ssl, w); 641 647 } else { 642 w = write (openssl->priv->sockfd, buffer + written, n - written);648 w = write (openssl->priv->sockfd, buffer + written, actual /* n - written */); 643 649 } 644 650 } while (w < 0 && errno == EINTR); releases/modest/diablo-pe2/libtinymail-camel/camel-lite/camel/camel-tcp-stream-ssl.c
r3773 r3774 710 710 PRInt32 res; 711 711 712 /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 713 ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 714 712 715 pollfds[0].out_flags = 0; 713 716 w = -1; … … 728 731 w = -1; 729 732 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 */); 731 734 if (w == -1) 732 735 set_errno (PR_GetError ()); … … 772 775 do { 773 776 PRInt32 res; 777 778 /* Write in chunks of max WRITE_CHUNK_SIZE bytes */ 779 ssize_t actual = MIN (n - written, WRITE_CHUNK_SIZE); 774 780 775 781 pollfds[0].out_flags = 0; … … 794 800 w = -1; 795 801 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 */); 797 803 if (w == -1) 798 804 set_errno (PR_GetError ());
