From a2065b8743808235f3f81cbb11a9dd0ea13988e3 Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Mon, 4 Mar 2002 08:25:20 +0000 Subject: Reduce operations in the ub_write loop. --- sapi/tux/php_tux.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'sapi/tux/php_tux.c') diff --git a/sapi/tux/php_tux.c b/sapi/tux/php_tux.c index 7990cff712..16a7be8133 100644 --- a/sapi/tux/php_tux.c +++ b/sapi/tux/php_tux.c @@ -52,8 +52,8 @@ static php_tux_globals tux_globals; static int sapi_tux_ub_write(const char *str, uint str_length TSRMLS_DC) { int n; - uint sent = 0; int m; + const char *estr; /* combine headers and body */ if (TG(number_vec)) { @@ -73,9 +73,11 @@ static int sapi_tux_ub_write(const char *str, uint str_length TSRMLS_DC) TG(number_vec) = 0; return str_length; } + + estr = str + str_length; - while (str_length > 0) { - n = send(TG(req)->sock, str, str_length, 0); + while (str < estr) { + n = send(TG(req)->sock, str, estr - str, 0); if (n == -1 && errno == EPIPE) php_handle_aborted_connection(); @@ -84,13 +86,14 @@ static int sapi_tux_ub_write(const char *str, uint str_length TSRMLS_DC) if (n <= 0) return n; - TG(req)->bytes_sent += n; str += n; - sent += n; - str_length -= n; } - return sent; + n = str_length - (estr - str); + + TG(req)->bytes_sent += n; + + return n; } static int sapi_tux_send_headers(sapi_headers_struct *sapi_headers) -- cgit v1.2.1