Loading...
Searching...
No Matches
 
 
 
 
 
   21#ifndef _tds_sysdep_private_h_ 
   22#define _tds_sysdep_private_h_ 
   24#define TDS_ADDITIONAL_SPACE 16 
   27# define TDS_NOSIGNAL MSG_NOSIGNAL 
   29# define TDS_NOSIGNAL 0L 
   45#define READSOCKET(a,b,c)   recv((a), (b), (c), TDS_NOSIGNAL) 
   46#define WRITESOCKET(a,b,c)  send((a), (b), (c), TDS_NOSIGNAL) 
   47#define CLOSESOCKET(a)      closesocket((a)) 
   48#define IOCTLSOCKET(a,b,c)  ioctlsocket((a), (b), (char*)(c)) 
   50#define select select_s 
   52#define strcasecmp stricmp 
   53#define strncasecmp strnicmp 
   55#define getpid() _gethostid() 
   58#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64) 
   59#include <freetds/windows.h> 
   60#define READSOCKET(a,b,c)   recv((a), (char *) (b), (c), TDS_NOSIGNAL) 
   61#define WRITESOCKET(a,b,c)  send((a), (const char *) (b), (c), TDS_NOSIGNAL) 
   62#define CLOSESOCKET(a)      closesocket((a)) 
   63#define IOCTLSOCKET(a,b,c)  ioctlsocket((a), (b), (c)) 
   65int  tds_socket_init(
void);
 
   66#define INITSOCKET()    tds_socket_init() 
   67void tds_socket_done(
void);
 
   68#define DONESOCKET()    tds_socket_done() 
   69#define NETDB_REENTRANT 1    
   71#define TDSSOCK_EINTR WSAEINTR 
   72#define TDSSOCK_EINPROGRESS WSAEWOULDBLOCK 
   73#define TDSSOCK_ETIMEDOUT WSAETIMEDOUT 
   74#define TDSSOCK_WOULDBLOCK(e) ((e)==WSAEWOULDBLOCK) 
   75#define TDSSOCK_ECONNRESET WSAECONNRESET 
   76#define sock_errno WSAGetLastError() 
   77#define set_sock_errno(err) WSASetLastError(err) 
   78#define sock_strerror(n) tds_prwsaerror(n) 
   79#define sock_strerror_free(s) tds_prwsaerror_free(s) 
   84#define strcasecmp stricmp 
   86#define strncasecmp strnicmp 
   87#if defined(HAVE__SNPRINTF) && !defined(HAVE_SNPRINTF) 
   88#define snprintf _snprintf 
   95#if defined(_WIN64) && !defined(WIN64) 
   99#define TDS_SDIR_SEPARATOR "\\" 
  102#if defined(__MSVCRT__) || defined(_MSC_VER) 
  105#define getpid()           GetCurrentProcessId() 
  106#define strdup(s)          _strdup(s) 
  107#define unlink(f)          _unlink(f) 
  108#define putenv(s)          _putenv(s) 
  110#define fileno(f)          _fileno(f) 
  112#define close(f)           _close(f) 
  114#define open(fn,...)       _open(fn,__VA_ARGS__) 
  116#define dup2(o,n)          _dup2(o,n) 
  117#define stricmp(s1,s2)     _stricmp(s1,s2) 
  118#define strnicmp(s1,s2,n)  _strnicmp(s1,s2,n) 
  124#define sock_errno errno 
  127#ifndef set_sock_errno 
  128#define set_sock_errno(err) do { errno = (err); } while(0) 
  132#define sock_strerror(n) strerror(n) 
  133#define sock_strerror_free(s) do {} while(0) 
  137#define TDSSOCK_EINTR EINTR 
  140#ifndef TDSSOCK_EINPROGRESS  
  141#define TDSSOCK_EINPROGRESS EINPROGRESS 
  144#ifndef TDSSOCK_ETIMEDOUT 
  145#define TDSSOCK_ETIMEDOUT ETIMEDOUT 
  148#ifndef TDSSOCK_WOULDBLOCK 
  149# if defined(EWOULDBLOCK) && EAGAIN != EWOULDBLOCK 
  150#  define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN||(e)==EWOULDBLOCK) 
  152#  define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN) 
  156#ifndef TDSSOCK_ECONNRESET 
  157#define TDSSOCK_ECONNRESET ECONNRESET 
  161#define INITSOCKET()    0 
  165#define DONESOCKET()    do { } while(0) 
  170#  define READSOCKET(s,b,l) recv((s), (b), (l), MSG_NOSIGNAL) 
  172#  define READSOCKET(s,b,l) read((s), (b), (l)) 
  178#  define WRITESOCKET(s,b,l)    send((s), (b), (l), MSG_NOSIGNAL) 
  180#  define WRITESOCKET(s,b,l)    write((s), (b), (l)) 
  185#define CLOSESOCKET(s)      close((s)) 
  189#define IOCTLSOCKET(s,b,l)  ioctl((s), (b), (l)) 
  193# define SOCKLEN_T socklen_t 
  196#if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32) 
  197typedef int TDS_SYS_SOCKET;
 
  198#define INVALID_SOCKET -1 
  199#define TDS_IS_SOCKET_INVALID(s) ((s) < 0) 
  201typedef SOCKET TDS_SYS_SOCKET;
 
  202#define TDS_IS_SOCKET_INVALID(s) ((s) == INVALID_SOCKET) 
  205#define tds_accept      accept 
  206#define tds_getpeername getpeername 
  207#define tds_getsockopt  getsockopt 
  208#define tds_getsockname getsockname 
  209#define tds_recvfrom    recvfrom 
  211#if defined(__hpux__) && SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 
  214#  define tds_accept _xpg_accept 
  217#  define tds_accept __accept 
  219# if HAVE__XPG_GETPEERNAME 
  220#  undef tds_getpeername 
  221#  define tds_getpeername _xpg_getpeername 
  222# elif HAVE___GETPEERNAME 
  223#  undef tds_getpeername 
  224#  define tds_getpeername __getpeername 
  226# if HAVE__XPG_GETSOCKOPT 
  227#  undef tds_getsockopt 
  228#  define tds_getsockopt _xpg_getsockopt 
  229# elif HAVE___GETSOCKOPT 
  230#  undef tds_getsockopt 
  231#  define tds_getsockopt __getsockopt 
  233# if HAVE__XPG_GETSOCKNAME 
  234#  undef tds_getsockname 
  235#  define tds_getsockname _xpg_getsockname 
  236# elif HAVE___GETSOCKNAME 
  237#  undef tds_getsockname 
  238#  define tds_getsockname __getsockname 
  240# if HAVE__XPG_RECVFROM 
  242#  define tds_recvfrom _xpg_recvfrom 
  243# elif HAVE___RECVFROM 
  245#  define tds_recvfrom __recvfrom 
  249#ifndef TDS_SDIR_SEPARATOR 
  250#define TDS_SDIR_SEPARATOR "/" 
  253#ifdef HAVE_INTTYPES_H 
  258#define PRId64 TDS_I64_PREFIX "d" 
  261#define PRIu64 TDS_I64_PREFIX "u" 
  264#define PRIx64 TDS_I64_PREFIX "x"