/* Copyright (C) 2003 MySQL AB 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 */ #ifndef NDB_TCP_H #define NDB_TCP_H #include <ndb_global.h> #include <ndb_net.h> #if defined NDB_OSE || defined NDB_SOFTOSE /** * Include files needed */ #include "inet.h" #include <netdb.h> #define NDB_NONBLOCK FNDELAY #define NDB_SOCKET_TYPE int #define NDB_INVALID_SOCKET -1 #define _NDB_CLOSE_SOCKET(x) close(x) /** * socklen_t not defined in the header files of OSE */ typedef int socklen_t; #define InetErrno (* inet_errno()) #elif defined NDB_WIN32 /** * Include files needed */ #include <winsock2.h> #include <ws2tcpip.h> #define InetErrno WSAGetLastError() #define EWOULDBLOCK WSAEWOULDBLOCK #define NDB_SOCKET_TYPE SOCKET #define NDB_INVALID_SOCKET INVALID_SOCKET #define _NDB_CLOSE_SOCKET(x) closesocket(x) #else /** * Include files needed */ #include <netdb.h> #define NDB_NONBLOCK O_NONBLOCK #define NDB_SOCKET_TYPE int #define NDB_INVALID_SOCKET -1 #define _NDB_CLOSE_SOCKET(x) ::close(x) #define InetErrno errno #endif #define NDB_SOCKLEN_T SOCKET_SIZE_TYPE #ifdef __cplusplus extern "C" { #endif /** * Convert host name or ip address to in_addr * * Returns 0 on success * -1 on failure * * Implemented as: * gethostbyname * if not success * inet_addr */ int Ndb_getInAddr(struct in_addr * dst, const char *address); #ifdef DBUG_OFF #define NDB_CLOSE_SOCKET(fd) _NDB_CLOSE_SOCKET(fd) #else int NDB_CLOSE_SOCKET(int fd); #endif #ifdef __cplusplus } #endif #endif