📄 ckcnet.h
字号:
in Multinet builds: "blah" is implicitly declared as a function, where blah is socket_read/write/close, ntohs, htons, getpeername, accept, select, etc. I have no idea why -- these routines are declared in the header files below, and the includes haven't changed. The executable still seems to work OK. Messing with the order of the following includes is disastrous.*/#ifdef MULTINET_NO_PROTOTYPES#undef MULTINET_NO_PROTOTYPES#endif /* MULTINET_NO_PROTOTYPES */#ifdef __cplusplus#undef __cplusplus#endif /* __cplusplus */#include "multinet_root:[multinet.include]errno.h"#include "multinet_root:[multinet.include.sys]types.h"#include "multinet_root:[multinet.include.sys]socket.h"#include "multinet_root:[multinet.include]netdb.h"#include "multinet_root:[multinet.include.netinet]in.h"#include "multinet_root:[multinet.include.arpa]inet.h"#include "multinet_root:[multinet.include.sys]ioctl.h"#ifdef COMMENT/* No longer needed because now bzero/bcopy are macros defined as memset/memmove in all VMS builds.*//* We should be able to pick these up from <strings.h> but it's not portable between VAXC and DECC. And even with DECC 5.x we have a difference between VAX and Alpha. We get warnings here on the VAX with DECC 5.6-003 but they are not fatal.*/#ifndef __DECC_VER#ifndef bzero_PROTOTYP( void bzero, (char *, int) );#endif /* bzero */#ifndef bcopy_PROTOTYP( void bcopy, (char *, char *, int) );#endif /* bcopy */#endif /* __DECC_VER */#endif /* COMMENT */#ifdef __DECC/* If compiling under DEC C the socket calls must not be prefixed with DECC$. This is done by using the compiler switch /Prefix=Ansi_C89. However, this causes some calls that should be prefixed to not be (which I think is a bug in the compiler - I've been told these calls are present in ANSI compilers). At any rate, such calls are fixed here by explicitly prefixing them.*/#ifdef COMMENT/* But this causes errors with VMS 6.2 / DEC C 5.3-006 / MultiNet 4.0A on a VAX (but not on an Alpha). So now what happens if we skip doing this?*/#define close decc$close#define alarm decc$alarm#endif /* COMMENT */#endif /* __DECC */#else /* Not MULTINET */#ifdef WINTCP /* WIN/TCP = PathWay for VMS */#ifdef OLD_TWG#include "twg$tcp:[netdist.include.sys]errno.h"#include "twg$tcp:[netdist.include.sys]types2.h" /* avoid some duplicates */#else#include "twg$tcp:[netdist.include]socket_aliases.h"#include <errno.h>#include "twg$tcp:[netdist.include.sys]types.h"#endif /* OLD_TWG */#include "twg$tcp:[netdist.include.sys]socket.h"#include "twg$tcp:[netdist.include]netdb.h"#include "twg$tcp:[netdist.include.sys]domain.h"#include "twg$tcp:[netdist.include.sys]protosw.h"#include "twg$tcp:[netdist.include.netinet]in.h"#include "twg$tcp:[netdist.include.arpa]inet.h"#include "twg$tcp:[netdist.include.sys]ioctl.h"#else /* Not WINTCP */#ifdef DEC_TCPIP#ifdef UCX50#ifndef IF_DOT_H#define IF_DOT_H#endif /* IF_DOT_H */#endif /* UCX50 */#ifdef IF_DOT_H#include <if.h> /* Needed to put up u_int typedef */#else#ifdef NEEDUINTtypedef unsigned int u_int;#endif /* NEEDUINT */#endif /* IF_DOT_H */#include <in.h>#include <netdb.h>#include <socket.h>#include "ckvioc.h"#define socket_errno errno#ifdef COMMENT/* No longer needed because now bzero/bcopy are macros defined as memset/memmove in all VMS builds.*//* Translation: In <strings.h>, which exists only for DECC >= 5.2, bzero() and bcopy() are declared only for OpenVMS >= 7.0. This still might need adjustment for DECC 5.0 and higher.*/#ifdef __DECC_VER#ifdef VMSV70/* Note: you can't use "#if (__VMS_VER>=70000000)" because that is not portable and kills non-VMS builds.*/#include <strings.h>#else#define bzero(s,n) memset(s,0,n)#define bcopy(h,a,l) memmove(a,h,l)#endif /* VMSV70 */#else#define bzero(s,n) memset(s,0,n)#define bcopy(h,a,l) memmove(a,h,l)#endif /* __DECC_VER */#endif /* COMMENT */#define socket_read read#define socket_write write#define socket_ioctl ioctl#define socket_close close#ifdef __DECCint ioctl (int d, int request, void *argp);#elseint ioctl (int d, int request, char *argp);#endif /* DECC *//* UCX supports select(), but does not provide the needed symbol and structure definitions in any header file, so ...*/#include <types.h>#ifndef NBBY/*- * Copyright (c) 1982, 1986, 1991, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)types.h 8.1 (Berkeley) 6/2/93 */#define NBBY 8 /* number of bits in a byte *//* * Select uses bit masks of file descriptors in longs. These macros * manipulate such bit fields (the filesystem macros use chars). * FD_SETSIZE may be defined by the user, but the default here should * be enough for most uses. */#ifndef FD_SETSIZE#define FD_SETSIZE 256#endiftypedef long fd_mask;#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */#ifndef howmany#define howmany(x, y) (((x)+((y)-1))/(y))#endiftypedef struct fd_set { fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];} fd_set;#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))#define FD_COPY(f, t) bcopy(f, t, sizeof(*(f)))#define FD_ZERO(p) bzero(p, sizeof(*(p)))#endif /* !NBBY */#else /* Not DEC_TCPIP */#ifdef CMU_TCPIP#include <types.h>#include <in.h>#include <netdb.h>#include <socket.h>#include <ioctl.h>#include "ckvioc.h"#define socket_errno errno#ifdef COMMENT/* This is now done above for all VMS builds */#define bzero(s,n) memset(s,0,n)#define bcopy(h,a,l) memmove(a,h,l)#endif /* COMMENT *//* * Routines supplied in LIBCMU.OLB */#define socket_ioctl ioctl#define socket_read cmu_read#define socket_write cmu_write#define socket_close cmu_close#endif /* CMU_TCPIP */#endif /* DEC_TCPIP */#endif /* WINTCP */#endif /* MULTINET */#else /* Not VMS */#ifdef OS2#include "ckonet.h"#ifndef NT#include <nerrno.h>#endif#endif /* OS2 */#ifdef STRATUS /* Stratus VOS using OS TCP/IP products S235, S236, S237 */#include <tcp_socket.h>/* This gets used some places when TCPSOCKET is defined. *//* OS TCP provides bzero(), but not bcopy()... go figure. */#define bcopy(s,d,z) memcpy(d,s,z)#endif /* STRATUS */#ifdef OSK#ifndef OSKXXC#include <inet/in.h>#include <inet/netdb.h>#include <inet/socket.h>#else#include <INET/in.h>#include <INET/netdb.h>#include <INET/socket.h>#endif /* OSKXXC */#define bzero(s,n) memset(s,0,n)#define bcopy(h,a,l) memcpy(a,h,l)typedef char * caddr_t; /* core address type */#endif /* OSK */#endif /* VMS */#endif /* UNIX */#endif /* TCPSOCKET */#ifdef TNCODE /* If we're compiling telnet code... */#ifndef IKS_OPTION#ifndef STRATUS#define IKS_OPTION#endif /* STRATUS */#endif /* IKS_OPTION */#include "ckctel.h"#elseextern int sstelnet;#ifdef IKSD#undef IKSD#endif /* IKSD */#ifndef NOIKSD#define NOIKSD#endif /* NOIKSD */#ifdef IKS_OPTION#undef IKS_OPTION#endif /* IKS_OPTION */#endif /* TNCODE */#ifndef NOTCPOPTS/* Automatically define NOTCPOPTS for configurations where they can't be used at runtime or cause too much trouble at compile time.*/#ifdef CMU_TCPIP /* CMU/Tek */#define NOTCPOPTS#endif /* CMU_TCPIP */#ifdef MULTINET /* Multinet on Alpha */#ifdef __alpha#define NOTCPOPTS#endif /* __alpha */#endif /* MULTINET */#endif /* NOTCPOPTS */#ifdef NOTCPOPTS#ifdef TCP_NODELAY#undef TCP_NODELAY#endif /* TCP_NODELAY */#ifdef SO_LINGER#undef SO_LINGER#endif /* SO_LINGER */#ifdef SO_KEEPALIVE#undef SO_KEEPALIVE#endif /* SO_KEEPALIVE */#ifdef SO_SNDBUF#undef SO_SNDBUF#endif /* SO_SNDBUF */#ifdef SO_RCVBUF#undef SO_RCVBUF#endif /* SO_RCVBUF */#endif /* NOTCPOPTS */#ifdef TCPSOCKET#ifdef SOL_SOCKET#ifdef TCP_NODELAY_PROTOTYP( int no_delay, (int) );#endif /* TCP_NODELAY */#ifdef SO_KEEPALIVE_PROTOTYP( int keepalive, (int) ) ;#endif /* SO_KEEPALIVE */#ifdef SO_LINGER_PROTOTYP( int ck_linger, (int, int) ) ;#endif /* SO_LINGER */#ifdef SO_SNDBUF_PROTOTYP( int sendbuf,(int) ) ;#endif /* SO_SNDBUF */#ifdef SO_RCVBUF_PROTOTYP( int recvbuf, (int) ) ;#endif /* SO_RCVBUF */#ifdef SO_DONTROUTE_PROTOTYP(int dontroute, (int));#endif /* SO_DONTROUTE */#endif /* SOL_SOCKET */_PROTOTYP( int getlocalipaddr, (VOID));_PROTOTYP( int getlocalipaddrs, (char *,int,int));_PROTOTYP( char * ckgetpeer, (VOID));_PROTOTYP( char * ckgetfqhostname,(char *));/* AIX */#ifdef AIXRS#ifndef TCP_NODELAY#define TCP_NODELAY 0x1#endif /* TCP_NODELAY */#ifndef TCP_MAXSEG#define TCP_MAXSEG 0x2#endif /* TCP_MAXSEG */#ifndef TCP_KEEPALIVE#define TCP_KEEPALIVE 0x8#endif /* TCP_KEEPALIVE */#endif /* AIXRS */#endif /* TCPSOCKET */#ifdef RLOGCODE#ifndef CK_TTGWSIZSORRY_RLOGIN_REQUIRES_TTGWSIZ_see_ckcplm.doc#endif /* CK_TTGWSIZ */#endif /* RLOGCODE */#ifdef CK_NAWS#ifndef CK_TTGWSIZSORRY_CK_NAWS_REQUIRES_TTGWSIZ_see_ckcplm.doc#endif /* CK_TTGWSIZ */#endif /* CK_NAWS */#ifndef PF_INET#ifdef AF_INET#define PF_INET AF_INET#endif /* AF_INET */#endif /* PF_INET */#ifndef IPPORT_ECHO#define IPPORT_ECHO 7#endif /* IPPORT_ECHO */#ifdef CK_KERBEROS#ifdef RLOGCODE_PROTOTYP(int ck_krb_rlogin,(CHAR *, int, CHAR *, CHAR *, CHAR *, struct sockaddr_in *, struct sockaddr_in *, int, int));#endif /* RLOGCODE */#endif /* CK_KERBEROS */_PROTOTYP( VOID ini_kerb, ( void ) ); /* Kerberos initialization routine */_PROTOTYP( int doauth, (int) ); /* AUTHENTICATE action routine */#ifdef CK_DNS_SRV_PROTOTYP(int locate_srv_dns,(const char *host, const char *service, const char *protocol, struct sockaddr **addr_pp, int *naddrs));#endif /* CK_DNS_SRV */#ifndef NOHTTP_PROTOTYP(int http_get, (char *,char **,char *,char *,char,char *,char *));_PROTOTYP(int http_head, (char *,char **,char *,char *,char,char *,char *));_PROTOTYP(int http_put, (char *,char **,char *,char *,char *,char,char *, char *));_PROTOTYP(int http_delete, (char *,char **,char *,char *,char,char *));_PROTOTYP(int http_post, (char *,char **,char *,char *,char *,char,char *, char *));_PROTOTYP(int http_index, (char *,char **,char *,char *,char,char *,char *));#endif /* NOHTTP */#endif /* CKCNET_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -