diff --git a/src/lib/player/accept.c b/src/lib/player/accept.c index f8e72f7d..9096a4e1 100644 --- a/src/lib/player/accept.c +++ b/src/lib/player/accept.c @@ -38,11 +38,9 @@ #include #include #include -#if !defined(_WIN32) #include #include #include -#endif #include #include "empio.h" diff --git a/src/lib/w32/arpa/inet.h b/src/lib/w32/arpa/inet.h new file mode 100644 index 00000000..393d8262 --- /dev/null +++ b/src/lib/w32/arpa/inet.h @@ -0,0 +1,38 @@ +/* + * Empire - A multi-player, client/server Internet based war game. + * Copyright (C) 1986-2007, Dave Pare, Jeff Bailey, Thomas Ruschak, + * Ken Stevens, Steve McClure + * + * This program 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 2 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * --- + * + * 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. + * + * --- + * + * arpa/inet.h: POSIX networking for WIN32 + * + * Known contributors to this file: + * Ron Koenderink, 2007 + */ + +#ifndef ARPA_INET_H +#define ARPA_INET_H + +#include +#endif /* ARPA_INET_H */ diff --git a/src/lib/w32/netdb.h b/src/lib/w32/netdb.h new file mode 100644 index 00000000..bf1f28ba --- /dev/null +++ b/src/lib/w32/netdb.h @@ -0,0 +1,39 @@ +/* + * Empire - A multi-player, client/server Internet based war game. + * Copyright (C) 1986-2007, Dave Pare, Jeff Bailey, Thomas Ruschak, + * Ken Stevens, Steve McClure + * + * This program 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 2 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * --- + * + * 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. + * + * --- + * + * netdb.h: POSIX networking for WIN32 + * + * Known contributors to this file: + * Ron Koenderink, 2007 + */ + +#ifndef NETDB_H +#define NETDB_H + +#include +#include +#endif /* NETDB_H */ diff --git a/src/lib/w32/netinet/in.h b/src/lib/w32/netinet/in.h new file mode 100644 index 00000000..1899ec3a --- /dev/null +++ b/src/lib/w32/netinet/in.h @@ -0,0 +1,38 @@ +/* + * Empire - A multi-player, client/server Internet based war game. + * Copyright (C) 1986-2007, Dave Pare, Jeff Bailey, Thomas Ruschak, + * Ken Stevens, Steve McClure + * + * This program 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 2 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * --- + * + * 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. + * + * --- + * + * netinet/in.h: POSIX networking for WIN32 + * + * Known contributors to this file: + * Ron Koenderink, 2007 + */ + +#ifndef NETINET_IN_H +#define NETINET_IN_H + +#include +#endif /* NETINET_IN_H */ diff --git a/src/lib/w32/posixio.c b/src/lib/w32/posixio.c index 3cd885c5..5b7708a1 100644 --- a/src/lib/w32/posixio.c +++ b/src/lib/w32/posixio.c @@ -321,6 +321,34 @@ posix_socket(int domain, int type, int protocol) return new_fd; } +const char * +inet_ntop(int af, const void *source, char *dest, socklen_t len) +{ + if (af == AF_INET) + { + struct sockaddr_in in; + memset(&in, 0, sizeof(in)); + in.sin_family = AF_INET; + memcpy(&in.sin_addr, source, sizeof(struct in_addr)); + getnameinfo((struct sockaddr *)&in, + sizeof(struct sockaddr_in), dest, len, + NULL, 0, NI_NUMERICHOST); + return dest; + } + else if (af == AF_INET6) + { + struct sockaddr_in6 in; + memset(&in, 0, sizeof(in)); + in.sin6_family = AF_INET6; + memcpy(&in.sin6_addr, source, sizeof(struct in_addr6)); + getnameinfo((struct sockaddr *)&in, + sizeof(struct sockaddr_in6), dest, len, + NULL, 0, NI_NUMERICHOST); + return dest; + } + return NULL; +} + #define FILE_FUNCTION(type, expr) \ int handle; \ \ diff --git a/src/lib/w32/unistd.h b/src/lib/w32/unistd.h index 3da8d755..2a407c9a 100644 --- a/src/lib/w32/unistd.h +++ b/src/lib/w32/unistd.h @@ -40,6 +40,8 @@ #include #include "sys/socket.h" #include +#include + #include "w32misc.h" /* @@ -138,6 +140,8 @@ extern int posix_setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen); extern int posix_shutdown(int fd, int how); extern int posix_socket(int domain, int type, int protocol); +extern const char *inet_ntop(int af, const void *src, char *dst, + socklen_t cnt); extern int posix_close(int fd); extern int posix_fstat(int fd, struct stat *buffer);