examples on Windows: use native SOCKET-type instead of int
And check return values accordingly.
Этот коммит содержится в:
родитель
d85f9a689f
Коммит
8a731d6217
@ -48,7 +48,7 @@ enum {
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int rc, sock = -1, listensock = -1, forwardsock = -1, i, auth = AUTH_NONE;
|
int rc, i, auth = AUTH_NONE;
|
||||||
struct sockaddr_in sin;
|
struct sockaddr_in sin;
|
||||||
socklen_t sinlen;
|
socklen_t sinlen;
|
||||||
const char *fingerprint;
|
const char *fingerprint;
|
||||||
@ -64,6 +64,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
char sockopt;
|
char sockopt;
|
||||||
|
SOCKET sock = INVALID_SOCKET;
|
||||||
|
SOCKET listensock = INVALID_SOCKET, forwardsock = INVALID_SOCKET;
|
||||||
WSADATA wsadata;
|
WSADATA wsadata;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@ -73,7 +75,8 @@ int main(int argc, char *argv[])
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
int sockopt;
|
int sockopt, sock = -1;
|
||||||
|
int listensock = -1, forwardsock = -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (argc > 1)
|
if (argc > 1)
|
||||||
@ -184,6 +187,18 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
listensock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
|
listensock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
|
#ifdef WIN32
|
||||||
|
if (listensock == INVALID_SOCKET) {
|
||||||
|
fprintf(stderr, "failed to open listen socket!\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (listensock == -1) {
|
||||||
|
perror("socket");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
sin.sin_family = AF_INET;
|
sin.sin_family = AF_INET;
|
||||||
sin.sin_port = htons(local_listenport);
|
sin.sin_port = htons(local_listenport);
|
||||||
if (INADDR_NONE == (sin.sin_addr.s_addr = inet_addr(local_listenip))) {
|
if (INADDR_NONE == (sin.sin_addr.s_addr = inet_addr(local_listenip))) {
|
||||||
@ -206,10 +221,17 @@ int main(int argc, char *argv[])
|
|||||||
inet_ntoa(sin.sin_addr), ntohs(sin.sin_port));
|
inet_ntoa(sin.sin_addr), ntohs(sin.sin_port));
|
||||||
|
|
||||||
forwardsock = accept(listensock, (struct sockaddr *)&sin, &sinlen);
|
forwardsock = accept(listensock, (struct sockaddr *)&sin, &sinlen);
|
||||||
if (-1 == forwardsock) {
|
#ifdef WIN32
|
||||||
|
if (forwardsock == INVALID_SOCKET) {
|
||||||
|
fprintf(stderr, "failed to accept forward socket!\n");
|
||||||
|
goto shutdown;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (forwardsock == -1) {
|
||||||
perror("accept");
|
perror("accept");
|
||||||
goto shutdown;
|
goto shutdown;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
shost = inet_ntoa(sin.sin_addr);
|
shost = inet_ntoa(sin.sin_addr);
|
||||||
sport = ntohs(sin.sin_port);
|
sport = ntohs(sin.sin_port);
|
||||||
|
@ -102,7 +102,7 @@ static int netconf_read_until(LIBSSH2_CHANNEL *channel, const char *endtag,
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int rc, sock = -1, i, auth = AUTH_NONE;
|
int rc, i, auth = AUTH_NONE;
|
||||||
struct sockaddr_in sin;
|
struct sockaddr_in sin;
|
||||||
const char *fingerprint;
|
const char *fingerprint;
|
||||||
char *userauthlist;
|
char *userauthlist;
|
||||||
@ -112,6 +112,7 @@ int main(int argc, char *argv[])
|
|||||||
ssize_t len;
|
ssize_t len;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
SOCKET sock = INVALID_SOCKET;
|
||||||
WSADATA wsadata;
|
WSADATA wsadata;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@ -120,6 +121,8 @@ int main(int argc, char *argv[])
|
|||||||
fprintf(stderr, "WSAStartup failed with error: %d\n", err);
|
fprintf(stderr, "WSAStartup failed with error: %d\n", err);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
int sock = -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (argc > 1)
|
if (argc > 1)
|
||||||
|
@ -49,7 +49,7 @@ enum {
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int rc, sock = -1, forwardsock = -1, i, auth = AUTH_NONE;
|
int rc, i, auth = AUTH_NONE;
|
||||||
struct sockaddr_in sin;
|
struct sockaddr_in sin;
|
||||||
socklen_t sinlen = sizeof(sin);
|
socklen_t sinlen = sizeof(sin);
|
||||||
const char *fingerprint;
|
const char *fingerprint;
|
||||||
@ -63,6 +63,7 @@ int main(int argc, char *argv[])
|
|||||||
char buf[16384];
|
char buf[16384];
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
SOCKET sock = INVALID_SOCKET, forwardsock = INVALID_SOCKET;
|
||||||
WSADATA wsadata;
|
WSADATA wsadata;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
@ -71,6 +72,8 @@ int main(int argc, char *argv[])
|
|||||||
fprintf(stderr, "WSAStartup failed with error: %d\n", err);
|
fprintf(stderr, "WSAStartup failed with error: %d\n", err);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
int sock = -1, forwardsock = -1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (argc > 1)
|
if (argc > 1)
|
||||||
@ -208,6 +211,18 @@ int main(int argc, char *argv[])
|
|||||||
"Accepted remote connection. Connecting to local server %s:%d\n",
|
"Accepted remote connection. Connecting to local server %s:%d\n",
|
||||||
local_destip, local_destport);
|
local_destip, local_destport);
|
||||||
forwardsock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
|
forwardsock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
|
#ifdef WIN32
|
||||||
|
if (forwardsock == INVALID_SOCKET) {
|
||||||
|
fprintf(stderr, "failed to open forward socket!\n");
|
||||||
|
goto shutdown;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (forwardsock == -1) {
|
||||||
|
perror("socket");
|
||||||
|
goto shutdown;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
sin.sin_family = AF_INET;
|
sin.sin_family = AF_INET;
|
||||||
sin.sin_port = htons(local_destport);
|
sin.sin_port = htons(local_destport);
|
||||||
if (INADDR_NONE == (sin.sin_addr.s_addr = inet_addr(local_destip))) {
|
if (INADDR_NONE == (sin.sin_addr.s_addr = inet_addr(local_destip))) {
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user