diff options
Diffstat (limited to 'vms/sockadapt.h')
-rw-r--r-- | vms/sockadapt.h | 56 |
1 files changed, 43 insertions, 13 deletions
diff --git a/vms/sockadapt.h b/vms/sockadapt.h index 041fbd7073..e104ca7f3c 100644 --- a/vms/sockadapt.h +++ b/vms/sockadapt.h @@ -2,7 +2,7 @@ * * Authors: Charles Bailey bailey@genetics.upenn.edu * David Denholm denholm@conmat.phys.soton.ac.uk - * Last Revised: 17-Mar-1995 + * Last Revised: 4-Mar-1997 * * This file should include any other header files and procide any * declarations, typedefs, and prototypes needed by perl for TCP/IP @@ -11,15 +11,33 @@ * This version is set up for perl5 with socketshr 0.9D TCP/IP support. */ -/* SocketShr doesn't support these routines, but the DECC RTL contains - * stubs with these names, designed to be used with the UCX socket - * library. We avoid linker collisions by substituting new names. - */ -#define getnetbyaddr no_getnetbyaddr -#define getnetbyname no_getnetbyname -#define getnetent no_getnetent -#define setnetent no_setnetent -#define endnetent no_endnetent +#ifndef __SOCKADAPT_INCLUDED +#define __SOCKADAPT_INCLUDED 1 + +#if defined(DECCRTL_SOCKETS) + /* Use builtin socket interface in DECCRTL and + * UCX emulation in whatever TCP/IP stack is present. + * Provide prototypes for missing routines; stubs are + * in sockadapt.c. + */ +# include <socket.h> +# include <inet.h> +# include <in.h> +# include <netdb.h> + void sethostent(int); + void endhostent(void); + void setnetent(int); + void endnetent(void); + void setprotoent(int); + void endprotoent(void); + void setservent(int); + void endservent(void); + +#else + /* Pull in SOCKETSHR's header, and set up structures for + * gcc, whose basic header file set doesn't include the + * TCP/IP stuff. + */ #ifdef __GNU_CC__ @@ -109,7 +127,7 @@ struct netent { struct netent *getnetbyaddr( long net, int type); struct netent *getnetbyname( char *name); struct netent *getnetent(); -void setnetent(); +void setnetent(int); void endnetent(); #else /* !__GNU_CC__ */ @@ -123,13 +141,22 @@ void endnetent(); #include <inet.h> #include <netdb.h> /* However, we don't have these two in the system headers. */ -void setnetent(); +void setnetent(int); void endnetent(); +/* SocketShr doesn't support these routines, but the DECC RTL contains + * stubs with these names, designed to be used with the UCX socket + * library. We avoid linker collisions by substituting new names. + */ +#define getnetbyaddr no_getnetbyaddr +#define getnetbyname no_getnetbyname +#define getnetent no_getnetent +#define setnetent no_setnetent +#define endnetent no_endnetent #endif #include <socketshr.h> -/* socketshr.h from SocketShr 0.9D doesn't alias fileno; it's comments say +/* socketshr.h from SocketShr 0.9D doesn't alias fileno; its comments say * that the CRTL version works OK. This isn't the case, at least with * VAXC, so we use the SocketShr version. * N.B. This means that sockadapt.h must be included *after* stdio.h. @@ -148,3 +175,6 @@ int si_fileno(FILE *); #endif #define getpeername my_getpeername int my_getpeername _((int, struct sockaddr *, int *)); + +#endif /* SOCKETSHR stuff */ +#endif /* include guard */ |