Skip to content

Commit efab7e7

Browse files
Merge pull request #1508 from zdohnal/gnutls-rehandshake-handle
tls-gnutls.c: Handle rehandshake error in `_httpTLSRead`
2 parents 15e073c + bc31b7e commit efab7e7

1 file changed

Lines changed: 21 additions & 8 deletions

File tree

cups/tls-gnutls.c

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1623,12 +1623,25 @@ _httpTLSRead(http_t *http, // I - Connection to server
16231623
break;
16241624

16251625
case GNUTLS_E_AGAIN :
1626-
errno = EAGAIN;
1627-
break;
1626+
errno = EAGAIN;
1627+
break;
1628+
1629+
case GNUTLS_E_REHANDSHAKE :
1630+
// If used in client, ignore the error and try to read again...
1631+
if (http->mode == _HTTP_MODE_CLIENT)
1632+
{
1633+
errno = EAGAIN;
1634+
}
1635+
else
1636+
{
1637+
// Terminate the session as server...
1638+
errno = EPIPE;
1639+
}
1640+
break;
16281641

16291642
default :
1630-
errno = EPIPE;
1631-
break;
1643+
errno = EPIPE;
1644+
break;
16321645
}
16331646

16341647
result = -1;
@@ -2032,12 +2045,12 @@ _httpTLSWrite(http_t *http, // I - Connection to server
20322045
break;
20332046

20342047
case GNUTLS_E_AGAIN :
2035-
errno = EAGAIN;
2036-
break;
2048+
errno = EAGAIN;
2049+
break;
20372050

20382051
default :
2039-
errno = EPIPE;
2040-
break;
2052+
errno = EPIPE;
2053+
break;
20412054
}
20422055

20432056
result = -1;

0 commit comments

Comments
 (0)