Hi,
Apply on top of my previous patch related to gnutls compression.
This is a "I don't know if it's a correct patch".
regards,
--
Sylvain
--- src/tidy_tls.c
+++ src/tidy_tls.c
@@ -461,14 +461,22 @@
{
int rc;
- rc = (int) gnutls_record_recv(ssl->gnutls_state, buffer, (size_t) length);
+ for(;;) {
+ rc = (int) gnutls_record_recv(ssl->gnutls_state, buffer, (size_t)
length);
- if (rc < 0 && gnutls_error_is_fatal(rc) == 0) {
- if (rc == GNUTLS_E_REHANDSHAKE) {
- (void) gnutls_handshake(ssl->gnutls_state);
- gnutls_record_send(ssl->gnutls_state, ssl->sendbuffer, (size_t)
ssl->bytes_sent);
- rc = (int) gnutls_record_recv(ssl->gnutls_state, buffer, (size_t)
length);
- }
+ if (rc < 0 && gnutls_error_is_fatal(rc) == 0) {
+ if (rc == GNUTLS_E_REHANDSHAKE) {
+ (void) gnutls_handshake(ssl->gnutls_state);
+ gnutls_record_send(ssl->gnutls_state, ssl->sendbuffer,
(size_t) ssl->bytes_sent);
+ continue;
+ } else if (rc == GNUTLS_E_AGAIN || GNUTLS_E_INTERRUPTED) {
+ continue;
+ }
+ /* not handled gnutls non-fatal error */
+ break;
+ } else
+ /* rc >= 0 or gnutls fatal error */
+ break;
}
ssl->last_error = rc;
_______________________________________________
Lynx-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lynx-dev