]> git.pond.sub.org Git - empserver/commitdiff
Fix Windows build: gettimeofday() and SHUT_WR missing
authorRon Koenderink <rkoenderink@yahoo.ca>
Fri, 11 May 2012 02:59:50 +0000 (20:59 -0600)
committerMarkus Armbruster <armbru@pond.sub.org>
Tue, 22 May 2012 18:38:10 +0000 (20:38 +0200)
Commit 904822e3 introduced use of SHUT_WR, which Windows calls
SD_SEND.  Add the obvious work-around.

Commit 49ae6a7b introduced use of gettimeofday(), which the Microsoft
CRT lacks.  Add a replacement based on _ftime_s().

src/lib/w32/gettimeofday.c [new file with mode: 0644]
src/lib/w32/sys/socket.h
src/lib/w32/sys/time.h

diff --git a/src/lib/w32/gettimeofday.c b/src/lib/w32/gettimeofday.c
new file mode 100644 (file)
index 0000000..b051db6
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ *  Empire - A multi-player, client/server Internet based war game.
+ *  Copyright (C) 1986-2011, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *                Ken Stevens, Steve McClure, Markus Armbruster
+ *
+ *  Empire is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  ---
+ *
+ *  See files README, COPYING and CREDITS in the root of the source
+ *  tree for related information and legal notices.  It is expected
+ *  that future projects/authors will amend these files as needed.
+ *
+ *  ---
+ *
+ *  gettimeofday.c: WIN32 equivalent for UNIX gettimeofday()
+ *
+ *  Known contributors to this file:
+ *     Ron Koenderink, 2012
+ *     Markus Armbruster, 2012
+ */
+
+#ifdef _MSC_VER
+
+#include <sys/types.h>
+#include <sys/timeb.h>
+#include <sys/time.h>
+
+int
+gettimeofday (struct timeval *tv, void *tz)
+{
+  struct _timeb timebuf;
+  _ftime_s(&timebuf);
+  tv->tv_sec = timebuf.time;
+  tv->tv_usec = timebuf.millitm * 1000;
+
+  return 0;
+}
+
+#endif /* _MSC_VER */
index 25d38fead5bb313a0b5015e9b79b66a6f696f67c..7161dda89a40b3519125420dee11c09f44b36e11 100644 (file)
@@ -67,4 +67,8 @@ extern SOCKET w32_fd2socket(int fd);
 extern void w32_set_winsock_errno(void);
 extern int w32_socket_init(void);
 
+#ifndef SHUT_WR
+#define SHUT_WR SD_SEND
+#endif
+
 #endif /* SYS_SOCKET_H */
index b66f92e84fcdceebd13019b936d11e002c70f300..08dced68ee875fc8f59c6ee603ea8b9d77948794 100644 (file)
@@ -36,4 +36,6 @@
 /* include winsock2.h thru sys/socket.h to get struct timeval */
 #include "sys/socket.h"
 
+extern int gettimeofday(struct timeval *tv, void *tz);
+
 #endif /* SYS_TIME_H */