libUPnP 1.14.19
|
Files | |
file | UpnpInet.h |
Provides a platform independent way to include TCP/IP types and functions. | |
file | sock.c |
Implements the sockets functionality. | |
file | sock.h |
Data Structures | |
struct | SOCKINFO |
Macros | |
#define | INVALID_SOCKET (-1) |
#define | SOCKET_ERROR (-1) |
#define | UpnpCloseSocket close |
#define | MSG_NOSIGNAL 0 |
#define | SD_RECEIVE 0x00 |
#define | SD_SEND 0x01 |
#define | SD_BOTH 0x02 |
Typedefs | |
typedef int | SOCKET |
Functions | |
int | sock_init ( SOCKINFO *info, SOCKET sockfd) |
Assign the passed in socket descriptor to socket descriptor in the SOCKINFO structure. | |
int | sock_init_with_ip ( SOCKINFO *info, SOCKET sockfd, struct sockaddr *foreign_sockaddr) |
Calls the sock_init function and assigns the passed in IP address and port to the IP address and port in the SOCKINFO structure. | |
int | sock_destroy ( SOCKINFO *info, int ShutdownMethod) |
Associates an SSL object with the socket and begins the client-side SSL/TLS handshake. | |
static int | sock_read_write (SOCKINFO *info, char *buffer, size_t bufsize, int *timeoutSecs, int bRead) |
Receives or sends data. Also returns the time taken to receive or send data. | |
int | sock_read ( SOCKINFO *info, char *buffer, size_t bufsize, int *timeoutSecs) |
Reads data on socket in sockinfo. | |
int | sock_write ( SOCKINFO *info, const char *buffer, size_t bufsize, int *timeoutSecs) |
Writes data on the socket in sockinfo. | |
int | sock_make_blocking ( SOCKET sock) |
Make socket blocking. | |
int | sock_make_no_blocking ( SOCKET sock) |
Make socket non-blocking. | |
static UPNP_INLINE int | sock_close (SOCKET sock) |
Closes the socket if it is different from -1. | |
Variables | |
SOCKET | SOCKINFO::socket |
struct sockaddr_storage | SOCKINFO::foreign_sockaddr |
#define INVALID_SOCKET (-1) |
INVALID_SOCKET is unsigned on win32.
#define SOCKET_ERROR (-1) |
select() returns SOCKET_ERROR on win32.
#define UpnpCloseSocket close |
Alias to close() to make code more WIN32 tolerant.
typedef int SOCKET |
This typedef makes the code slightly more WIN32 tolerant. On WIN32 systems, SOCKET is unsigned and is not a file descriptor.
|
static |
Closes the socket if it is different from -1.
sock | Socket descriptor. |
References INVALID_SOCKET, and UpnpCloseSocket.
Referenced by get_miniserver_stopsock(), RunMiniServer(), sock_destroy(), StartMiniServer(), and StopMiniServer().
int sock_destroy | ( | SOCKINFO * | info, |
int | ShutdownMethod | ||
) |
Associates an SSL object with the socket and begins the client-side SSL/TLS handshake.
UPNP_E_SUCCESS
UPNP_E_SOCKET_ERROR
After shutting down the socket, closesocket is called to release system resources used by the socket calls.
UPNP_E_SOCKET_ERROR
on failure. UPNP_E_SUCCESS
on success. [in,out] | info | Socket Information Object. |
[in] | ShutdownMethod | How to shutdown the socket. Used by sockets's shutdown(). |
References INVALID_SOCKET, sock_close(), SOCKINFO::socket, UPNP_E_SOCKET_ERROR, UPNP_E_SUCCESS, and UpnpPrintf().
Referenced by http_CloseHttpConnection(), http_OpenHttpConnection(), and notify_send_and_recv().
Assign the passed in socket descriptor to socket descriptor in the SOCKINFO structure.
UPNP_E_SUCCESS
UPNP_E_OUTOF_MEMORY
UPNP_E_SOCKET_ERROR
[out] | info | Socket Information Object. |
[in] | sockfd | Socket Descriptor. |
References SOCKINFO::socket, and UPNP_E_SUCCESS.
Referenced by http_OpenHttpConnection(), notify_send_and_recv(), and sock_init_with_ip().
Calls the sock_init function and assigns the passed in IP address and port to the IP address and port in the SOCKINFO structure.
UPNP_E_SUCCESS
UPNP_E_OUTOF_MEMORY
UPNP_E_SOCKET_ERROR
[out] | info | Socket Information Object. |
[in] | sockfd | Socket Descriptor. |
[in] | foreign_sockaddr | Remote socket address. |
References SOCKINFO::foreign_sockaddr, sock_init(), and UPNP_E_SUCCESS.
int sock_make_blocking | ( | SOCKET | sock | ) |
Make socket blocking.
Referenced by Check_Connect_And_Wait_Connection().
int sock_make_no_blocking | ( | SOCKET | sock | ) |
Make socket non-blocking.
Referenced by Check_Connect_And_Wait_Connection(), and create_ssdp_sock_reqv4().
int sock_read | ( | SOCKINFO * | info, |
char * | buffer, | ||
size_t | bufsize, | ||
int * | timeoutSecs | ||
) |
Reads data on socket in sockinfo.
numBytes
- On Success, no of bytes received. UPNP_E_TIMEDOUT
- Timeout. UPNP_E_SOCKET_ERROR
- Error on socket calls. [in] | info | Socket Information Object. |
[out] | buffer | Buffer to get data to. |
[in] | bufsize | Size of the buffer. |
[in,out] | timeoutSecs | timeout value. |
References sock_read_write().
Referenced by http_ReadHttpResponse(), http_RecvMessage(), http_RecvPostMessage(), and ReadResponseLineAndHeaders().
|
static |
Receives or sends data. Also returns the time taken to receive or send data.
numBytes
- On Success, no of bytes received or sent or UPNP_E_TIMEDOUT
- Timeout UPNP_E_SOCKET_ERROR
- Error on socket calls [in] | info | Socket Information Object. |
[out] | buffer | Buffer to get data to or send data from. |
[in] | bufsize | Size of the buffer. |
[in] | timeoutSecs | timeout value. |
[in] | bRead | Boolean value specifying read or write option. |
References SOCKINFO::socket, UPNP_E_SOCKET_ERROR, and UPNP_E_TIMEDOUT.
Referenced by sock_read(), and sock_write().
int sock_write | ( | SOCKINFO * | info, |
const char * | buffer, | ||
size_t | bufsize, | ||
int * | timeoutSecs | ||
) |
Writes data on the socket in sockinfo.
numBytes
- On Success, no of bytes received. UPNP_E_TIMEDOUT
- Timeout. UPNP_E_SOCKET_ERROR
- Error on socket calls. [in] | info | Socket Information Object. |
[in] | buffer | Buffer to send data from. |
[in] | bufsize | Size of the buffer. |
[in,out] | timeoutSecs | timeout value. |
References sock_read_write().
Referenced by http_EndHttpRequest(), http_SendMessage(), and http_WriteHttpRequest().
struct sockaddr_storage SOCKINFO::foreign_sockaddr |
The following two fields are filled only in incoming requests.
Referenced by gena_process_subscription_renewal_request(), gena_process_subscription_request(), gena_process_unsubscribe_request(), gena_validate_delivery_urls(), handle_invoke_action(), handle_query_variable(), process_request(), soap_device_callback(), and sock_init_with_ip().
SOCKET SOCKINFO::socket |
Handle/descriptor to a socket.
Referenced by sock_destroy(), sock_init(), and sock_read_write().