diff options
| author | Dmitry Stogov <dmitry@php.net> | 2006-12-19 08:58:58 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2006-12-19 08:58:58 +0000 |
| commit | 03312cc0d9594b1c70cb563a8e3450be5cc6f505 (patch) | |
| tree | 956fe2b206234fc346716ea236ec6e216072e3e5 /main/streams/xp_socket.c | |
| parent | 8a3a61bcd047c4da7b3355129e33646ae01f917c (diff) | |
| download | php-git-03312cc0d9594b1c70cb563a8e3450be5cc6f505.tar.gz | |
Added function stream_socket_shutdown(). It is a wraper for system shutdown() function, that shut downs part of a full-duplex connection
Diffstat (limited to 'main/streams/xp_socket.c')
| -rw-r--r-- | main/streams/xp_socket.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c index af2a060cff..6528a95b64 100644 --- a/main/streams/xp_socket.c +++ b/main/streams/xp_socket.c @@ -369,6 +369,24 @@ static int php_sockop_set_option(php_stream *stream, int option, int value, void return PHP_STREAM_OPTION_RETURN_OK; +#ifdef HAVE_SHUTDOWN +# ifndef SHUT_RD +# define SHUT_RD 0 +# endif +# ifndef SHUT_WR +# define SHUT_WR 1 +# endif +# ifndef SHUT_RDWR +# define SHUT_RDWR 2 +# endif + case STREAM_XPORT_OP_SHUTDOWN: { + static const int shutdown_how[] = {SHUT_RD, SHUT_WR, SHUT_RDWR}; + + xparam->outputs.returncode = shutdown(sock->socket, shutdown_how[xparam->how]); + return PHP_STREAM_OPTION_RETURN_OK; + } +#endif + default: return PHP_STREAM_OPTION_RETURN_NOTIMPL; } |
