mirror of
https://github.com/libssh2/libssh2.git
synced 2025-07-28 01:41:49 +03:00
example, test_ssh2: shutdown socket before close
Syncing them with `tests/session_fixture.c`. Cherry-picked from #1017
This commit is contained in:
@ -305,6 +305,7 @@ int main(int argc, char *argv[])
|
|||||||
shutdown:
|
shutdown:
|
||||||
|
|
||||||
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
|
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(forwardsock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(forwardsock);
|
closesocket(forwardsock);
|
||||||
#else
|
#else
|
||||||
@ -313,6 +314,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(listensock != LIBSSH2_INVALID_SOCKET) {
|
if(listensock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(listensock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(listensock);
|
closesocket(listensock);
|
||||||
#else
|
#else
|
||||||
@ -329,6 +331,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -178,6 +178,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -281,6 +281,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -207,6 +207,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -267,6 +267,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -290,6 +290,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -338,6 +338,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -227,6 +227,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -168,6 +168,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -167,6 +167,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -284,6 +284,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -211,6 +211,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -269,6 +269,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -280,6 +280,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -291,6 +291,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -231,6 +231,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -339,6 +339,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -234,6 +234,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -282,6 +282,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -353,6 +353,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -291,6 +291,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -289,6 +289,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -300,6 +300,7 @@ int main(int argc, char *argv[])
|
|||||||
shutdown:
|
shutdown:
|
||||||
|
|
||||||
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
|
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(forwardsock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(forwardsock);
|
closesocket(forwardsock);
|
||||||
#else
|
#else
|
||||||
@ -319,6 +320,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
@ -180,8 +180,10 @@ static void x11_callback(LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel,
|
|||||||
chan_iter->next = new;
|
chan_iter->next = new;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
close(sock);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -345,6 +347,7 @@ int main(int argc, char *argv[])
|
|||||||
if(rc) {
|
if(rc) {
|
||||||
fprintf(stderr, "Failed to authenticate\n");
|
fprintf(stderr, "Failed to authenticate\n");
|
||||||
session_shutdown(session);
|
session_shutdown(session);
|
||||||
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
close(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -354,6 +357,7 @@ int main(int argc, char *argv[])
|
|||||||
if(!channel) {
|
if(!channel) {
|
||||||
fprintf(stderr, "Failed to open a new channel\n");
|
fprintf(stderr, "Failed to open a new channel\n");
|
||||||
session_shutdown(session);
|
session_shutdown(session);
|
||||||
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
close(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -363,6 +367,7 @@ int main(int argc, char *argv[])
|
|||||||
if(rc) {
|
if(rc) {
|
||||||
fprintf(stderr, "Failed to request a pty\n");
|
fprintf(stderr, "Failed to request a pty\n");
|
||||||
session_shutdown(session);
|
session_shutdown(session);
|
||||||
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
close(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -372,6 +377,7 @@ int main(int argc, char *argv[])
|
|||||||
if(rc) {
|
if(rc) {
|
||||||
fprintf(stderr, "Failed to request X11 forwarding\n");
|
fprintf(stderr, "Failed to request X11 forwarding\n");
|
||||||
session_shutdown(session);
|
session_shutdown(session);
|
||||||
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
close(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -381,6 +387,7 @@ int main(int argc, char *argv[])
|
|||||||
if(rc) {
|
if(rc) {
|
||||||
fprintf(stderr, "Failed to open a shell\n");
|
fprintf(stderr, "Failed to open a shell\n");
|
||||||
session_shutdown(session);
|
session_shutdown(session);
|
||||||
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
close(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -389,6 +396,7 @@ int main(int argc, char *argv[])
|
|||||||
if(rc) {
|
if(rc) {
|
||||||
fprintf(stderr, "Failed to entered in raw mode\n");
|
fprintf(stderr, "Failed to entered in raw mode\n");
|
||||||
session_shutdown(session);
|
session_shutdown(session);
|
||||||
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
close(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -228,6 +228,7 @@ shutdown:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
|
shutdown(sock, 2 /* SHUT_RDWR */);
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
closesocket(sock);
|
closesocket(sock);
|
||||||
#else
|
#else
|
||||||
|
Reference in New Issue
Block a user