/* ** (c) COPYRIGHT MIT 1995. ** Please first read the full copyright statement in the file COPYRIGH. */System-system differences for TCP include files and macros. This file includes for each system the files necessary for network and file I/O.
This module is a part of the W3C Reference Library.
#ifndef TCP_H #define TCP_H
#define SELECT /* Can handle >1 channel */ #define GOT_SYSTEM /* Can call shell with string */ #define GOT_PASSWD /* Can we use getpass() command */ #define TTY_IS_SELECTABLE /* TTY can be passed to select() call */If you want to use reentrant functions, for example
gmtime_r
then enable this flag
#if 0 #define HT_REENTRANT #endif
http://err.ethz.ch/members/neeri/macintosh/gusiman/GUSI.html
Compiles on PPC. Should compile on 68K.
August 31, 1995 by Steven T. Roussey <sroussey@eng.uci.edu> (STR)
#ifdef __MWERKS__ #include <gusi.h> #include <dirent.h> #include <errno.h> #include <sys/errno.h> #include <sioux.h> #define INCLUDES_DONE #define TCP_INCLUDES_DONE #define GUSI /* Identifies changes made for GUSI */ #define NO_GETDOMAINNAME /* STR */ #define NO_PASSWD /* STR */ #define NO_GETWD #define HAS_GETCWD #define USE_DIRENT #define NO_GROUPS #define GOT_READ_DIR #define NO_TIMEZONE /* STR */ #define NO_GMTOFF #define HAVE_STRERROR #define STRUCT_DIRENT struct dirent #define d_ino d_fileno /* backward compatibility */ #define SLEEP(n) GUSIDefaultSpin( SP_SLEEP, n/60) #define MKDIR(a,b) mkdir(a) #endif
This entry was created by Aleksandar Totic (atotic@ncsa.uiuc.edu) this file is compatible with sockets package released by NCSA. One major conflict is that this library redefines write/read/etc as macros. In some of HTML code these macros get executed when they should not be. Such files should define NO_SOCKET_DEFS on top. This is a temporary hack.
#ifdef applec /* MPW */ #undef GOT_SYSTEM #define DEBUG /* Can't put it on the CC command line */ #define NO_UNIX_IO /* getuid() missing */ #define NO_GETPID /* getpid() does not exist */ #define NO_GETWD /* getwd() does not exist */ #define NETCLOSE s_close /* Routine to close a TCP-IP socket */ #define NETREAD s_read /* Routine to read from a TCP-IP socket */ #define NETWRITE s_write /* Routine to write to a TCP-IP socket */ #define _ANSI_SOURCE #define GUI #define LINEFEED 10 #define ANON_FTP_HOSTNAME #ifndef NO_SOCKET_DEFS #include <MacSockDefs.h> #endif /* NO_SOCKET_DEFS */ #include <socket.ext.h> #include <string.h> #endif /* applec MPW */
#ifdef _AIX #define AIX #endif #ifdef AIX #define NO_ALTZONE #define RLOGIN_USER #define unix #endif /* AIX 3.2 ** ------- */ #ifdef _IBMR2 #define USE_DIRENT /* sys V style directory open */ #endif
#ifdef mvs #define MVS #endif #ifdef MVS #define VM #endif #ifdef NEWLIB #pragma linkage(newlib,OS) /* Enables recursive NEWLIB */ #endif /* VM doesn't have a built-in predefined token, so we cheat: */ #ifndef VM #include <string.h> /* For bzero etc - not VM */ #endif /* Note: All include file names must have 8 chars max (+".h") ** ** Under VM, compile with "(DEF=VM,SHORT_NAMES,DEBUG)" ** ** Under MVS, compile with "NOMAR DEF(MVS)" to get rid of 72 char margin ** System include files TCPIP and COMMMAC neeed line number removal(!) */ #ifdef VM /* or MVS -- see above. */ #define GOT_PIPE /* Of sorts */ #define NOT_ASCII /* char type is not ASCII */ #define NO_UNIX_IO /* Unix I/O routines are not supported */ #define NO_GETPID /* getpid() does not exist */ #define NO_GETWD /* getwd() does not exist */ #ifndef SHORT_NAMES #define SHORT_NAMES /* 8 character uniqueness for globals */ #endif #include <manifest.h> #include <bsdtypes.h> #include <stdefs.h> #include <socket.h> #include <in.h> #include <inet.h> #include <netdb.h> #include <errno.h> /* independent */ extern char asciitoebcdic[], ebcdictoascii[]; #define TOASCII(c) (c=='\n' ? 10 : ebcdictoascii[c]) #define FROMASCII(c) (c== 10 ? '\n' : asciitoebcdic[c]) #include <bsdtime.h> #include <time.h> #include <string.h> #define INCLUDES_DONE #define TCP_INCLUDES_DONE #define SIMPLE_TELNET #endif
#ifdef PCNFS #include <sys/types.h> #include <string.h> #include <errno.h> /* independent */ #include <sys/time.h> /* independent */ #include <sys/stat.h> #include <fcntl.h> /* In place of sys/param and sys/file */ #define INCLUDES_DONE #define FD_SET(fd,pmask) (*(unsigned*)(pmask)) |= (1<<(fd)) #define FD_CLR(fd,pmask) (*(unsigned*)(pmask)) &= ~(1<<(fd)) #define FD_ZERO(pmask) (*(unsigned*)(pmask))=0 #define FD_ISSET(fd,pmask) (*(unsigned*)(pmask) & (1<<(fd))) #define NO_GROUPS #endif /* PCNFS */
#if defined(_WINDOWS) || defined(_CONSOLE) #define WWW_MSWINDOWS #endif #if defined(_WINDOWS) && !defined (_CONSOLE) #define WWW_WIN_WINDOW #endif #if defined(_CONSOLE) #define WWW_WIN_CONSOLE #endif #ifdef WWW_MSWINDOWS #include <windows.h> #include <fcntl.h> #include <sys\types.h> #include <sys\stat.h> #define NETREAD(s,b,l) recv((s),(b),(l),0) #define NETWRITE(s,b,l) send((s),(b),(l),0) #define NETCLOSE(s) closesocket(s) #define IOCTL(s,c,a) ioctlsocket(s,c, (long *) a) #define MKDIR(a,b) mkdir((a)) #define REMOVE(a) remove((a)) #define DEFAULT_SUFFIXES "." #ifdef TTY_IS_SELECTABLE #undef TTY_IS_SELECTABLE #endif #include <io.h> #include <string.h> #include <process.h> #include <time.h> #include <direct.h> #include <stdio.h> #include <stdlib.h> #include <winsock.h> #ifndef _CONSOLE #define NO_STDIO #endif #define NO_PASSWD #define NO_ALTZONE #define NO_GETWD #define NO_FCNTL #define HAS_GETCWD #define NO_GETPASSWD #define NO_GETDOMAINNAME #define NO_RESOLV_CONF #define BOOLEAN_DEFINED #define INCLUDES_DONE #define TCP_INCLUDES_DONE #define SOCKET SOCKET /* WinSocks socket descriptor */ #define INVSOC INVALID_SOCKET /* WinSocks invalid socket */ #define DESIRED_WINSOCK_VERSION 0x0101 /* we'd like winsock ver 1.1... */ #define MINIMUM_WINSOCK_VERSION 0x0101 /* ...but we'll take ver 1.1 :) */
#define NO_UNIX_IO typedef unsigned long mode_t; #define _IFMT 0170000 /* type of file */ #define _IFDIR 0040000 /* directory */ #define _IFCHR 0020000 /* character special */ #define _IFBLK 0060000 /* block special */ #define _IFREG 0100000 /* regular */ #define _IFLNK 0120000 /* symbolic link */ #define _IFSOCK 0140000 /* socket */ #define _IFIFO 0010000 /* fifo */ #define S_ISUID 0004000 /* set user id on execution */ #define S_ISGID 0002000 /* set group id on execution */ #define S_ISVTX 0001000 /* save swapped text even after use */ #ifdef S_IREAD #undef S_IREAD #define S_IREAD 0000400 /* read permission, owner */ #endif #ifdef S_IWRITE #undef S_IWRITE #define S_IWRITE 0000200 /* write permission, owner */ #endif #ifdef S_IEXEC #undef S_IEXEC #define S_IEXEC 0000100 /* execute/search permission, owner */ #endif #define S_ENFMT 0002000 /* enforcement-mode locking */ #ifdef S_IFMT #undef S_IFMT #define S_IFMT _IFMT #endif #ifdef S_IDIR #undef S_IDIR #define S_IFDIR _IFDIR #endif #ifdef S_IFCHR #undef S_IFCHR #define S_IFCHR _IFCHR #endif #ifdef S_IBLK #undef S_IBLK #define S_IFBLK _IFBLK #endif #ifdef S_IREG #undef S_IREG #define S_IFREG _IFREG #endif #define S_IFLNK _IFLNK #ifdef S_IFIFO #undef S_IFIFO #define S_IFIFO _IFIFO #endif #define S_IRWXU 0000700 /* rwx, owner */ #define S_IRUSR 0000400 /* read permission, owner */ #define S_IWUSR 0000200 /* write permission, owner */ #define S_IXUSR 0000100 /* execute/search permission, owner */ #define S_IRWXG 0000070 /* rwx, group */ #define S_IRGRP 0000040 /* read permission, group */ #define S_IWGRP 0000020 /* write permission, grougroup */ #define S_IXGRP 0000010 /* execute/search permission, group */ #define S_IRWXO 0000007 /* rwx, other */ #define S_IROTH 0000004 /* read permission, other */ #define S_IWOTH 0000002 /* write permission, other */ #define S_IXOTH 0000001 /* execute/search permission, other */ #define S_ISREG(m) (((m)&_IFMT) == _IFREG)
#define socerrno WSAGetLastError() #define ERRNO_DONEReturn code for socket functions. We can't use -1 as return value
#define EWOULDBLOCK WSAEWOULDBLOCK #define EINPROGRESS WSAEINPROGRESS #define ECONNREFUSED WSAECONNREFUSED #define ETIMEDOUT WSAETIMEDOUT #define ENETUNREACH WSAENETUNREACH #define EHOSTUNREACH WSAEHOSTUNREACH #define EHOSTDOWN WSAEHOSTDOWN #define EISCONN WSAEISCONN /* Some compilers do only define WIN32 and NOT _WINDOWS */ #define NO_GROUPS #ifdef _WIN32 #define MKDIR(a,b) mkdir((a)) /* CLB NT has mkdir, but only one arg */ #define SLEEP(n) Sleep((n)*1000) #else #define MKDIR(a,b) _mkdir((a)) /* CLB NT has mkdir, but only one arg */ #endif /* WIN32 */ #endif /* WWW_MSWINDOWS */
#ifdef VMS #include "HTVMSUtils.h" #define CACHE_FILE_PREFIX "SYS$LOGIN:Z_" #define DEFAULT_SUFFIXES "._" #ifdef WIN_TCP #define NETREAD(s,b,l) ((s)>10 ? netread((s),(b),(l)) : read((s),(b),(l))) #define NETWRITE(s,b,l) ((s)>10 ? netwrite((s),(b),(l)) : write((s),(b),(l))) #define NETCLOSE(s) ((s)>10 ? netclose(s) : close(s)) #endif /* WIN_TCP */ #ifdef MULTINET #undef NETCLOSE #undef NETREAD #undef NETWRITE #define NETREAD(s,b,l) ((s)>10 ? socket_read((s),(b),(l)) : read((s),(b),(l))) #define NETWRITE(s,b,l) ((s)>10 ? socket_write((s),(b),(l)) : \ write((s),(b),(l))) #define NETCLOSE(s) ((s)>10 ? socket_close(s) : close(s)) #define IOCTL(s,c,a) socket_ioctl(s,c,a); #endif /* MULTINET */ #ifdef DECNET #define DNP_OBJ 80 /* This one doesn't look busy, but we must check */ /* That one was for decnet */ #undef SELECT /* not supported */ #define NETREAD(s,b,l) ((s)>10 ? recv((s),(b),(l),0) : read((s),(b),(l))) #define NETWRITE(s,b,l) ((s)>10 ? send((s),(b),(l),0) : write((s),(b),(l))) #define NETCLOSE(s) ((s)>10 ? socket_close(s) : close(s)) #define NO_GETHOSTNAME /* Decnet doesn't have a name server */ #endif /* Decnet */ #define NO_RESOLV_CONF #define NO_GETDOMAINNAME /* Certainly this works for UCX and Multinet; not tried for Wollongong */ #ifdef MULTINET #include <time.h> #ifdef __TIME_T #define __TYPES #define __TYPES_LOADED #endif /* __TIME_T */ #include <multinet_root:[multinet.include.sys]types.h> #include <multinet_root:[multinet.include]errno.h> #ifdef __TYPES #define __TIME_T #endif /* __TYPE */ #ifdef __TIME_LOADED #define __TIME #endif /* __TIME_LOADED */ #include <multinet_root:[multinet.include.sys]time.h> #else /* not MULTINET */ #include <types.h> #include <errno.h> #include <time.h> #endif /* not MULTINET */ #include string #ifndef STDIO_H #include <stdio> #define STDIO_H #endif #include file #ifndef DECNET /* Why is it used at all ? Types conflict with "types.h> */ #include unixio #endif #define INCLUDES_DONE #ifdef MULTINET /* Include from standard Multinet directories */ #include <multinet_root:[multinet.include.sys]socket.h> #ifdef __TIME_LOADED /* defined by sys$library:time.h */ #define __TIME /* to avoid double definitions in next file */ #endif #include <multinet_root:[multinet.include.netinet]in.h> #include <multinet_root:[multinet.include.arpa]inet.h> #include <multinet_root:[multinet.include]netdb.h> #include <multinet_root:[multinet.include.sys]ioctl.h> #else /* not multinet */ #ifdef DECNET #include <types.h> /* for socket.h */ #include <socket.h> #include <dn> #include <dnetdb> #else /* UCX or WIN */ #ifdef CADDR_T #define __CADDR_T #endif /* problem with xlib.h inclusion */ #include <socket.h> #include <in.h> #include <inet.h> #include <netdb.h> #include <ucx$inetdef.h> #endif /* not DECNET */ #endif /* of Multinet or other TCP includes */ #define TCP_INCLUDES_DONE #ifdef UCX #define SIMPLE_TELNET #endifOn VMS directory browsing is available through a separate copy of dirent.c. The definition of R_OK seem to be missing from the system include files...
#define USE_DIRENT #define GOT_READ_DIR #include <dirent.h> #define STRUCT_DIRENT struct dirent #define R_OK 4On VMS machines, the linker needs to be told to put global data sections into a data segment using these storage classes. (MarkDonszelmann)
#ifdef VAXC #define GLOBALDEF globaldef #define GLOBALREF globalref #endif /* VAXC */ #endif /* vms */On non-VMS machines, the GLOBALDEF and GLOBALREF storage types default to normal C storage types.
#ifndef GLOBALREF #define GLOBALDEF #define GLOBALREF extern #endifOn non-VMS machines STAT should be stat...On VMS machines STAT is a function that converts directories and devices so that you can stat them.
#ifdef VMS typedef unsigned long mode_t; #define HT_STAT HTStat #define HT_LSTAT HTStat #else #define HT_STAT stat #define HT_LSTAT lstat #endif /* non VMS */
#ifdef VMS #ifndef DECC #define NO_STRFTIME #endif #define NO_MKTIME #define NO_TIMEGM #define NO_GMTOFF #define NO_TIMEZONE #endif
#ifdef VMS #ifndef __DECC extern int uerrno; /* Deposit of error info (as per errno.h) */ extern volatile noshare int socket_errno; /* socket VMS error info (used for translation of vmserrno) */ extern volatile noshare int vmserrno; /* Deposit of VMS error info */ extern volatile noshare int errno; /* noshare to avoid PSECT conflict */ #define ERRNO_DONE #endif /* not DECC */ #endif /* VMS */
#ifdef sco #include <grp.h> #include <unistd.h> #include <sys/fcntl.h> #include <time.h> #define USE_DIRENT #define NEED_INITGROUPS #define NO_GETDOMAINNAME #endif
#ifdef bsdi #define NO_GETDOMAINNAME #endif
#ifdef Mips /* Bruker */ typedef mode_t int; #define S_ENFMT S_ISGID /* record locking enforcement flag */ #define S_ISCHR(m) ((m) & S_IFCHR) #define S_ISBLK(m) ((m) & S_IFBLK) #define S_ISDIR(m) (((m)& S_IFMT) == S_IFDIR) #define S_ISREG(m) (((m)& S_IFMT) == S_IFREG) #define WEXITSTATUS(s) (((s).w_status >> 8) & 0377) #define NO_STRFTIME /* Mips can't uppercase non-alpha */ #define TOLOWER(c) (isupper(c) ? tolower(c) : (c)) #define TOUPPER(c) (islower(c) ? toupper(c) : (c))
#ifndef S_IRWXU #define S_IRWXU 0000700 #define S_IRWXG 0000070 #define S_IRWXO 0000007 #define S_IRUSR 0000400 #define S_IWUSR 0000200 #define S_IXUSR 0000100 #define S_IRGRP 0000040 #define S_IWGRP 0000020 #define S_IXGRP 0000010 #define S_IROTH 0000004 #define S_IWOTH 0000002 #define S_IXOTH 0000001 #endif /* S_IRWXU */ #endif /* Mips */
#ifdef linux #include <unistd.h> #include <limits.h> #include <sys/fcntl.h> #define NO_ALTZONE #define NO_GETWD #define HAS_GETCWD #define FULL_TELNET #endif /* linux */
#if defined(__svr4__) || defined(_POSIX_SOURCE) || defined(__hpux) || defined(__sgi) #if defined(__hpux) #define NO_ALTZONE #endif #ifdef UTS4 /* UTS wants sys/types.h first */ #include <sys/types.h> #endif #include <unistd.h> #ifdef UTS4 #include <sys/fcntl.h> #define POSIXWAIT #endif #ifdef AIX /* Apple Unix */ #include <fcntl.h> #else #include <sys/fcntl.h> #endifThis is for NCR 3000 and Pyramid that also are SVR4 systems. Thanks to Alex Podlecki, <a.podlecki@att.com>
#ifndef NGROUPS_MAX #include <limits.h> #endif /* Pyramid and Mips can't uppercase non-alpha */ #ifdef pyramid #define TOLOWER(c) (isupper(c) ? tolower(c) : (c)) #define TOUPPER(c) (islower(c) ? toupper(c) : (c)) #endif
getwd()
is BSD. System V has getcwd()
#define NO_GETWD #define HAS_GETCWD #endif /* Solaris and SVR4 */
#ifdef UTS2 #include <time.h> #include <fcntl.h> #ifndef R_OK #define R_OK 4 #endif #define NO_STRFTIME #define WEXITSTATUS(x) ((int)((x).w_T.w_Retcode)) #undef POSIXWAIT #endif /* UTS2 */
#ifdef __osf__ #define USE_DIRENT #define NO_TIMEZONE /* OSF/1 has gmtoff */ #endif /* OSF1 AXP */
#ifdef decstation #include <unistd.h> #define NO_TIMEZONE /* Ultrix has gmtoff */ #define RLOGIN_USER #endif
#ifdef ISC3 /* Lauren */ #define USE_DIRENT #define GOT_READ_DIR #include <sys/ipc.h> #include <sys/dirent.h> #define direct dirent #include <sys/unistd.h> #define d_namlen d_reclen #include <sys/limits.h> typedef int mode_t; #define SIGSTP #define POSIXWAIT #define _POSIX_SOURCE #include <sys/types.h> #include <sys/wait.h> #include <net/errno.h> #define _SYSV3 #include <time.h> #include <sys/fcntl.h> #define S_ISDIR(m) (((m) & 0170000) == 0040000) #define S_ISCHR(m) (((m) & 0170000) == 0020000) #define S_ISBLK(m) (((m) & 0170000) == 0060000) #define S_ISREG(m) (((m) & 0170000) == 0100000) #define S_ISFIFO(m) (((m) & 0170000) == 0010000) #define S_ISLNK(m) (((m) & 0170000) == 0120000) #endif /* ISC 3.0 */
#ifdef NeXT #include <sys/types.h> #include <sys/stat.h> typedef unsigned short mode_t; #ifndef S_ISDIR #define S_ISDIR(m) (m & S_IFDIR) #define S_ISREG(m) (m & S_IFREG) #define S_ISCHR(m) (m & S_IFCHR) #define S_ISBLK(m) (m & S_IFBLK) #define S_ISLNK(m) (m & S_IFLNK) #define S_ISSOCK(m) (m & S_IFSOCK) #define S_ISFIFO(m) (NO) #endif #ifndef WEXITSTATUS #define WEXITSTATUS(s) (((s).w_status >> 8) & 0377) #endif #ifndef O_NONBLOCK #define O_NONBLOCK O_NDELAY #endif #define NO_TIMEZONE /* next has gmtoff */
#ifndef S_IRWXU #define S_IRWXU 0000700 #define S_IRWXG 0000070 #define S_IRWXO 0000007 #define S_IRUSR 0000400 #define S_IWUSR 0000200 #define S_IXUSR 0000100 #define S_IRGRP 0000040 #define S_IWGRP 0000020 #define S_IXGRP 0000010 #define S_IROTH 0000004 #define S_IWOTH 0000002 #define S_IXOTH 0000001 #endif /* S_IRWXU */ #endif /* NeXT */
#ifdef _AUX #include <time.h> #define WEXITSTATUS(s) (((s).w_status >> 8) & 0377) #define NO_STRFTIME #endif
#ifdef sony_news #include <sys/wait.h> #define WEXITSTATUS(s) (((s).w_status >> 8) & 0377) typedef int mode_t; #endif
#ifndef INCLUDES_DONE #include <sys/types.h> #include <string.h> #include <errno.h> /* independent */ #include <sys/time.h> /* independent */ #include <sys/stat.h> #include <sys/param.h> #include <sys/file.h> /* For open() etc */ #define INCLUDES_DONE #endif /* Normal includes */ #ifdef SUNOS #include <unistd.h> #define NO_TIMEZONE #define NO_MKTIME #undef HAVE_STRERROR #endif #ifdef NetBSD #define NO_TIMEZONE #define HAVE_STRERROR #endif #ifdef __FreeBSD__ #define NO_TIMEZONE #define HAVE_STRERROR #define NO_GETWD #define HAS_GETCWD #define FULL_TELNET #endif
#if defined(unix) || defined(__unix__) /* If UNIX (thanks to Rainer Klute) */ #define GOT_PIPE /* We do have a pipe */ #define GOT_READ_DIR /* if directory reading functions are available */ #define GOT_OWNER /* If a file has owner permissions */ #include <pwd.h> #include <grp.h> #include <stdio.h> #ifndef NeXT #define USE_DIRENT /* Try this all the time, Henrik May 29 94 */ #endif #ifdef USE_DIRENT /* sys v version */ #include <dirent.h> #define STRUCT_DIRENT struct dirent #else #include <sys/dir.h> #define STRUCT_DIRENT struct direct #endif #ifdef SOLARIS #include <sys/fcntl.h> #include <limits.h> #endif #ifndef FNDELAY #define FNDELAY O_NDELAY #endif #endif /* unix */
See also Platform Specific Stuff
#ifndef SLEEP #define SLEEP(n) sleep(n) #endif
#if defined(SOCKS) && !defined(RULE_FILE) #define connect Rconnect #define accept Raccept #define getsockname Rgetsockname #define bind Rbind #define listen Rlisten #endif
#ifdef DECNET typedef struct sockaddr_dn SockA; /* See netdnet/dn.h or custom vms.h */ #else /* Internet */ typedef struct sockaddr_in SockA; /* See netinet/in.h */ #endif
#ifndef NETCLOSE #define NETCLOSE close /* Routine to close a TCP-IP socket */ #endif #ifndef NETREAD #define NETREAD read /* Routine to read from a TCP-IP socket */ #endif #ifndef NETWRITE #define NETWRITE write /* Routine to write to a TCP-IP socket */ #endif
#ifndef TCP_INCLUDES_DONE #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> /* Must be after netinet/in.h */ #include <netdb.h> #define TCP_INCLUDES_DONE #endif
strerror
function then
try the error list table.
#ifndef ERRNO_DONE extern int errno; #define socerrno errno #endif #ifndef HAVE_STRERROR /* Otherwise use the table */ extern char *sys_errlist[]; extern int sys_nerr; #endif
#ifndef SOCKET #define SOCKET int /* Unix like socket descriptor */ #define INVSOC (-1) /* Unix invalid socket */ #endif #ifdef __svr4__ #define HT_BACKLOG 32 /* Number of pending connect requests (TCP) */ #else #define HT_BACKLOG 5 /* Number of pending connect requests (TCP) */ #endif /* __svr4__ */
#ifndef _WINSOCKAPI_ #define FD_READ 0x01 #define FD_WRITE 0x02 #define FD_OOB 0x04 #define FD_ACCEPT 0x08 #define FD_CONNECT 0x10 #define FD_CLOSE 0x20 #endif /* _WINSOCKAPI_ */
#ifndef HT_MAX_PATH #ifdef MAXPATHLEN #define HT_MAX_PATH MAXPATHLEN #else #ifdef PATH_MAX #define HT_MAX_PATH PATH_MAX #else #define HT_MAX_PATH 1024 /* Any better ideas? */ #endif #endif #endif /* HT_MAX_PATH */
#ifdef NO_UNIX_IO #define NO_GROUPS #endif #ifndef NO_GROUPS #ifndef NGROUPS #ifdef NGROUPS_MAX #define NGROUPS NGROUPS_MAX #else #define NGROUPS 20 /* Any better ideas? */ #endif #endif #endif
#ifndef MAXHOSTNAMELEN #define MAXHOSTNAMELEN 64 /* Any better ideas? */ #endif
#ifndef MKDIR #define MKDIR(a,b) mkdir((a), (b)) #endif #ifndef RMDIR #define RMDIR(a) rmdir((a)) #endif #ifndef REMOVE #define REMOVE(a) unlink((a)) #endif #ifndef DEFAULT_SUFFIXES #define DEFAULT_SUFFIXES ".,_" #endif #ifndef FCNTL #define FCNTL(r,s,t) fcntl((r),(s),(t)) #endif
#ifdef SELECT #ifndef FD_SET typedef unsigned int fd_set; #define FD_SET(fd,pmask) (*(pmask)) |= (1<<(fd)) #define FD_CLR(fd,pmask) (*(pmask)) &= ~(1<<(fd)) #define FD_ZERO(pmask) (*(pmask))=0 #define FD_ISSET(fd,pmask) (*(pmask) & (1<<(fd))) #endif /* FD_SET */ #endif /* SELECT */
#ifndef TOASCII #define TOASCII(c) (c) #define FROMASCII(c) (c) #endif
#ifndef CACHE_FILE_PREFIX #if defined(unix) || defined(__unix__) #define CACHE_FILE_PREFIX "/usr/wsrc/" #endif #endif
#ifdef HT_REENTRANT #define HOSTENT_MAX 128 #define CTIME_MAX 26 #endif
#endifEnd of system-specific file