1
0
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:
Viktor Szakats
2023-12-08 02:22:48 +00:00
parent 46333adfb8
commit 28dbf01667
25 changed files with 36 additions and 138 deletions

View File

@ -313,20 +313,12 @@ shutdown:
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
shutdown(forwardsock, 2);
#ifdef _WIN32
closesocket(forwardsock);
#else
close(forwardsock);
#endif
LIBSSH2_SOCKET_CLOSE(forwardsock);
}
if(listensock != LIBSSH2_INVALID_SOCKET) {
shutdown(listensock, 2);
#ifdef _WIN32
closesocket(listensock);
#else
close(listensock);
#endif
LIBSSH2_SOCKET_CLOSE(listensock);
}
if(channel)
@ -339,11 +331,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
libssh2_exit();

View File

@ -182,11 +182,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -285,11 +285,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -211,11 +211,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
if(local)

View File

@ -272,11 +272,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -294,11 +294,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -343,11 +343,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
if(tempstorage)

View File

@ -231,11 +231,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
if(local)

View File

@ -172,11 +172,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -171,11 +171,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -288,11 +288,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -215,11 +215,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
if(local)

View File

@ -273,11 +273,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -284,11 +284,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -295,11 +295,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -235,11 +235,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -349,11 +349,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -238,11 +238,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -285,11 +285,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -358,11 +358,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -294,11 +294,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
fprintf(stderr, "all done\n");

View File

@ -295,11 +295,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
libssh2_exit();

View File

@ -308,11 +308,7 @@ shutdown:
if(forwardsock != LIBSSH2_INVALID_SOCKET) {
shutdown(forwardsock, 2);
#ifdef _WIN32
closesocket(forwardsock);
#else
close(forwardsock);
#endif
LIBSSH2_SOCKET_CLOSE(forwardsock);
}
if(channel)
@ -328,11 +324,7 @@ shutdown:
if(sock != LIBSSH2_INVALID_SOCKET) {
shutdown(sock, 2);
#ifdef _WIN32
closesocket(sock);
#else
close(sock);
#endif
LIBSSH2_SOCKET_CLOSE(sock);
}
libssh2_exit();

View File

@ -186,7 +186,7 @@ static void x11_callback(LIBSSH2_SESSION *session, LIBSSH2_CHANNEL *channel,
}
else {
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");
session_shutdown(session);
shutdown(sock, SHUT_RDWR);
close(sock);
LIBSSH2_SOCKET_CLOSE(sock);
return -1;
}
@ -363,7 +363,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Failed to open a new channel\n");
session_shutdown(session);
shutdown(sock, SHUT_RDWR);
close(sock);
LIBSSH2_SOCKET_CLOSE(sock);
return -1;
}
@ -373,7 +373,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Failed to request a pty\n");
session_shutdown(session);
shutdown(sock, SHUT_RDWR);
close(sock);
LIBSSH2_SOCKET_CLOSE(sock);
return -1;
}
@ -383,7 +383,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Failed to request X11 forwarding\n");
session_shutdown(session);
shutdown(sock, SHUT_RDWR);
close(sock);
LIBSSH2_SOCKET_CLOSE(sock);
return -1;
}
@ -393,7 +393,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Failed to open a shell\n");
session_shutdown(session);
shutdown(sock, SHUT_RDWR);
close(sock);
LIBSSH2_SOCKET_CLOSE(sock);
return -1;
}
@ -402,7 +402,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Failed to entered in raw mode\n");
session_shutdown(session);
shutdown(sock, SHUT_RDWR);
close(sock);
LIBSSH2_SOCKET_CLOSE(sock);
return -1;
}
@ -460,7 +460,7 @@ int main(int argc, char *argv[])
next_node = current_node->next;
if(rc == -1) {
shutdown(current_node->sock, SHUT_RDWR);
close(current_node->sock);
LIBSSH2_SOCKET_CLOSE(current_node->sock);
remove_node(current_node);
}

View File

@ -143,9 +143,11 @@ typedef long long libssh2_int64_t;
#ifdef _WIN32
typedef SOCKET libssh2_socket_t;
#define LIBSSH2_INVALID_SOCKET INVALID_SOCKET
#define LIBSSH2_SOCKET_CLOSE(s) closesocket(s)
#else /* !_WIN32 */
typedef int libssh2_socket_t;
#define LIBSSH2_INVALID_SOCKET -1
#define LIBSSH2_SOCKET_CLOSE(s) close(s)
#endif /* _WIN32 */
/*