1
0
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:
Andreas Schneider
2015-04-10 10:41:14 +02:00
parent 3f04367fb8
commit 1cb940c44a

View File

@@ -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;