mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-12-02 01:17:52 +03:00
socket: Cleanup ssh_socket_close() code.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
11
src/socket.c
11
src/socket.c
@@ -425,17 +425,18 @@ int ssh_socket_unix(ssh_socket s, const char *path) {
|
|||||||
void ssh_socket_close(ssh_socket s){
|
void ssh_socket_close(ssh_socket s){
|
||||||
if (ssh_socket_is_open(s)) {
|
if (ssh_socket_is_open(s)) {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
closesocket(s->fd_in);
|
CLOSE_SOCKET(s->fd_in);
|
||||||
/* fd_in = fd_out under win32 */
|
/* fd_in = fd_out under win32 */
|
||||||
s->last_errno = WSAGetLastError();
|
s->last_errno = WSAGetLastError();
|
||||||
#else
|
#else
|
||||||
close(s->fd_in);
|
if (s->fd_out != s->fd_in && s->fd_out != -1) {
|
||||||
if(s->fd_out != s->fd_in && s->fd_out != -1)
|
CLOSE_SOCKET(s->fd_out);
|
||||||
close(s->fd_out);
|
}
|
||||||
|
CLOSE_SOCKET(s->fd_in);
|
||||||
s->last_errno = errno;
|
s->last_errno = errno;
|
||||||
#endif
|
#endif
|
||||||
s->fd_in = s->fd_out = SSH_INVALID_SOCKET;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(s->poll_in != NULL){
|
if(s->poll_in != NULL){
|
||||||
if(s->poll_out == s->poll_in)
|
if(s->poll_out == s->poll_in)
|
||||||
s->poll_out = NULL;
|
s->poll_out = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user