diff options
| author | Wez Furlong <wez@php.net> | 2002-08-09 21:02:36 +0000 |
|---|---|---|
| committer | Wez Furlong <wez@php.net> | 2002-08-09 21:02:36 +0000 |
| commit | ccb5c84b6c5014d5f01746b84c3ce3dcd296f7c8 (patch) | |
| tree | cac5460d35516352338254c3af50c9ec3ae84ef6 /ext | |
| parent | 9eb215511feaab878fed2ab6500a83c28f5399f3 (diff) | |
| download | php-git-ccb5c84b6c5014d5f01746b84c3ce3dcd296f7c8.tar.gz | |
Centralize some blocking socket related code.
# It's been a while since I wrote this!
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/standard/file.c | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/ext/standard/file.c b/ext/standard/file.c index 58e1245421..e5ea504fc1 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -956,44 +956,12 @@ PHPAPI PHP_FUNCTION(feof) } /* }}} */ -/* TODO: move to main/network.c */ -PHPAPI int php_set_sock_blocking(int socketd, int block TSRMLS_DC) -{ - int ret = SUCCESS; - int flags; - int myflag = 0; - -#ifdef PHP_WIN32 - /* with ioctlsocket, a non-zero sets nonblocking, a zero sets blocking */ - flags = !block; - if (ioctlsocket(socketd, FIONBIO, &flags)==SOCKET_ERROR){ - php_error(E_WARNING, "%s(): %s", get_active_function_name(TSRMLS_C), WSAGetLastError()); - ret = FALSE; - } -#else - flags = fcntl(socketd, F_GETFL); -#ifdef O_NONBLOCK - myflag = O_NONBLOCK; /* POSIX version */ -#elif defined(O_NDELAY) - myflag = O_NDELAY; /* old non-POSIX version */ -#endif - if (!block) { - flags |= myflag; - } else { - flags &= ~myflag; - } - fcntl(socketd, F_SETFL, flags); -#endif - return ret; -} - /* {{{ proto bool socket_set_blocking(resource socket, int mode) Set blocking/non-blocking mode on a socket */ PHP_FUNCTION(socket_set_blocking) { zval **arg1, **arg2; int block, type; - int socketd = 0; void *what; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) { @@ -1007,15 +975,6 @@ PHP_FUNCTION(socket_set_blocking) block = Z_LVAL_PP(arg2); if (php_stream_is((php_stream*)what, PHP_STREAM_IS_SOCKET)) { - /* TODO: check if the blocking mode is changed elsewhere, and see if we - * can integrate these calls into php_stream_sock_set_blocking */ - if (FAILURE == php_stream_cast((php_stream *) what, PHP_STREAM_AS_SOCKETD, (void *) &socketd, REPORT_ERRORS)) { - RETURN_FALSE; - } - - if (php_set_sock_blocking(socketd, block TSRMLS_CC) == FAILURE) - RETURN_FALSE; - php_stream_sock_set_blocking((php_stream*)what, block == 0 ? 0 : 1 TSRMLS_CC); RETURN_TRUE; } |
