From: Andrey Hristov Date: Wed, 15 Dec 2010 14:14:58 +0000 (+0000) Subject: count preciser in case of error X-Git-Tag: php-5.3.6RC1~216 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f35b89c7c459013ac3c07e149ce9011a21dbd6a4;p=php count preciser in case of error --- diff --git a/ext/mysqlnd/mysqlnd_net.c b/ext/mysqlnd/mysqlnd_net.c index b6ee73dbb6..45e1471ebc 100644 --- a/ext/mysqlnd/mysqlnd_net.c +++ b/ext/mysqlnd/mysqlnd_net.c @@ -64,6 +64,7 @@ mysqlnd_set_sock_no_delay(php_stream * stream TSRMLS_DC) static enum_func_status MYSQLND_METHOD(mysqlnd_net, network_read)(MYSQLND * conn, zend_uchar * buffer, size_t count TSRMLS_DC) { + enum_func_status return_value = PASS; size_t to_read = count, ret; size_t old_chunk_size = conn->net->stream->chunk_size; DBG_ENTER("mysqlnd_net::network_read"); @@ -72,14 +73,15 @@ MYSQLND_METHOD(mysqlnd_net, network_read)(MYSQLND * conn, zend_uchar * buffer, s while (to_read) { if (!(ret = php_stream_read(conn->net->stream, (char *) buffer, to_read))) { DBG_ERR_FMT("Error while reading header from socket"); - DBG_RETURN(FAIL); + return_value = FAIL; + break; } buffer += ret; to_read -= ret; } - MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, STAT_BYTES_RECEIVED, count); + MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, STAT_BYTES_RECEIVED, count - to_read); conn->net->stream->chunk_size = old_chunk_size; - DBG_RETURN(PASS); + DBG_RETURN(return_value); } /* }}} */