1
1

examples on Windows: use native SOCKET-type instead of int

And check return values accordingly.
Этот коммит содержится в:
Marc Hoersken 2014-12-22 17:03:42 +01:00
родитель d85f9a689f
Коммит 8a731d6217
3 изменённых файлов: 45 добавлений и 5 удалений

Просмотреть файл

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