aboutsummaryrefslogtreecommitdiff
path: root/client/libacron/acronc/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/libacron/acronc/main.c')
-rw-r--r--client/libacron/acronc/main.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/client/libacron/acronc/main.c b/client/libacron/acronc/main.c
index ef3bb38..21958fd 100644
--- a/client/libacron/acronc/main.c
+++ b/client/libacron/acronc/main.c
@@ -5,7 +5,10 @@
#include "libac.h"
#include <stdio.h>
-#include <unistd.h>
+#ifdef WIN32
+#include <winsock2.h>
+#include <windef.h>
+#endif
static const char *world_name(const enum ac_world world) {
switch (world) {
@@ -120,6 +123,20 @@ static void handle_response(const ac_response_t *response) {
int main(int argc, char **argv) {
int r;
+#ifdef WIN32
+ WORD wVersionRequested;
+ WSADATA wsaData;
+ wVersionRequested = MAKEWORD(2, 2);
+ if ((r = WSAStartup(wVersionRequested, &wsaData))) {
+ fprintf(stderr, "WSAStartup failed with error: %d\n", r);
+ return r;
+ }
+ if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) {
+ fprintf(stderr, "Could not find a usable version of Winsock.dll\n");
+ WSACleanup();
+ return 1;
+ }
+#endif
libac_config_t config = {
#ifdef DEBUG
.out = stderr,
@@ -165,5 +182,8 @@ int main(int argc, char **argv) {
}
ac_disconnect(connection);
ac_free();
+#ifdef WIN32
+ WSACleanup();
+#endif
return r;
} \ No newline at end of file