libUPnP
1.6.17
|
Data Structures | |
struct | SOCKINFO |
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 |
Defines | |
#define | INVALID_SOCKET (-1) |
#define | SOCKET_ERROR (-1) |
#define | UpnpCloseSocket close |
#define | MSG_NOSIGNAL 0 |
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) |
Shutsdown the socket using the ShutdownMethod to indicate whether sends and receives on the socket will be dis-allowed. | |
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. |
#define INVALID_SOCKET (-1) |
INVALID_SOCKET is unsigned on win32.
Referenced by Check_Connect_And_Wait_Connection(), create_ssdp_sock_reqv4(), create_ssdp_sock_v4(), get_miniserver_stopsock(), get_ssdp_sockets(), getlocalhostname(), http_OpenHttpGetProxy(), NewRequestHandler(), SearchByTarget(), sock_close(), sock_destroy(), StopMiniServer(), and UpnpGetIfInfo().
#define SOCKET_ERROR (-1) |
select() returns SOCKET_ERROR on win32.
Referenced by get_miniserver_stopsock(), and RunMiniServer().
#define UpnpCloseSocket close |
Alias to close() to make code more WIN32 tolerant.
Referenced by Check_Connect_And_Wait_Connection(), create_ssdp_sock_v4(), get_ssdp_sockets(), NewRequestHandler(), SearchByTarget(), and sock_close().
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 UPNP_INLINE int sock_close | ( | SOCKET | sock | ) | [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 | ||
) |
Shutsdown the socket using the ShutdownMethod to indicate whether sends and receives on the socket will be dis-allowed.
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_OpenHttpGetProxy(), 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_OpenHttpGetProxy(), notify_send_and_recv(), and sock_init_with_ip().
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.
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().
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_RecvMessage(), http_RecvPostMessage(), and ReadResponseLineAndHeaders().
static int sock_read_write | ( | SOCKINFO * | info, |
char * | buffer, | ||
size_t | bufsize, | ||
int * | timeoutSecs, | ||
int | bRead | ||
) | [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 FALSE, and sock_read_write().
Referenced by http_SendMessage().