diff options
-rw-r--r-- | include/mingw.h | 1 | ||||
-rw-r--r-- | networking/ssl_client.c | 1 | ||||
-rw-r--r-- | win32/net.c | 6 |
3 files changed, 6 insertions, 2 deletions
diff --git a/include/mingw.h b/include/mingw.h index fa8f705b0..e2d6299b9 100644 --- a/include/mingw.h +++ b/include/mingw.h | |||
@@ -509,6 +509,7 @@ void qsort_string_vector_case(char **sv, unsigned count) FAST_FUNC; | |||
509 | */ | 509 | */ |
510 | 510 | ||
511 | const char *get_busybox_exec_path(void); | 511 | const char *get_busybox_exec_path(void); |
512 | void init_winsock(void); | ||
512 | void init_codepage(void); | 513 | void init_codepage(void); |
513 | 514 | ||
514 | int has_bat_suffix(const char *p); | 515 | int has_bat_suffix(const char *p); |
diff --git a/networking/ssl_client.c b/networking/ssl_client.c index cd0ee5722..27575a2bf 100644 --- a/networking/ssl_client.c +++ b/networking/ssl_client.c | |||
@@ -64,6 +64,7 @@ int ssl_client_main(int argc UNUSED_PARAM, char **argv) | |||
64 | else { | 64 | else { |
65 | if (!hstr || sscanf(hstr, "%p", &h) != 1) | 65 | if (!hstr || sscanf(hstr, "%p", &h) != 1) |
66 | bb_error_msg_and_die("invalid handle"); | 66 | bb_error_msg_and_die("invalid handle"); |
67 | init_winsock(); | ||
67 | tls->ifd = tls->ofd = _open_osfhandle((intptr_t)h, _O_RDWR|_O_BINARY); | 68 | tls->ifd = tls->ofd = _open_osfhandle((intptr_t)h, _O_RDWR|_O_BINARY); |
68 | } | 69 | } |
69 | #endif | 70 | #endif |
diff --git a/win32/net.c b/win32/net.c index 880b807b7..33dc837fa 100644 --- a/win32/net.c +++ b/win32/net.c | |||
@@ -10,7 +10,7 @@ int inet_aton(const char *cp, struct in_addr *inp) | |||
10 | return 1; | 10 | return 1; |
11 | } | 11 | } |
12 | 12 | ||
13 | static void init_winsock(void) | 13 | void init_winsock(void) |
14 | { | 14 | { |
15 | WSADATA wsa; | 15 | WSADATA wsa; |
16 | static int initialized = 0; | 16 | static int initialized = 0; |
@@ -134,8 +134,10 @@ int mingw_accept(int sockfd1, struct sockaddr *sa, socklen_t *sz) | |||
134 | #undef getpeername | 134 | #undef getpeername |
135 | int mingw_getpeername(int fd, struct sockaddr *sa, socklen_t *sz) | 135 | int mingw_getpeername(int fd, struct sockaddr *sa, socklen_t *sz) |
136 | { | 136 | { |
137 | SOCKET sock = (SOCKET)_get_osfhandle(fd); | 137 | SOCKET sock; |
138 | 138 | ||
139 | init_winsock(); | ||
140 | sock = (SOCKET)_get_osfhandle(fd); | ||
139 | if (sock == INVALID_SOCKET) { | 141 | if (sock == INVALID_SOCKET) { |
140 | errno = EBADF; | 142 | errno = EBADF; |
141 | return -1; | 143 | return -1; |