1
0
mirror of https://github.com/libssh2/libssh2.git synced 2025-07-29 13:01:14 +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:
Viktor Szakats
2023-05-02 11:25:49 +00:00
parent e99c84f682
commit d70919fb00
25 changed files with 36 additions and 1 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -180,10 +180,12 @@ 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;
} }

View File

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