jani Mon Jul 21 16:16:30 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/standard streamsfuncs.c Log: MFH: sync http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.58.2.6.2.15.2.16&r2=1.58.2.6.2.15.2.17&diff_format=u Index: php-src/ext/standard/streamsfuncs.c diff -u php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.16 php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.17 --- php-src/ext/standard/streamsfuncs.c:1.58.2.6.2.15.2.16 Fri Jul 11 10:25:15 2008 +++ php-src/ext/standard/streamsfuncs.c Mon Jul 21 16:16:30 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streamsfuncs.c,v 1.58.2.6.2.15.2.16 2008/07/11 10:25:15 tony2001 Exp $ */ +/* $Id: streamsfuncs.c,v 1.58.2.6.2.15.2.17 2008/07/21 16:16:30 jani Exp $ */ #include "php.h" #include "php_globals.h" @@ -233,7 +233,9 @@ PHP_FUNCTION(stream_socket_accept) { double timeout = FG(default_socket_timeout); - zval *peername = NULL; + zval *zpeername = NULL; + char *peername = NULL; + int peername_len; php_timeout_ull conv; struct timeval tv; php_stream *stream = NULL, *clistream = NULL; @@ -241,7 +243,7 @@ char *errstr = NULL; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|dz", &zstream, &timeout, &peername) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|dz", &zstream, &timeout, &zpeername) == FAILURE) { RETURN_FALSE; } @@ -252,20 +254,20 @@ tv.tv_sec = conv / 1000000; tv.tv_usec = conv % 1000000; - if (peername) { - zval_dtor(peername); - ZVAL_NULL(peername); + if (zpeername) { + zval_dtor(zpeername); + ZVAL_NULL(zpeername); } if (0 == php_stream_xport_accept(stream, &clistream, - peername ? &Z_STRVAL_P(peername) : NULL, - peername ? &Z_STRLEN_P(peername) : NULL, + zpeername ? &peername : NULL, + zpeername ? &peername_len : NULL, NULL, NULL, &tv, &errstr TSRMLS_CC) && clistream) { if (peername) { - Z_TYPE_P(peername) = IS_STRING; + ZVAL_STRINGL(zpeername, peername, peername_len, 0); } php_stream_to_zval(clistream, return_value); } else { @@ -286,6 +288,8 @@ php_stream *stream; zval *zstream; zend_bool want_peer; + char *name = NULL; + int name_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &zstream, &want_peer) == FAILURE) { RETURN_FALSE; @@ -293,15 +297,15 @@ php_stream_from_zval(stream, &zstream); - Z_TYPE_P(return_value) = IS_STRING; - if (0 != php_stream_xport_get_name(stream, want_peer, - &Z_STRVAL_P(return_value), - &Z_STRLEN_P(return_value), + &name, + &name_len, NULL, NULL TSRMLS_CC)) { RETURN_FALSE; } + + RETURN_STRINGL(name, name_len, 0); } /* }}} */ @@ -340,6 +344,8 @@ { php_stream *stream; zval *zstream, *zremote = NULL; + char *remote_addr = NULL; + int remote_addr_len; long to_read = 0; char *read_buf; long flags = 0; @@ -354,7 +360,6 @@ if (zremote) { zval_dtor(zremote); ZVAL_NULL(zremote); - Z_STRLEN_P(zremote) = 0; } if (to_read <= 0) { @@ -365,20 +370,19 @@ read_buf = safe_emalloc(1, to_read, 1); recvd = php_stream_xport_recvfrom(stream, read_buf, to_read, flags, NULL, NULL, - zremote ? &Z_STRVAL_P(zremote) : NULL, - zremote ? &Z_STRLEN_P(zremote) : NULL + zremote ? &remote_addr : NULL, + zremote ? &remote_addr_len : NULL TSRMLS_CC); if (recvd >= 0) { - if (zremote && Z_STRLEN_P(zremote)) { - Z_TYPE_P(zremote) = IS_STRING; + if (zremote) { + ZVAL_STRINGL(zremote, remote_addr, remote_addr_len, 0); } read_buf[recvd] = '\0'; if (PG(magic_quotes_runtime)) { Z_TYPE_P(return_value) = IS_STRING; - Z_STRVAL_P(return_value) = php_addslashes(Z_STRVAL_P(return_value), - Z_STRLEN_P(return_value), &Z_STRLEN_P(return_value), 1 TSRMLS_CC); + Z_STRVAL_P(return_value) = php_addslashes(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value), &Z_STRLEN_P(return_value), 1 TSRMLS_CC); return; } else { RETURN_STRINGL(read_buf, recvd, 0);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php