File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 ;
You can’t perform that action at this time.
0 commit comments