diff options
author | Nikias Bassen | 2010-05-26 20:30:02 +0200 |
---|---|---|
committer | Nikias Bassen | 2010-05-26 20:30:02 +0200 |
commit | 0833499c76f78da21fc33874a485946189a33dad (patch) | |
tree | 3406bc2729986945020748d176d492c6c4a4628a /libusbmuxd/sock_stuff.c | |
parent | 6cb505257ff848aa7ead80b60b575effc3a915fa (diff) | |
download | usbmuxd-0833499c76f78da21fc33874a485946189a33dad.tar.gz usbmuxd-0833499c76f78da21fc33874a485946189a33dad.tar.bz2 |
libusbmuxd: use winsock API for win32
Diffstat (limited to 'libusbmuxd/sock_stuff.c')
-rw-r--r-- | libusbmuxd/sock_stuff.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libusbmuxd/sock_stuff.c b/libusbmuxd/sock_stuff.c index 33ac3e6..0592f6b 100644 --- a/libusbmuxd/sock_stuff.c +++ b/libusbmuxd/sock_stuff.c @@ -29,11 +29,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #include <errno.h> #include <sys/time.h> #include <sys/stat.h> +#ifdef WIN32 +#include <windows.h> +#include <winsock2.h> +static int wsa_init = 0; +#else #include <sys/socket.h> #include <sys/un.h> #include <netinet/in.h> #include <netdb.h> #include <arpa/inet.h> +#endif #include "sock_stuff.h" #define RECV_TIMEOUT 20000 @@ -143,6 +149,16 @@ int create_socket(uint16_t port) { int sfd = -1; int yes = 1; +#ifdef WIN32 + WSADATA wsa_data; + if (!wsa_init) { + if (WSAStartup(MAKEWORD(2,2), &wsa_data) != ERROR_SUCCESS) { + fprintf(stderr, "WSAStartup failed!\n"); + ExitProcess(-1); + } + wsa_init = 1; + } +#endif struct sockaddr_in saddr; if (0 > (sfd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP))) { @@ -182,6 +198,16 @@ int connect_socket(const char *addr, uint16_t port) int yes = 1; struct hostent *hp; struct sockaddr_in saddr; +#ifdef WIN32 + WSADATA wsa_data; + if (!wsa_init) { + if (WSAStartup(MAKEWORD(2,2), &wsa_data) != ERROR_SUCCESS) { + fprintf(stderr, "WSAStartup failed!\n"); + ExitProcess(-1); + } + wsa_init = 1; + } +#endif if (!addr) { errno = EINVAL; |