libUPnP  1.6.17
Data Structures | Files | Defines | Typedefs | Functions
Network Socket Library

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 Documentation

#define INVALID_SOCKET   (-1)
#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 Documentation

typedef int SOCKET

This typedef makes the code slightly more WIN32 tolerant. On WIN32 systems, SOCKET is unsigned and is not a file descriptor.


Function Documentation

static UPNP_INLINE int sock_close ( SOCKET  sock) [static]

Closes the socket if it is different from -1.

Returns:
-1 if an error occurred or if the socket is -1.
Parameters:
sockSocket 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.

Returns:
Integer:
  • UPNP_E_SOCKET_ERROR on failure.
  • UPNP_E_SUCCESS on success.
Parameters:
[in,out]infoSocket Information Object.
[in]ShutdownMethodHow 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().

int sock_init ( SOCKINFO info,
SOCKET  sockfd 
)

Assign the passed in socket descriptor to socket descriptor in the SOCKINFO structure.

Returns:
Integer:
  • UPNP_E_SUCCESS
  • UPNP_E_OUTOF_MEMORY
  • UPNP_E_SOCKET_ERROR
Parameters:
[out]infoSocket Information Object.
[in]sockfdSocket 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.

Returns:
Integer:
  • UPNP_E_SUCCESS
  • UPNP_E_OUTOF_MEMORY
  • UPNP_E_SOCKET_ERROR
Parameters:
[out]infoSocket Information Object.
[in]sockfdSocket Descriptor.
[in]foreign_sockaddrRemote socket address.

References SOCKINFO::foreign_sockaddr, sock_init(), and UPNP_E_SUCCESS.

int sock_make_blocking ( SOCKET  sock)

Make socket blocking.

Returns:
0 if successful, -1 otherwise.

Referenced by Check_Connect_And_Wait_Connection().

Make socket non-blocking.

Returns:
0 if successful, -1 otherwise.

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.

Returns:
Integer:
  • numBytes - On Success, no of bytes received.
  • UPNP_E_TIMEDOUT - Timeout.
  • UPNP_E_SOCKET_ERROR - Error on socket calls.
Parameters:
[in]infoSocket Information Object.
[out]bufferBuffer to get data to.
[in]bufsizeSize of the buffer.
[in,out]timeoutSecstimeout 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.

Returns:
  • numBytes - On Success, no of bytes received or sent or
  • UPNP_E_TIMEDOUT - Timeout
  • UPNP_E_SOCKET_ERROR - Error on socket calls
Parameters:
[in]infoSocket Information Object.
[out]bufferBuffer to get data to or send data from.
[in]bufsizeSize of the buffer.
[in]timeoutSecstimeout value.
[in]bReadBoolean 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.

Returns:
Integer:
  • numBytes - On Success, no of bytes received.
  • UPNP_E_TIMEDOUT - Timeout.
  • UPNP_E_SOCKET_ERROR - Error on socket calls.
Parameters:
[in]infoSocket Information Object.
[in]bufferBuffer to send data from.
[in]bufsizeSize of the buffer.
[in,out]timeoutSecstimeout value.

References FALSE, and sock_read_write().

Referenced by http_SendMessage().