diff options
author | Wez Furlong <wez@php.net> | 2002-03-15 21:03:08 +0000 |
---|---|---|
committer | Wez Furlong <wez@php.net> | 2002-03-15 21:03:08 +0000 |
commit | 0f65280cb5118d8c1a85db6626f7be365f3d1b26 (patch) | |
tree | 931b09acc5041eb771017e3ebf9ecb9aa833d722 /main/php_network.h | |
parent | 3a1ebd4f519facbd7ec769304857aad40e49cf1c (diff) | |
download | php-git-0f65280cb5118d8c1a85db6626f7be365f3d1b26.tar.gz |
New PHP streams...
Diffstat (limited to 'main/php_network.h')
-rw-r--r-- | main/php_network.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/main/php_network.h b/main/php_network.h index b71737265f..b87e709fff 100644 --- a/main/php_network.h +++ b/main/php_network.h @@ -27,8 +27,17 @@ # undef FD_SETSIZE # include "arpa/inet.h" # define socklen_t unsigned int +#else +# undef closesocket +# define closesocket close +#endif + +#ifndef HAVE_SHUTDOWN +#undef shutdown +#define shutdown(s,n) /* nothing */ #endif + #ifdef HAVE_NETINET_IN_H # include <netinet/in.h> #endif @@ -41,6 +50,10 @@ #include <sys/time.h> #endif +#if HAVE_OPENSSL_EXT +#include <openssl/ssl.h> +#endif + #ifdef HAVE_SOCKADDR_STORAGE typedef struct sockaddr_storage php_sockaddr_storage; #else @@ -56,6 +69,47 @@ PHPAPI int php_connect_nonb(int sockfd, const struct sockaddr *addr, socklen_t a void php_any_addr(int family, php_sockaddr_storage *addr, unsigned short port); int php_sockaddr_size(php_sockaddr_storage *addr); +struct _php_netstream_data_t { + int socket; + unsigned char *readbuf; + size_t readbuflen; + size_t readpos; + size_t writepos; + char eof; + char is_blocked; + size_t chunk_size; + struct timeval timeout; + char timeout_event; +#if HAVE_OPENSSL_EXT + /* openssl specific bits here */ + SSL * ssl_handle; + int ssl_active; +#endif +}; +typedef struct _php_netstream_data_t php_netstream_data_t; + +#define PHP_NETSTREAM_DATA_FROM_STREAM(stream) (php_netstream_data_t*)(stream)->abstract + +extern php_stream_ops php_stream_socket_ops; +#define PHP_STREAM_IS_SOCKET (&php_stream_socket_ops) + +PHPAPI php_stream * php_stream_sock_open_from_socket(int socket, int persistent); +/* open a connection to a host using php_hostconnect and return a stream */ +PHPAPI php_stream * php_stream_sock_open_host(const char * host, unsigned short port, + int socktype, int timeout, int persistent); +PHPAPI php_stream * php_stream_sock_open_unix(const char * path, int persistent, struct timeval * timeout); + +PHPAPI void php_stream_sock_set_timeout(php_stream * stream, struct timeval *timeout); +PHPAPI int php_stream_sock_set_blocking(php_stream * stream, int mode); +/* set the chunk size for the stream; return the old chunk size */ +PHPAPI size_t php_stream_sock_set_chunk_size(php_stream * stream, size_t size); + +#if HAVE_OPENSSL_EXT +PHPAPI int php_stream_sock_ssl_activate_with_method(php_stream * stream, int activate, SSL_METHOD * method); +#define php_stream_sock_ssl_activate(stream, activate) php_stream_sock_ssl_activate_with_method((stream), (activate), SSLv23_client_method()) + +#endif + #endif /* _PHP_NETWORK_H */ /* |