home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Professional
/
OS2PRO194.ISO
/
os2
/
com
/
utils
/
ckermit
/
sources
/
ckcnet.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-11-23
|
11KB
|
391 lines
#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 */