mirror of
https://github.com/libssh2/libssh2.git
synced 2025-10-29 00:54:50 +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