Commit c111178b authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

mbedtls: implement and provide *_data_pending()

... as otherwise we might get stuck thinking there's no more data to
handle.

Reported-by: Damien Vielpeau

Fixes #737
parent ef802c9b
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -864,6 +864,11 @@ void Curl_mbedtls_cleanup(void)
  (void)Curl_polarsslthreadlock_thread_cleanup();
}


int Curl_mbedtls_data_pending(const struct connectdata *conn, int sockindex)
{
  mbedtls_ssl_context *ssl =
    (mbedtls_ssl_context *)&conn->ssl[sockindex].ssl;
  return ssl->in_msglen != 0;
}

#endif /* USE_MBEDTLS */
+2 −1
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
/* Called on first use mbedTLS, setup threading if supported */
int  Curl_mbedtls_init(void);
void Curl_mbedtls_cleanup(void);
int Curl_mbedtls_data_pending(const struct connectdata *conn, int sockindex);

CURLcode Curl_mbedtls_connect(struct connectdata *conn, int sockindex);

@@ -63,7 +64,7 @@ int Curl_mbedtls_shutdown(struct connectdata *conn, int sockindex);
#define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL)
#define curlssl_version Curl_mbedtls_version
#define curlssl_check_cxn(x) (x=x, -1)
#define curlssl_data_pending(x,y) (x=x, y=y, 0)
#define curlssl_data_pending(x,y) Curl_mbedtls_data_pending(x, y)
#define CURL_SSL_BACKEND CURLSSLBACKEND_MBEDTLS
#define curlssl_sha256sum(a,b,c,d) mbedtls_sha256(a,b,c,0)