aboutsummaryrefslogtreecommitdiff
path: root/tests/server/util.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2005-05-17 10:22:22 +0000
committerDaniel Stenberg <daniel@haxx.se>2005-05-17 10:22:22 +0000
commit84fd4686e2fa9dfed265cdd7a941bc0df1ce4821 (patch)
treea972d893f0fb0d5b72f6a66f4bdd3f3da210a0cc /tests/server/util.c
parentede9fb4fcc600ae19d38a8b1b8833250e84801b7 (diff)
Moved more generic functions to util.[ch]
Added resolve.c to simply resolve a given host name
Diffstat (limited to 'tests/server/util.c')
-rw-r--r--tests/server/util.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/server/util.c b/tests/server/util.c
index a3894cb44..d88f7ef1e 100644
--- a/tests/server/util.c
+++ b/tests/server/util.c
@@ -96,3 +96,52 @@ void logmsg(const char *msg, ...)
if(logfp)
fclose(logfp);
}
+
+#if defined(WIN32) && !defined(__CYGWIN__)
+/* use instead of perror() on generic windows */
+void win32_perror (const char *msg)
+{
+ char buf[256];
+ DWORD err = WSAGetLastError();
+
+ if (!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, err,
+ LANG_NEUTRAL, buf, sizeof(buf), NULL))
+ snprintf(buf, sizeof(buf), "Unknown error %lu (%#lx)", err, err);
+ if (msg)
+ fprintf(stderr, "%s: ", msg);
+ fprintf(stderr, "%s\n", buf);
+}
+#endif
+
+#if defined(WIN32) && !defined(__CYGWIN__)
+void win32_init(void)
+{
+ WORD wVersionRequested;
+ WSADATA wsaData;
+ int err;
+ wVersionRequested = MAKEWORD(2, 0);
+
+ err = WSAStartup(wVersionRequested, &wsaData);
+
+ if (err != 0) {
+ perror("Winsock init failed");
+ logmsg("Error initialising winsock -- aborting\n");
+ exit(1);
+ }
+
+ if ( LOBYTE( wsaData.wVersion ) != 2 ||
+ HIBYTE( wsaData.wVersion ) != 0 ) {
+
+ WSACleanup();
+ perror("Winsock init failed");
+ logmsg("No suitable winsock.dll found -- aborting\n");
+ exit(1);
+ }
+}
+
+void win32_cleanup(void)
+{
+ WSACleanup();
+}
+#endif
+