mirror of
https://github.com/libssh2/libssh2.git
synced 2025-07-28 01:41:49 +03:00
add portable LIBSSH2_SOCKET_CLOSE()
macro
Add `LIBSSH2_SOCKET_CLOSE()` to the public `libssh2.h` header, for user code. It translates to `closesocket()` on Windows and `close()` on other platforms. Use it in example code. It makes them more readable by reducing the number of `_WIN32` guards. Closes #1278
This commit is contained in:
@ -313,20 +313,12 @@ shutdown:
|
|||||||
|
|
||||||
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
|
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(forwardsock, 2);
|
shutdown(forwardsock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(forwardsock);
|
||||||
closesocket(forwardsock);
|
|
||||||
#else
|
|
||||||
close(forwardsock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(listensock != LIBSSH2_INVALID_SOCKET) {
|
if(listensock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(listensock, 2);
|
shutdown(listensock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(listensock);
|
||||||
closesocket(listensock);
|
|
||||||
#else
|
|
||||||
close(listensock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(channel)
|
if(channel)
|
||||||
@ -339,11 +331,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
libssh2_exit();
|
libssh2_exit();
|
||||||
|
@ -182,11 +182,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -285,11 +285,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -211,11 +211,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(local)
|
if(local)
|
||||||
|
@ -272,11 +272,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -294,11 +294,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -343,11 +343,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(tempstorage)
|
if(tempstorage)
|
||||||
|
@ -231,11 +231,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(local)
|
if(local)
|
||||||
|
@ -172,11 +172,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -171,11 +171,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -288,11 +288,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -215,11 +215,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(local)
|
if(local)
|
||||||
|
@ -273,11 +273,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -284,11 +284,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -295,11 +295,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -235,11 +235,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -349,11 +349,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -238,11 +238,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -285,11 +285,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -358,11 +358,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -294,11 +294,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "all done\n");
|
fprintf(stderr, "all done\n");
|
||||||
|
@ -295,11 +295,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
libssh2_exit();
|
libssh2_exit();
|
||||||
|
@ -308,11 +308,7 @@ shutdown:
|
|||||||
|
|
||||||
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
|
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(forwardsock, 2);
|
shutdown(forwardsock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(forwardsock);
|
||||||
closesocket(forwardsock);
|
|
||||||
#else
|
|
||||||
close(forwardsock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(channel)
|
if(channel)
|
||||||
@ -328,11 +324,7 @@ shutdown:
|
|||||||
|
|
||||||
if(sock != LIBSSH2_INVALID_SOCKET) {
|
if(sock != LIBSSH2_INVALID_SOCKET) {
|
||||||
shutdown(sock, 2);
|
shutdown(sock, 2);
|
||||||
#ifdef _WIN32
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
closesocket(sock);
|
|
||||||
#else
|
|
||||||
close(sock);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
libssh2_exit();
|
libssh2_exit();
|
||||||
|
@ -186,7 +186,7 @@ static void x11_callback(LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel,
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
shutdown(sock, SHUT_RDWR);
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -353,7 +353,7 @@ int main(int argc, char *argv[])
|
|||||||
fprintf(stderr, "Failed to authenticate\n");
|
fprintf(stderr, "Failed to authenticate\n");
|
||||||
session_shutdown(session);
|
session_shutdown(session);
|
||||||
shutdown(sock, SHUT_RDWR);
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -363,7 +363,7 @@ int main(int argc, char *argv[])
|
|||||||
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);
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -373,7 +373,7 @@ int main(int argc, char *argv[])
|
|||||||
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);
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,7 +383,7 @@ int main(int argc, char *argv[])
|
|||||||
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);
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -393,7 +393,7 @@ int main(int argc, char *argv[])
|
|||||||
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);
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,7 +402,7 @@ int main(int argc, char *argv[])
|
|||||||
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);
|
shutdown(sock, SHUT_RDWR);
|
||||||
close(sock);
|
LIBSSH2_SOCKET_CLOSE(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -460,7 +460,7 @@ int main(int argc, char *argv[])
|
|||||||
next_node = current_node->next;
|
next_node = current_node->next;
|
||||||
if(rc == -1) {
|
if(rc == -1) {
|
||||||
shutdown(current_node->sock, SHUT_RDWR);
|
shutdown(current_node->sock, SHUT_RDWR);
|
||||||
close(current_node->sock);
|
LIBSSH2_SOCKET_CLOSE(current_node->sock);
|
||||||
remove_node(current_node);
|
remove_node(current_node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,9 +143,11 @@ typedef long long libssh2_int64_t;
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
typedef SOCKET libssh2_socket_t;
|
typedef SOCKET libssh2_socket_t;
|
||||||
#define LIBSSH2_INVALID_SOCKET INVALID_SOCKET
|
#define LIBSSH2_INVALID_SOCKET INVALID_SOCKET
|
||||||
|
#define LIBSSH2_SOCKET_CLOSE(s) closesocket(s)
|
||||||
#else /* !_WIN32 */
|
#else /* !_WIN32 */
|
||||||
typedef int libssh2_socket_t;
|
typedef int libssh2_socket_t;
|
||||||
#define LIBSSH2_INVALID_SOCKET -1
|
#define LIBSSH2_INVALID_SOCKET -1
|
||||||
|
#define LIBSSH2_SOCKET_CLOSE(s) close(s)
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user