New function, sock_close().
This commit is contained in:
parent
5b40cfa272
commit
8401a59ed5
@ -27,6 +27,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
|
||||||
|
#include <unistd.h> /* for close(). Do not include in WIN32. */
|
||||||
#define SOCKET int
|
#define SOCKET int
|
||||||
#define INVALID_SOCKET ((SOCKET)(-1))
|
#define INVALID_SOCKET ((SOCKET)(-1))
|
||||||
#define UpnpCloseSocket close
|
#define UpnpCloseSocket close
|
||||||
|
@ -122,37 +122,19 @@ sock_init_with_ip( OUT SOCKINFO * info,
|
|||||||
return UPNP_E_SUCCESS;
|
return UPNP_E_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
int sock_destroy(INOUT SOCKINFO *info, int ShutdownMethod)
|
||||||
* Function : sock_destroy
|
|
||||||
*
|
|
||||||
* Parameters :
|
|
||||||
* INOUT SOCKINFO* info ; Socket Information Object
|
|
||||||
* int ShutdownMethod ; How to shutdown the socket. Used by
|
|
||||||
* sockets's shutdown()
|
|
||||||
*
|
|
||||||
* Description : 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.
|
|
||||||
*
|
|
||||||
* Return : int;
|
|
||||||
* UPNP_E_SOCKET_ERROR on failure
|
|
||||||
* UPNP_E_SUCCESS on success
|
|
||||||
*
|
|
||||||
* Note :
|
|
||||||
************************************************************************/
|
|
||||||
int
|
|
||||||
sock_destroy( INOUT SOCKINFO * info,
|
|
||||||
int ShutdownMethod )
|
|
||||||
{
|
{
|
||||||
if( info->socket != INVALID_SOCKET ) {
|
int ret = UPNP_E_SUCCESS;
|
||||||
shutdown( info->socket, ShutdownMethod );
|
|
||||||
if( UpnpCloseSocket( info->socket ) == -1 ) {
|
|
||||||
return UPNP_E_SOCKET_ERROR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return UPNP_E_SUCCESS;
|
if (info->socket != -1) {
|
||||||
|
shutdown(info->socket, ShutdownMethod);
|
||||||
|
if(sock_close(info->socket) == -1) {
|
||||||
|
ret = UPNP_E_SOCKET_ERROR;
|
||||||
|
}
|
||||||
|
info->socket = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -152,27 +152,39 @@ int sock_write( IN SOCKINFO *info, IN char* buffer, IN size_t bufsize,
|
|||||||
INOUT int *timeoutSecs );
|
INOUT int *timeoutSecs );
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* Function : sock_destroy
|
* Function: sock_destroy
|
||||||
*
|
*
|
||||||
* Parameters :
|
* Parameters:
|
||||||
* INOUT SOCKINFO* info ; Socket Information Object
|
* INOUT SOCKINFO* info ; Socket Information Object
|
||||||
* int ShutdownMethod ; How to shutdown the socket. Used by
|
* int ShutdownMethod ; How to shutdown the socket. Used by
|
||||||
* sockets's shutdown()
|
* sockets's shutdown()
|
||||||
*
|
*
|
||||||
* Description : Shutsdown the socket using the ShutdownMethod to
|
* Description: Shutsdown the socket using the ShutdownMethod to
|
||||||
* indicate whether sends and receives on the socket will be
|
* indicate whether sends and receives on the socket will be
|
||||||
* dis-allowed. After shutting down the socket, closesocket is called
|
* dis-allowed. After shutting down the socket, closesocket is called
|
||||||
* to release system resources used by the socket calls.
|
* to release system resources used by the socket calls.
|
||||||
*
|
*
|
||||||
* Return : int;
|
* Return: int;
|
||||||
* UPNP_E_SOCKET_ERROR on failure
|
* UPNP_E_SOCKET_ERROR on failure
|
||||||
* UPNP_E_SUCCESS on success
|
* UPNP_E_SUCCESS on success
|
||||||
*
|
*
|
||||||
* Note :
|
* Note:
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
int sock_destroy(INOUT SOCKINFO* info, int);
|
int sock_destroy(INOUT SOCKINFO* info, int);
|
||||||
|
|
||||||
|
|
||||||
|
static inline int sock_close(int sock)
|
||||||
|
{
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
if (sock != -1) {
|
||||||
|
ret = UpnpCloseSocket(sock);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* #extern "C" */
|
} /* #extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user