com php-src: do portable socket checks: Zend/zend_portability .h sapi/cli/php_cli_server.c
| From: | Anatol Belski | Date: | Mon, 10 Nov 2014 22:30:12 +0000 |
| Subject: | com php-src: do portable socket checks: Zend/zend_portability .h sapi/cli/php_cli_server.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-83005@lists.php.net to get a copy of this message | ||
Commit: 88ba5a625c7efb1001ce90c8f4649cff830d82a4
Author: Anatol Belski <ab@php.net> Mon, 10 Nov 2014 18:16:31 +0100
Parents: 09aa419d13204ffd1b4a705b8f04d6d25fc19556
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=88ba5a625c7efb1001ce90c8f4649cff830d82a4
Log:
do portable socket checks
also introduced a portable macro for that
Changed paths:
M Zend/zend_portability.h
M sapi/cli/php_cli_server.c
Diff:
diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h
index a6dac42..f056b16 100644
--- a/Zend/zend_portability.h
+++ b/Zend/zend_portability.h
@@ -394,6 +394,12 @@ char *alloca();
#define ZEND_SECURE_ZERO(var, size) memset((var), 0, (size))
#endif
+#ifdef ZEND_WIN32
+#define ZEND_VALID_SOCKET(sock) (INVALID_SOCKET != (sock))
+#else
+#define ZEND_VALID_SOCKET(sock) ((sock) >= 0)
+#endif
+
#endif /* ZEND_PORTABILITY_H */
/*
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c
index 19a9421..20e27f0 100644
--- a/sapi/cli/php_cli_server.c
+++ b/sapi/cli/php_cli_server.c
@@ -556,7 +556,7 @@ static void sapi_cli_server_flush(void *server_context TSRMLS_DC) /* {{{ */
return;
}
- if (client->sock < 0) {
+ if (!ZEND_VALID_SOCKET(client->sock)) {
php_handle_aborted_connection();
return;
}
@@ -1338,7 +1338,7 @@ out:
php_network_freeaddresses(sal);
}
if (err) {
- if (retval >= 0) {
+ if (ZEND_VALID_SOCKET(retval)) {
closesocket(retval);
}
if (errstr) {
@@ -2186,7 +2186,7 @@ static void php_cli_server_dtor(php_cli_server *server TSRMLS_DC) /* {{{ */
{
zend_hash_destroy(&server->clients);
zend_hash_destroy(&server->extension_mime_types);
- if (server->server_sock >= 0) {
+ if (ZEND_VALID_SOCKET(server->server_sock)) {
closesocket(server->server_sock);
}
if (server->host) {
@@ -2407,7 +2407,7 @@ static int php_cli_server_do_event_for_each_fd_callback(void *_params,
php_socke
return FAILURE;
}
client_sock = accept(server->server_sock, sa, &socklen);
- if (client_sock < 0) {
+ if (!ZEND_VALID_SOCKET(client_sock)) {
char *errstr;
errstr = php_socket_strerror(php_socket_errno(), NULL, 0);
php_cli_server_logf("Failed to accept a client (reason: %s)" TSRMLS_CC, errstr);