php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
php_network.h File Reference
#include <php.h>
#include <netinet/tcp.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  _php_pollfd
 
struct  php_sockaddr_storage
 
struct  _php_netstream_data_t
 

Macros

#define closesocket   close
 
#define shutdown(s, n)
 
#define EWOULDBLOCK   EAGAIN
 
#define PHP_IS_TRANSIENT_ERROR(err)
 
#define php_socket_errno()
 
#define SHUT_RD   0
 
#define SHUT_WR   1
 
#define SHUT_RDWR   2
 
#define SOCK_ERR   -1
 
#define SOCK_CONN_ERR   -1
 
#define SOCK_RECV_ERR   -1
 
#define STREAM_SOCKOP_NONE   (1 << 0)
 
#define STREAM_SOCKOP_SO_REUSEPORT   (1 << 1)
 
#define STREAM_SOCKOP_SO_BROADCAST   (1 << 2)
 
#define STREAM_SOCKOP_IPV6_V6ONLY   (1 << 3)
 
#define STREAM_SOCKOP_IPV6_V6ONLY_ENABLED   (1 << 4)
 
#define STREAM_SOCKOP_TCP_NODELAY   (1 << 5)
 
#define POLLIN   0x0001 /* There is data to read */
 
#define POLLPRI   0x0002 /* There is urgent data to read */
 
#define POLLOUT   0x0004 /* Writing now will not block */
 
#define POLLERR   0x0008 /* Error condition */
 
#define POLLHUP   0x0010 /* Hung up */
 
#define POLLNVAL   0x0020 /* Invalid request: fd not open */
 
#define PHP_USE_POLL_2_EMULATION   1
 
#define PHP_POLLREADABLE   (POLLIN|POLLERR|POLLHUP)
 
#define PHP_SAFE_FD_SET(fd, set)
 
#define PHP_SAFE_FD_CLR(fd, set)
 
#define PHP_SAFE_FD_ISSET(fd, set)
 
#define PHP_SAFE_MAX_FD(m, n)
 
#define PHP_SOCK_CHUNK_SIZE   8192
 
#define php_connect_nonb(sock, addr, addrlen, timeout)
 
#define PHP_STREAM_IS_SOCKET   (&php_stream_socket_ops)
 
#define php_stream_sock_open_from_socket(socket, persistent)
 
#define php_stream_sock_open_host(host, port, socktype, timeout, persistent)
 
#define php_stream_sock_open_from_socket_rel(socket, persistent)
 
#define php_stream_sock_open_host_rel(host, port, socktype, timeout, persistent)
 
#define php_stream_sock_open_unix_rel(path, pathlen, persistent, timeval)
 
#define MAXFQDNLEN   255
 

Typedefs

typedef int php_socket_t
 
typedef struct _php_pollfd php_pollfd
 
typedef struct _php_netstream_data_t php_netstream_data_t
 

Functions

PHPAPI char * php_socket_strerror (long err, char *buf, size_t bufsize)
 
PHPAPI zend_stringphp_socket_error_str (long err)
 
PHPAPI int php_poll2 (php_pollfd *ufds, unsigned int nfds, int timeout)
 
PHPAPI void _php_emit_fd_setsize_warning (int max_fd)
 
PHPAPI int php_network_getaddresses (const char *host, int socktype, struct sockaddr ***sal, zend_string **error_string)
 
PHPAPI void php_network_freeaddresses (struct sockaddr **sal)
 
PHPAPI php_socket_t php_network_connect_socket_to_host (const char *host, unsigned short port, int socktype, int asynchronous, struct timeval *timeout, zend_string **error_string, int *error_code, const char *bindto, unsigned short bindport, long sockopts)
 
PHPAPI int php_network_connect_socket (php_socket_t sockfd, const struct sockaddr *addr, socklen_t addrlen, int asynchronous, struct timeval *timeout, zend_string **error_string, int *error_code)
 
PHPAPI php_socket_t php_network_bind_socket_to_local_addr (const char *host, unsigned port, int socktype, long sockopts, zend_string **error_string, int *error_code)
 
PHPAPI php_socket_t php_network_accept_incoming (php_socket_t srvsock, zend_string **textaddr, struct sockaddr **addr, socklen_t *addrlen, struct timeval *timeout, zend_string **error_string, int *error_code, int tcp_nodelay)
 
PHPAPI int php_network_get_sock_name (php_socket_t sock, zend_string **textaddr, struct sockaddr **addr, socklen_t *addrlen)
 
PHPAPI int php_network_get_peer_name (php_socket_t sock, zend_string **textaddr, struct sockaddr **addr, socklen_t *addrlen)
 
PHPAPI void php_any_addr (int family, php_sockaddr_storage *addr, unsigned short port)
 
PHPAPI socklen_t php_sockaddr_size (php_sockaddr_storage *addr)
 
PHPAPI php_stream_php_stream_sock_open_from_socket (php_socket_t socket, const char *persistent_id STREAMS_DC)
 
PHPAPI php_stream_php_stream_sock_open_host (const char *host, unsigned short port, int socktype, struct timeval *timeout, const char *persistent_id STREAMS_DC)
 
PHPAPI void php_network_populate_name_from_sockaddr (struct sockaddr *sa, socklen_t sl, zend_string **textaddr, struct sockaddr **addr, socklen_t *addrlen)
 
PHPAPI zend_result php_network_parse_network_address_with_port (const char *addr, size_t addrlen, struct sockaddr *sa, socklen_t *sl)
 
PHPAPI struct hostent * php_network_gethostbyname (const char *name)
 
PHPAPI zend_result php_set_sock_blocking (php_socket_t socketd, bool block)
 

Variables

PHPAPI const php_stream_ops php_stream_socket_ops
 
const php_stream_ops php_stream_generic_socket_ops
 

Macro Definition Documentation

◆ closesocket

#define closesocket   close

Definition at line 24 of file php_network.h.

◆ EWOULDBLOCK

#define EWOULDBLOCK   EAGAIN

Definition at line 47 of file php_network.h.

◆ MAXFQDNLEN

#define MAXFQDNLEN   255

Definition at line 358 of file php_network.h.

◆ php_connect_nonb

#define php_connect_nonb ( sock,
addr,
addrlen,
timeout )
Value:
php_network_connect_socket((sock), (addr), (addrlen), 0, (timeout), NULL, NULL)
#define NULL
Definition gdcache.h:45
PHPAPI int php_network_connect_socket(php_socket_t sockfd, const struct sockaddr *addr, socklen_t addrlen, int asynchronous, struct timeval *timeout, zend_string **error_string, int *error_code)
Definition network.c:334

Definition at line 279 of file php_network.h.

◆ PHP_IS_TRANSIENT_ERROR

#define PHP_IS_TRANSIENT_ERROR ( err)
Value:
(err == EAGAIN)
char * err
Definition ffi.c:3029
#define EAGAIN

Definition at line 54 of file php_network.h.

◆ PHP_POLLREADABLE

#define PHP_POLLREADABLE   (POLLIN|POLLERR|POLLHUP)

Definition at line 154 of file php_network.h.

◆ PHP_SAFE_FD_CLR

#define PHP_SAFE_FD_CLR ( fd,
set )
Value:
do { if (fd < FD_SETSIZE) FD_CLR(fd, set); } while(0)
int fd
Definition phpdbg.h:282

Definition at line 240 of file php_network.h.

◆ PHP_SAFE_FD_ISSET

#define PHP_SAFE_FD_ISSET ( fd,
set )
Value:
((fd < FD_SETSIZE) && FD_ISSET(fd, set))

Definition at line 241 of file php_network.h.

◆ PHP_SAFE_FD_SET

#define PHP_SAFE_FD_SET ( fd,
set )
Value:
do { if (fd < FD_SETSIZE) FD_SET(fd, set); } while(0)

Definition at line 239 of file php_network.h.

◆ PHP_SAFE_MAX_FD

#define PHP_SAFE_MAX_FD ( m,
n )
Value:
_php_check_fd_setsize(&m, n)
zend_long n
Definition ffi.c:4979

Definition at line 242 of file php_network.h.

◆ PHP_SOCK_CHUNK_SIZE

#define PHP_SOCK_CHUNK_SIZE   8192

Definition at line 246 of file php_network.h.

◆ php_socket_errno

#define php_socket_errno ( )
Value:
#define errno

Definition at line 60 of file php_network.h.

◆ PHP_STREAM_IS_SOCKET

#define PHP_STREAM_IS_SOCKET   (&php_stream_socket_ops)

Definition at line 322 of file php_network.h.

◆ php_stream_sock_open_from_socket

#define php_stream_sock_open_from_socket ( socket,
persistent )
Value:
ffi persistent
Definition ffi.c:3633
PHPAPI php_stream * _php_stream_sock_open_from_socket(php_socket_t socket, const char *persistent_id STREAMS_DC)
Definition network.c:1104
#define STREAMS_CC
Definition php_streams.h:54

Definition at line 347 of file php_network.h.

◆ php_stream_sock_open_from_socket_rel

#define php_stream_sock_open_from_socket_rel ( socket,
persistent )
Value:

Definition at line 351 of file php_network.h.

◆ php_stream_sock_open_host

#define php_stream_sock_open_host ( host,
port,
socktype,
timeout,
persistent )
Value:
_php_stream_sock_open_host((host), (port), (socktype), (timeout), (persistent) STREAMS_CC)
PHPAPI php_stream * _php_stream_sock_open_host(const char *host, unsigned short port, int socktype, struct timeval *timeout, const char *persistent_id STREAMS_DC)
Definition network.c:1128

Definition at line 348 of file php_network.h.

◆ php_stream_sock_open_host_rel

#define php_stream_sock_open_host_rel ( host,
port,
socktype,
timeout,
persistent )
Value:
_php_stream_sock_open_host((host), (port), (socktype), (timeout), (persistent) STREAMS_REL_CC)

Definition at line 352 of file php_network.h.

◆ php_stream_sock_open_unix_rel

#define php_stream_sock_open_unix_rel ( path,
pathlen,
persistent,
timeval )
Value:
_php_stream_sock_open_unix((path), (pathlen), (persistent), (timeval) STREAMS_REL_CC)

Definition at line 353 of file php_network.h.

◆ PHP_USE_POLL_2_EMULATION

#define PHP_USE_POLL_2_EMULATION   1

Definition at line 150 of file php_network.h.

◆ POLLERR

#define POLLERR   0x0008 /* Error condition */

Definition at line 144 of file php_network.h.

◆ POLLHUP

#define POLLHUP   0x0010 /* Hung up */

Definition at line 145 of file php_network.h.

◆ POLLIN

#define POLLIN   0x0001 /* There is data to read */

Definition at line 141 of file php_network.h.

◆ POLLNVAL

#define POLLNVAL   0x0020 /* Invalid request: fd not open */

Definition at line 146 of file php_network.h.

◆ POLLOUT

#define POLLOUT   0x0004 /* Writing now will not block */

Definition at line 143 of file php_network.h.

◆ POLLPRI

#define POLLPRI   0x0002 /* There is urgent data to read */

Definition at line 142 of file php_network.h.

◆ SHUT_RD

#define SHUT_RD   0

Definition at line 86 of file php_network.h.

◆ SHUT_RDWR

#define SHUT_RDWR   2

Definition at line 88 of file php_network.h.

◆ SHUT_WR

#define SHUT_WR   1

Definition at line 87 of file php_network.h.

◆ shutdown

#define shutdown ( s,
n )
Value:
/* nothing */

Definition at line 30 of file php_network.h.

◆ SOCK_CONN_ERR

#define SOCK_CONN_ERR   -1

Definition at line 109 of file php_network.h.

◆ SOCK_ERR

#define SOCK_ERR   -1

Definition at line 108 of file php_network.h.

◆ SOCK_RECV_ERR

#define SOCK_RECV_ERR   -1

Definition at line 110 of file php_network.h.

◆ STREAM_SOCKOP_IPV6_V6ONLY

#define STREAM_SOCKOP_IPV6_V6ONLY   (1 << 3)

Definition at line 116 of file php_network.h.

◆ STREAM_SOCKOP_IPV6_V6ONLY_ENABLED

#define STREAM_SOCKOP_IPV6_V6ONLY_ENABLED   (1 << 4)

Definition at line 117 of file php_network.h.

◆ STREAM_SOCKOP_NONE

#define STREAM_SOCKOP_NONE   (1 << 0)

Definition at line 113 of file php_network.h.

◆ STREAM_SOCKOP_SO_BROADCAST

#define STREAM_SOCKOP_SO_BROADCAST   (1 << 2)

Definition at line 115 of file php_network.h.

◆ STREAM_SOCKOP_SO_REUSEPORT

#define STREAM_SOCKOP_SO_REUSEPORT   (1 << 1)

Definition at line 114 of file php_network.h.

◆ STREAM_SOCKOP_TCP_NODELAY

#define STREAM_SOCKOP_TCP_NODELAY   (1 << 5)

Definition at line 118 of file php_network.h.

Typedef Documentation

◆ php_netstream_data_t

Definition at line 319 of file php_network.h.

◆ php_pollfd

typedef struct _php_pollfd php_pollfd

◆ php_socket_t

typedef int php_socket_t

Definition at line 100 of file php_network.h.

Function Documentation

◆ _php_emit_fd_setsize_warning()

PHPAPI void _php_emit_fd_setsize_warning ( int max_fd)

Definition at line 1178 of file network.c.

◆ _php_stream_sock_open_from_socket()

PHPAPI php_stream * _php_stream_sock_open_from_socket ( php_socket_t socket,
const char *persistent_id STREAMS_DC )

Definition at line 1104 of file network.c.

◆ _php_stream_sock_open_host()

PHPAPI php_stream * _php_stream_sock_open_host ( const char * host,
unsigned short port,
int socktype,
struct timeval * timeout,
const char *persistent_id STREAMS_DC )

Definition at line 1128 of file network.c.

◆ php_any_addr()

PHPAPI void php_any_addr ( int family,
php_sockaddr_storage * addr,
unsigned short port )

Definition at line 993 of file network.c.

◆ php_network_accept_incoming()

PHPAPI php_socket_t php_network_accept_incoming ( php_socket_t srvsock,
zend_string ** textaddr,
struct sockaddr ** addr,
socklen_t * addrlen,
struct timeval * timeout,
zend_string ** error_string,
int * error_code,
int tcp_nodelay )

Definition at line 757 of file network.c.

◆ php_network_bind_socket_to_local_addr()

PHPAPI php_socket_t php_network_bind_socket_to_local_addr ( const char * host,
unsigned port,
int socktype,
long sockopts,
zend_string ** error_string,
int * error_code )

Definition at line 454 of file network.c.

◆ php_network_connect_socket()

PHPAPI int php_network_connect_socket ( php_socket_t sockfd,
const struct sockaddr * addr,
socklen_t addrlen,
int asynchronous,
struct timeval * timeout,
zend_string ** error_string,
int * error_code )

Definition at line 334 of file network.c.

◆ php_network_connect_socket_to_host()

PHPAPI php_socket_t php_network_connect_socket_to_host ( const char * host,
unsigned short port,
int socktype,
int asynchronous,
struct timeval * timeout,
zend_string ** error_string,
int * error_code,
const char * bindto,
unsigned short bindport,
long sockopts )

Definition at line 816 of file network.c.

◆ php_network_freeaddresses()

PHPAPI void php_network_freeaddresses ( struct sockaddr ** sal)

Definition at line 133 of file network.c.

◆ php_network_get_peer_name()

PHPAPI int php_network_get_peer_name ( php_socket_t sock,
zend_string ** textaddr,
struct sockaddr ** addr,
socklen_t * addrlen )

Definition at line 706 of file network.c.

◆ php_network_get_sock_name()

PHPAPI int php_network_get_sock_name ( php_socket_t sock,
zend_string ** textaddr,
struct sockaddr ** addr,
socklen_t * addrlen )

Definition at line 726 of file network.c.

◆ php_network_getaddresses()

PHPAPI int php_network_getaddresses ( const char * host,
int socktype,
struct sockaddr *** sal,
zend_string ** error_string )

Definition at line 148 of file network.c.

◆ php_network_gethostbyname()

PHPAPI struct hostent * php_network_gethostbyname ( const char * name)

Definition at line 1350 of file network.c.

◆ php_network_parse_network_address_with_port()

PHPAPI zend_result php_network_parse_network_address_with_port ( const char * addr,
size_t addrlen,
struct sockaddr * sa,
socklen_t * sl )

Definition at line 552 of file network.c.

◆ php_network_populate_name_from_sockaddr()

PHPAPI void php_network_populate_name_from_sockaddr ( struct sockaddr * sa,
socklen_t sl,
zend_string ** textaddr,
struct sockaddr ** addr,
socklen_t * addrlen )

Definition at line 643 of file network.c.

◆ php_poll2()

PHPAPI int php_poll2 ( php_pollfd * ufds,
unsigned int nfds,
int timeout )

Definition at line 1206 of file network.c.

◆ php_set_sock_blocking()

PHPAPI zend_result php_set_sock_blocking ( php_socket_t socketd,
bool block )

Definition at line 1145 of file network.c.

◆ php_sockaddr_size()

PHPAPI socklen_t php_sockaddr_size ( php_sockaddr_storage * addr)

Definition at line 1020 of file network.c.

◆ php_socket_error_str()

PHPAPI zend_string * php_socket_error_str ( long err)

Definition at line 1079 of file network.c.

◆ php_socket_strerror()

PHPAPI char * php_socket_strerror ( long err,
char * buf,
size_t bufsize )

Definition at line 1045 of file network.c.

Variable Documentation

◆ php_stream_generic_socket_ops

const php_stream_ops php_stream_generic_socket_ops
extern
Initial value:
= {
php_sockop_write, php_sockop_read,
php_sockop_close, php_sockop_flush,
"generic_socket",
NULL,
php_sockop_cast,
php_sockop_stat,
php_sockop_set_option,
}

Definition at line 532 of file xp_socket.c.

◆ php_stream_socket_ops

const php_stream_ops php_stream_socket_ops
extern
Initial value:
= {
php_sockop_write, php_sockop_read,
php_sockop_close, php_sockop_flush,
"tcp_socket",
NULL,
php_sockop_cast,
php_sockop_stat,
php_tcp_sockop_set_option,
}

Definition at line 543 of file xp_socket.c.