network_core.h
branchcustombridgeheads
changeset 5642 bfa6074e2833
parent 5641 d4d00a16ef26
child 5643 3778051e8095
--- a/network_core.h	Tue Jan 02 18:40:37 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/* $Id$ */
-
-#ifndef NETWORK_CORE_H
-#define NETWORK_CORE_H
-
-// Network stuff has many things that needs to be included
-//  by default. All those things are in this file.
-
-// =============================
-// Include standard stuff per OS
-
-#ifdef ENABLE_NETWORK
-
-#if defined(__APPLE__) && (MAC_OS_X_VERSION_MAX_ALLOWED == MAC_OS_X_VERSION_10_2)
-	// OSX 10.2 don't have socklen_t defined, so we will define it here
-	typedef int socklen_t;
-#endif
-
-// Windows stuff
-#if defined(WIN32) || defined(WIN64)
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#include <windows.h>
-
-#if !(defined(__MINGW32__) || defined(__CYGWIN__))
-	// Windows has some different names for some types..
-	typedef SSIZE_T ssize_t;
-	typedef int socklen_t;
-#endif
-
-#define GET_LAST_ERROR() WSAGetLastError()
-#define EWOULDBLOCK WSAEWOULDBLOCK
-// Windows has some different names for some types..
-typedef unsigned long in_addr_t;
-#endif // WIN32
-
-// UNIX stuff
-#if defined(UNIX)
-#	define SOCKET int
-#	define INVALID_SOCKET -1
-#	if !defined(__MORPHOS__) && !defined(__AMIGA__)
-#		define ioctlsocket ioctl
-#	if !defined(BEOS_NET_SERVER)
-#		define closesocket close
-#	endif
-#		define GET_LAST_ERROR() (errno)
-#	endif
-// Need this for FIONREAD on solaris
-#	define BSD_COMP
-
-// Includes needed for UNIX-like systems
-#	include <unistd.h>
-#	include <sys/ioctl.h>
-#	if defined(__BEOS__) && defined(BEOS_NET_SERVER)
-#		include <be/net/socket.h>
-#		include <be/kernel/OS.h> // snooze()
-#		include <be/net/netdb.h>
-		typedef unsigned long in_addr_t;
-#		define INADDR_NONE INADDR_BROADCAST
-#	else
-#		include <sys/socket.h>
-#		include <netinet/in.h>
-#		include <netinet/tcp.h>
-#		include <arpa/inet.h>
-#		include <net/if.h>
-// According to glibc/NEWS, <ifaddrs.h> appeared in glibc-2.3.
-#		if !defined(__sgi__) && !defined(SUNOS) && !defined(__MORPHOS__) && !defined(__BEOS__) && !defined(__INNOTEK_LIBC__) \
-		   && !(defined(__GLIBC__) && (__GLIBC__ <= 2) && (__GLIBC_MINOR__ <= 2)) && !defined(__dietlibc__)
-// If for any reason ifaddrs.h does not exist on your system, comment out
-//   the following two lines and an alternative way will be used to fetch
-//   the list of IPs from the system.
-#			include <ifaddrs.h>
-#			define HAVE_GETIFADDRS
-#		endif
-#		if defined(SUNOS) || defined(__MORPHOS__) || defined(__BEOS__)
-#			define INADDR_NONE 0xffffffff
-#		endif
-#		if defined(__BEOS__) && !defined(BEOS_NET_SERVER)
-			// needed on Zeta
-#			include <sys/sockio.h>
-#		endif
-#	endif // BEOS_NET_SERVER
-
-#	if !defined(__BEOS__) && defined(__GLIBC__) && (__GLIBC__ <= 2) && (__GLIBC_MINOR__ <= 1)
-		typedef uint32_t in_addr_t;
-#	endif
-
-#	include <errno.h>
-#	include <sys/time.h>
-#	include <netdb.h>
-#endif // UNIX
-
-#ifdef __BEOS__
-	typedef int socklen_t;
-#endif
-
-// OS/2 stuff
-#if defined(__OS2__)
-#	define SOCKET int
-#	define INVALID_SOCKET -1
-#	define ioctlsocket ioctl
-#	define closesocket close
-#	define GET_LAST_ERROR() (sock_errno())
-
-// Includes needed for OS/2 systems
-#	include <types.h>
-#	include <unistd.h>
-#	include <sys/ioctl.h>
-#	include <sys/socket.h>
-#	include <netinet/in.h>
-#	include <netinet/tcp.h>
-#	include <arpa/inet.h>
-#	include <net/if.h>
-#	include <errno.h>
-#	include <sys/time.h>
-#	include <netdb.h>
-#	include <nerrno.h>
-#	define INADDR_NONE 0xffffffff
-
-typedef int socklen_t;
-#if !defined(__INNOTEK_LIBC__)
-typedef unsigned long in_addr_t;
-#endif /* __INNOTEK_LIBC__ */
-#endif // OS/2
-
-// MorphOS and Amiga stuff
-#if defined(__MORPHOS__) || defined(__AMIGA__)
-#	include <exec/types.h>
-#	include <proto/exec.h>		// required for Open/CloseLibrary()
-#	if defined(__MORPHOS__)
-#		include <sys/filio.h> 	// FIO* defines
-#		include <sys/sockio.h>  // SIO* defines
-#		include <netinet/in.h>
-#	else // __AMIGA__
-#		include	<proto/socket.h>
-#	endif
-
-// Make the names compatible
-#	define closesocket(s) CloseSocket(s)
-#	define GET_LAST_ERROR() Errno()
-#	define ioctlsocket(s,request,status) IoctlSocket((LONG)s,(ULONG)request,(char*)status)
-#	define ioctl ioctlsocket
-
-	typedef unsigned int in_addr_t;
-	typedef long         socklen_t;
-	extern struct Library *SocketBase;
-
-#	ifdef __AMIGA__
-	// for usleep() implementation
-	extern struct Device      *TimerBase;
-	extern struct MsgPort     *TimerPort;
-	extern struct timerequest *TimerRequest;
-#	endif
-#endif // __MORPHOS__ || __AMIGA__
-
-static inline bool SetNonBlocking(int d)
-{
-	#ifdef WIN32
-	u_long nonblocking = 1;
-	#else
-	int nonblocking = 1;
-	#endif
-	#if defined(__BEOS__) && defined(BEOS_NET_SERVER)
-	return setsockopt(d, SOL_SOCKET, SO_NONBLOCK, &nonblocking, sizeof(nonblocking)) == 0;
-	#else
-	return ioctlsocket(d, FIONBIO, &nonblocking) == 0;
-	#endif
-}
-
-static inline bool SetNoDelay(int d)
-{
-	// XXX should this be done at all?
-	#if !defined(BEOS_NET_SERVER) // not implemented on BeOS net_server
-	int b = 1;
-	// The (const char*) cast is needed for windows
-	return setsockopt(d, IPPROTO_TCP, TCP_NODELAY, (const char*)&b, sizeof(b)) == 0;
-	#else
-	return true;
-	#endif
-}
-
-#endif /* ENABLE_NETWORK */
-
-#endif /* NETWORK_CORE_H */