mirror of https://github.com/ARMmbed/mbed-os.git
Limit the number of mbed_ssl_read() in while loop.
parent
db2e77fd97
commit
9752d7c5f7
|
@ -498,12 +498,15 @@ int coap_security_send_close_alert(coap_security_t *sec)
|
||||||
|
|
||||||
int coap_security_handler_read(coap_security_t *sec, unsigned char* buffer, size_t len){
|
int coap_security_handler_read(coap_security_t *sec, unsigned char* buffer, size_t len){
|
||||||
int ret=-1;
|
int ret=-1;
|
||||||
|
int max_loops = 100;
|
||||||
|
|
||||||
if( sec && buffer ){
|
if( sec && buffer ){
|
||||||
memset( buffer, 0, len );
|
memset( buffer, 0, len );
|
||||||
do ret = mbedtls_ssl_read( &sec->_ssl, buffer, len );
|
do {
|
||||||
while( ret == MBEDTLS_ERR_SSL_WANT_READ ||
|
ret = mbedtls_ssl_read( &sec->_ssl, buffer, len );
|
||||||
ret == MBEDTLS_ERR_SSL_WANT_WRITE );
|
} while( (ret == MBEDTLS_ERR_SSL_WANT_READ ||
|
||||||
|
ret == MBEDTLS_ERR_SSL_WANT_WRITE)
|
||||||
|
&& --max_loops);
|
||||||
}
|
}
|
||||||
return ret; //bytes read
|
return ret; //bytes read
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue