home *** CD-ROM | disk | FTP | other *** search
- #ifndef CKCNET_H
- #define CKCNET_H
-
- /* Network types */
-
- #define NET_NONE 0 /* None */
- #define NET_TCPB 1 /* TCP/IP Berkeley (socket) */
- #define NET_TCPA 2 /* TCP/IP AT&T (streams) */
- #define NET_SX25 3 /* SUNOS SunLink X.25 */
- #define NET_DEC 4 /* DECnet */
- #define NET_VPSI 5 /* VAX PSI */
- #define NET_PIPE 6 /* LAN Manager Named Pipe */
-
- /* Network virtual terminal protocols */
-
- #define NP_NONE 0 /* None (async) */
- #define NP_TELNET 1 /* TCP/IP telnet */
- #define NP_VTP 2 /* ISO Virtual Terminal Protocol */
- #define NP_X3 3 /* CCITT X.3 */
- #define NP_X28 4 /* CCITT X.28 */
- #define NP_X29 5 /* CCITT X.28 */
- #define NP_CTERM 20 /* DEC CTERM */
- #define NP_LAT 21 /* DEC LAT */
- /* others here... */
-
- /* Basic network function prototypes, common to all. */
-
- _PROTOTYP( int netopen, (char *, int *, int) );
- _PROTOTYP( int netclos, (void) );
- _PROTOTYP( int netflui, (void) );
- _PROTOTYP( int nettchk, (void) );
- _PROTOTYP( int netbreak, (void) );
- _PROTOTYP( int netinc, (int) );
- _PROTOTYP( int nettol, (char *, int) );
- _PROTOTYP( int nettoc, (char) );
-
- /*
- SunLink X.25 support by Marcello Frutig, Catholic University,
- Rio de Janeiro, Brazil, 1990.
-
- Maybe this can be adapted to VAX PSI and other X.25 products too.
- */
- #ifndef SUNOS4 /* Only valid for SUNOS4 */
- #ifdef SUNX25
- #undef SUNX25
- #endif /* SUNX25 */
- #endif /* SUNOS4 */
-
- #ifdef SUNX25
-
- #ifndef NETCONN /* SUNX25 implies NETCONN */
- #define NETCONN
- #endif /* NETCONN */
-
- #define MAXPADPARMS 18 /* Number of PAD parameters */
- #define MAXCUDATA 12 /* Max length of X.25 call user data */
- #define X29PID 1 /* X.29 protocol ID */
- #define X29PIDLEN 4 /* X.29 protocol ID length */
-
- #define X29_SET_PARMS 2
- #define X29_READ_PARMS 4
- #define X29_SET_AND_READ_PARMS 6
- #define X29_INVITATION_TO_CLEAR 1
- #define X29_PARAMETER_INDICATION 0
- #define X29_INDICATION_OF_BREAK 3
- #define X29_ERROR 5
-
- #define INVALID_PAD_PARM 1
-
- #define PAD_BREAK_CHARACTER 0
-
- #define PAD_ESCAPE 1
- #define PAD_ECHO 2
- #define PAD_DATA_FORWARD_CHAR 3
- #define PAD_DATA_FORWARD_TIMEOUT 4
- #define PAD_FLOW_CONTROL_BY_PAD 5
- #define PAD_SUPPRESSION_OF_SIGNALS 6
- #define PAD_BREAK_ACTION 7
- #define PAD_SUPPRESSION_OF_DATA 8
- #define PAD_PADDING_AFTER_CR 9
- #define PAD_LINE_FOLDING 10
- #define PAD_LINE_SPEED 11
- #define PAD_FLOW_CONTROL_BY_USER 12
- #define PAD_LF_AFTER_CR 13
- #define PAD_PADDING_AFTER_LF 14
- #define PAD_EDITING 15
- #define PAD_CHAR_DELETE_CHAR 16
- #define PAD_BUFFER_DELETE_CHAR 17
- #define PAD_BUFFER_DISPLAY_CHAR 18
-
- #define MAXIX25 MAX_USER_DATA*7
- #define MAXOX25 MAX_USER_DATA
-
- #include <sys/ioctl.h> /* X.25 includes */
- #include <sys/param.h>
- #include <sys/systm.h>
- #include <sys/mbuf.h>
- #include <sys/socket.h>
- #include <sys/protosw.h>
- #include <sys/domain.h>
- #include <sys/socketvar.h>
- #include <net/if.h>
- #include <sundev/syncstat.h>
- #include <netx25/x25_pk.h>
- #include <netx25/x25_ctl.h>
- #include <netx25/x25_ioctl.h>
-
- /* C-Kermit X.3 / X.25 / X.29 / X.121 support functions */
-
- _PROTOTYP( VOID shopad, (void) );
- _PROTOTYP( VOID initpad, (void) );
- _PROTOTYP( VOID setpad, (CHAR *, int) );
- _PROTOTYP( VOID readpad, (CHAR *, int, CHAR *) );
- _PROTOTYP( int qbitpkt, (CHAR *, int) );
- _PROTOTYP( VOID setqbit, (void) );
- _PROTOTYP( VOID resetqbit, (void) );
- _PROTOTYP( VOID breakact, (void) );
- _PROTOTYP( int pkx121, (char *, CHAR *) );
- _PROTOTYP( VOID x25oobh, (void) );
- _PROTOTYP( int x25diag, (void) );
- _PROTOTYP( int x25intr, (char) );
- _PROTOTYP( int x25reset, (char, char) );
- _PROTOTYP( int x25clear, (void) );
- _PROTOTYP( int x25stat, (void) );
- _PROTOTYP( int x25in, (int, CHAR *) );
- _PROTOTYP( int x25inl, (CHAR *, int, int, CHAR) );
-
- #endif /* SUNX25 */
-
- /* DEC TCP/IP for (Open)VMS, previously known as UCX */
-
- #ifdef DEC_TCPIP /* DEC_TCPIP implies TCPSOCKET */
- #ifndef TCPSOCKET
- #define TCPSOCKET
- #endif /* TCPSOCKET */
- #ifndef VMSTCPIP
- #define VMSTCPIP
- #endif /* VMSTCPIP */
- #endif /* DEC_TCPIP */
-
- /* TGV/SRI MultiNet, TCP/IP for VAX/VMS */
-
- #ifdef MULTINET /* MULTINET implies TCPSOCKET */
- #ifndef TCPSOCKET
- #define TCPSOCKET
- #endif /* TCPSOCKET */
- #ifndef VMSTCPIP
- #define VMSTCPIP
- #endif /* VMSTCPIP */
- #ifndef TGVORWIN /* MULTINET and WINTCP */
- #define TGVORWIN /* share a lot of code... */
- #endif /* TGVORWIN */
- #endif /* MULTINET */
-
- /* Wollongong TCP/IP for VAX/VMS */
-
- #ifdef WINTCP /* WINTCP implies TCPSOCKET */
- #ifndef TCPSOCKET
- #define TCPSOCKET
- #endif /* TCPSOCKET */
- #ifndef VMSTCPIP
- #define VMSTCPIP
- #endif /* VMSTCPIP */
- #ifndef TGVORWIN /* WINTCP and MULTINET */
- #define TGVORWIN /* share a lot of code... */
- #endif /* TGVORWIN */
- #endif /* WINTCP */
-
- /* Wollongong TCP/IP for AT&T Sys V */
-
- #ifdef WOLLONGONG /* WOLLONGONG implies TCPSOCKET */
- #ifndef TCPSOCKET /* Don't confuse WOLLONGONG */
- #define TCPSOCKET /* (which is for UNIX) with */
- #endif /* TCPSOCKET */ /* WINTCP, which is for VMS! */
- #endif /* WOLLONGONG */
-
- #ifdef EXCELAN /* EXCELAN implies TCPSOCKET */
- #ifndef TCPSOCKET
- #define TCPSOCKET
- #endif /* TCPSOCKET */
- #endif /* EXCELAN */
-
- #ifdef INTERLAN /* INTERLAN implies TCPSOCKET */
- #ifndef TCPSOCKET
- #define TCPSOCKET
- #endif /* TCPSOCKET */
- #endif /* INTERLAN */
-
- /* Telnet protocol */
-
- #ifdef TCPSOCKET /* TCPSOCKET implies TNCODE */
- #ifndef TNCODE /* Which means... */
- #define TNCODE /* Compile in telnet code */
- #endif /* TNCODE */
- #endif /* TCPSOCKET */
-
- #ifdef SUNX25 /* SUNX25 implies TCPSOCKET */
- #ifndef TCPSOCKET /* But doesn't imply TNCODE */
- #define TCPSOCKET
- #endif /* TCPSOCKET */
- #endif /* SUNX25 */
-
- /* This is the TCPSOCKET section... */
-
- #ifdef TCPSOCKET
-
- #ifndef NETCONN /* TCPSOCKET implies NETCONN */
- #define NETCONN
- #endif /* NETCONN */
-
- /* BSD sockets library header files */
-
- #ifdef UNIX /* UNIX section */
-
- #ifdef INTERLAN /* Racal-Interlan TCP/IP */
- #include <interlan/socket.h>
- #include <interlan/il_types.h>
- #include <interlan/telnet.h>
- #include <interlan/il_errno.h>
- #include <interlan/in.h>
- #include <interlan/telnet.h>
- #else /* Normal BSD TCP/IP library */
- #ifndef HPUX
- #include <arpa/telnet.h>
- #endif /* HPUX */
- #include <sys/socket.h>
- #ifdef WOLLONGONG
- #include <sys/in.h>
- #else
- #include <netinet/in.h>
- #endif /* WOLLONGONG */
- #endif /* INTERLAN */
-
- #ifndef EXCELAN
- #include <netdb.h>
- #ifndef INTERLAN
- #ifdef WOLLONGONG
- #define minor /* Do not include <sys/macros.h> */
- #include <sys/inet.h>
- #else
- #ifndef OXOS
- #ifndef HPUX
- #include <arpa/inet.h>
- #endif /* HPUX */
- #else /* OXOS */
- /* In too many releases of X/OS, <arpa/inet.h> declares inet_addr() as
- * ``struct in_addr''. This is definitively wrong, and could cause
- * core dumps. Instead of including that bad file, inet_addr() is
- * correctly declared here. Of course, all the declarations done there
- * has been copied here.
- */
- unsigned long inet_addr();
- char *inet_ntoa();
- struct in_addr inet_makeaddr();
- unsigned long inet_network();
- #endif /* OXOS */
- #endif /* WOLLONGONG */
- #endif /* INTERLAN */
- #endif /* EXCELAN */
-
- #ifdef EXCELAN /* Excelan TCP/IP */
- #include <ex_errno.h>
- #endif /* EXCELAN */
-
- #ifdef I386IX /* Interactive Sys V R3 network. */
- /* #define TELOPTS */ /* This might need defining. */
- #define ORG_NLONG ENAMETOOLONG /* Resolve conflicting symbols */
- #undef ENAMETOOLONG /* in <errno.h> and <net/errno.h> */
- #define ORG_NEMPTY ENOTEMPTY
- #undef ENOTEMPTY
- #include <net/errno.h>
- #undef ENAMETOOLONG
- #define ENAMETOOLONG ORG_NLONG
- #undef ENOTEMPTY
- #define ENOTEMPTY ORG_NEMPTY
- #endif /* I386IX */
- /*
- Data type of the inet_addr() function...
- We define INADDRX if it is of type struct inaddr.
- If it is undefined, unsigned long is assumed.
- Look at <arpa/inet.h> to find out. The following known cases are
- handled here. Other systems that need it can be added here, or else
- -DINADDRX can be included in the CFLAGS on the cc command line.
- */
- #ifdef DGUX540 /* Data General UX 5.40 */
- #define INADDRX
- #endif /* DGUX540 */
- #ifdef DU2 /* DEC Ultrix 2.0 */
- #define INADDRX
- #endif /* DU2 */
-
- #else /* Not UNIX */
-
- #ifdef VMS /* VAX/VMS section */
-
- #ifdef WINTCP /* TWG WIN/TCP for VMS */
- #include <errno.h>
- #include "twg$tcp:[netdist.include.sys]types.h"
- #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.sys]ioctl.h"
- #endif /* WINTCP */
-
- #ifdef MULTINET /* TGV MultiNet */
- #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.sys]ioctl.h"
- #endif /* MULTINET */
-
- #ifdef DEC_TCPIP
- #include <in.h>
- #include <netdb.h>
- #include <socket.h>
- #include "ckvioc.h"
- #define socket_errno errno
- #define bzero(s,n) memset(s,0,n)
- #define bcopy(h,a,l) memmove(a,h,l)
- #define socket_read read
- #define socket_write write
- #define socket_ioctl ioctl
- #define socket_close close
- #endif /* DEC_TCPIP */
-
- #endif /* VMS */
- #endif /* UNIX */
- #endif /* TCPSOCKET */
-
- #ifdef TNCODE /* If we're compiling telnet code... */
- /*
- Make sure telnet symbols are defined; can't rely on library header files
- for any of them.
- */
- #ifndef IAC /* First the telnet commands */
- #define IAC 255
- #endif /* IAC */
- #ifndef DONT
- #define DONT 254
- #endif /* DONT */
- #ifndef DO
- #define DO 253
- #endif /* DO */
- #ifndef WONT
- #define WONT 252
- #endif /* WONT */
- #ifndef WILL
- #define WILL 251
- #endif /* WILL */
- #ifndef SB
- #define SB 250
- #endif /* SB */
- #ifndef BREAK
- #define BREAK 243
- #endif /* BREAK */
- #ifndef SE
- #define SE 240
- #endif /* SE */
-
- #ifndef TELOPT_ECHO /* Then the options */
- #define TELOPT_ECHO 1
- #endif /* TELOPT_ECHO */
- #ifndef TELOPT_SGA
- #define TELOPT_SGA 3
- #endif /* TELOPT_SGA */
- #ifndef TELOPT_STATUS
- #define TELOPT_STATUS 5
- #endif /* TELOPT_STATUS */
- #ifndef TELOPT_TTYPE
- #define TELOPT_TTYPE 24
- #endif /* TELOPT_TTYPE */
- #ifndef NTELOPTS
- #define NTELOPTS 24
- #endif /* NTELOPTS */
-
- /* Telnet protocol functions defined in C-Kermit */
-
- _PROTOTYP( int tn_ini, (void) ); /* Telnet protocol support */
- _PROTOTYP( int tn_sopt, (int, int) );
- _PROTOTYP( int tn_doop, (CHAR, int, int (*)(int) ) );
- _PROTOTYP( int tn_sttyp, (void) );
- _PROTOTYP( int tnsndbrk, (void) );
-
- #endif /* TNCODE */
-
- #endif /* CKCNET_H */
-