|
|
1.1 ! root 1: #ifndef CKCNET_H ! 2: #define CKCNET_H ! 3: ! 4: /* Network types */ ! 5: ! 6: #define NET_NONE 0 /* None */ ! 7: #define NET_TCPB 1 /* TCP/IP Berkeley (socket) */ ! 8: #define NET_TCPA 2 /* TCP/IP AT&T (streams) */ ! 9: #define NET_SX25 3 /* SUNOS SunLink X.25 */ ! 10: #define NET_DEC 4 /* DECnet */ ! 11: #define NET_VPSI 5 /* VAX PSI */ ! 12: #define NET_PIPE 6 /* LAN Manager Named Pipe */ ! 13: ! 14: /* Network virtual terminal protocols */ ! 15: ! 16: #define NP_NONE 0 /* None (async) */ ! 17: #define NP_TELNET 1 /* TCP/IP telnet */ ! 18: #define NP_VTP 2 /* ISO Virtual Terminal Protocol */ ! 19: #define NP_X3 3 /* CCITT X.3 */ ! 20: #define NP_X28 4 /* CCITT X.28 */ ! 21: #define NP_X29 5 /* CCITT X.28 */ ! 22: #define NP_CTERM 20 /* DEC CTERM */ ! 23: #define NP_LAT 21 /* DEC LAT */ ! 24: /* others here... */ ! 25: ! 26: /* Basic network function prototypes, common to all. */ ! 27: ! 28: _PROTOTYP( int netopen, (char *, int *, int) ); ! 29: _PROTOTYP( int netclos, (void) ); ! 30: _PROTOTYP( int netflui, (void) ); ! 31: _PROTOTYP( int nettchk, (void) ); ! 32: _PROTOTYP( int netbreak, (void) ); ! 33: _PROTOTYP( int netinc, (int) ); ! 34: _PROTOTYP( int nettol, (char *, int) ); ! 35: _PROTOTYP( int nettoc, (char) ); ! 36: ! 37: /* ! 38: SunLink X.25 support by Marcello Frutig, Catholic University, ! 39: Rio de Janeiro, Brazil, 1990. ! 40: ! 41: Maybe this can be adapted to VAX PSI and other X.25 products too. ! 42: */ ! 43: #ifndef SUNOS4 /* Only valid for SUNOS4 */ ! 44: #ifdef SUNX25 ! 45: #undef SUNX25 ! 46: #endif /* SUNX25 */ ! 47: #endif /* SUNOS4 */ ! 48: ! 49: #ifdef SUNX25 ! 50: ! 51: #ifndef NETCONN /* SUNX25 implies NETCONN */ ! 52: #define NETCONN ! 53: #endif /* NETCONN */ ! 54: ! 55: #define MAXPADPARMS 18 /* Number of PAD parameters */ ! 56: #define MAXCUDATA 12 /* Max length of X.25 call user data */ ! 57: #define X29PID 1 /* X.29 protocol ID */ ! 58: #define X29PIDLEN 4 /* X.29 protocol ID length */ ! 59: ! 60: #define X29_SET_PARMS 2 ! 61: #define X29_READ_PARMS 4 ! 62: #define X29_SET_AND_READ_PARMS 6 ! 63: #define X29_INVITATION_TO_CLEAR 1 ! 64: #define X29_PARAMETER_INDICATION 0 ! 65: #define X29_INDICATION_OF_BREAK 3 ! 66: #define X29_ERROR 5 ! 67: ! 68: #define INVALID_PAD_PARM 1 ! 69: ! 70: #define PAD_BREAK_CHARACTER 0 ! 71: ! 72: #define PAD_ESCAPE 1 ! 73: #define PAD_ECHO 2 ! 74: #define PAD_DATA_FORWARD_CHAR 3 ! 75: #define PAD_DATA_FORWARD_TIMEOUT 4 ! 76: #define PAD_FLOW_CONTROL_BY_PAD 5 ! 77: #define PAD_SUPPRESSION_OF_SIGNALS 6 ! 78: #define PAD_BREAK_ACTION 7 ! 79: #define PAD_SUPPRESSION_OF_DATA 8 ! 80: #define PAD_PADDING_AFTER_CR 9 ! 81: #define PAD_LINE_FOLDING 10 ! 82: #define PAD_LINE_SPEED 11 ! 83: #define PAD_FLOW_CONTROL_BY_USER 12 ! 84: #define PAD_LF_AFTER_CR 13 ! 85: #define PAD_PADDING_AFTER_LF 14 ! 86: #define PAD_EDITING 15 ! 87: #define PAD_CHAR_DELETE_CHAR 16 ! 88: #define PAD_BUFFER_DELETE_CHAR 17 ! 89: #define PAD_BUFFER_DISPLAY_CHAR 18 ! 90: ! 91: #define MAXIX25 MAX_USER_DATA*7 ! 92: #define MAXOX25 MAX_USER_DATA ! 93: ! 94: #include <sys/ioctl.h> /* X.25 includes */ ! 95: #include <sys/param.h> ! 96: #include <sys/systm.h> ! 97: #include <sys/mbuf.h> ! 98: #include <sys/socket.h> ! 99: #include <sys/protosw.h> ! 100: #include <sys/domain.h> ! 101: #include <sys/socketvar.h> ! 102: #include <net/if.h> ! 103: #include <sundev/syncstat.h> ! 104: #include <netx25/x25_pk.h> ! 105: #include <netx25/x25_ctl.h> ! 106: #include <netx25/x25_ioctl.h> ! 107: ! 108: /* C-Kermit X.3 / X.25 / X.29 / X.121 support functions */ ! 109: ! 110: _PROTOTYP( VOID shopad, (void) ); ! 111: _PROTOTYP( VOID initpad, (void) ); ! 112: _PROTOTYP( VOID setpad, (CHAR *, int) ); ! 113: _PROTOTYP( VOID readpad, (CHAR *, int, CHAR *) ); ! 114: _PROTOTYP( int qbitpkt, (CHAR *, int) ); ! 115: _PROTOTYP( VOID setqbit, (void) ); ! 116: _PROTOTYP( VOID resetqbit, (void) ); ! 117: _PROTOTYP( VOID breakact, (void) ); ! 118: _PROTOTYP( int pkx121, (char *, CHAR *) ); ! 119: _PROTOTYP( VOID x25oobh, (void) ); ! 120: _PROTOTYP( int x25diag, (void) ); ! 121: _PROTOTYP( int x25intr, (char) ); ! 122: _PROTOTYP( int x25reset, (char, char) ); ! 123: _PROTOTYP( int x25clear, (void) ); ! 124: _PROTOTYP( int x25stat, (void) ); ! 125: _PROTOTYP( int x25in, (int, CHAR *) ); ! 126: _PROTOTYP( int x25inl, (CHAR *, int, int, CHAR) ); ! 127: ! 128: #endif /* SUNX25 */ ! 129: ! 130: /* DEC TCP/IP for (Open)VMS, previously known as UCX */ ! 131: ! 132: #ifdef DEC_TCPIP /* DEC_TCPIP implies TCPSOCKET */ ! 133: #ifndef TCPSOCKET ! 134: #define TCPSOCKET ! 135: #endif /* TCPSOCKET */ ! 136: #ifndef VMSTCPIP ! 137: #define VMSTCPIP ! 138: #endif /* VMSTCPIP */ ! 139: #endif /* DEC_TCPIP */ ! 140: ! 141: /* TGV/SRI MultiNet, TCP/IP for VAX/VMS */ ! 142: ! 143: #ifdef MULTINET /* MULTINET implies TCPSOCKET */ ! 144: #ifndef TCPSOCKET ! 145: #define TCPSOCKET ! 146: #endif /* TCPSOCKET */ ! 147: #ifndef VMSTCPIP ! 148: #define VMSTCPIP ! 149: #endif /* VMSTCPIP */ ! 150: #ifndef TGVORWIN /* MULTINET and WINTCP */ ! 151: #define TGVORWIN /* share a lot of code... */ ! 152: #endif /* TGVORWIN */ ! 153: #endif /* MULTINET */ ! 154: ! 155: /* Wollongong TCP/IP for VAX/VMS */ ! 156: ! 157: #ifdef WINTCP /* WINTCP implies TCPSOCKET */ ! 158: #ifndef TCPSOCKET ! 159: #define TCPSOCKET ! 160: #endif /* TCPSOCKET */ ! 161: #ifndef VMSTCPIP ! 162: #define VMSTCPIP ! 163: #endif /* VMSTCPIP */ ! 164: #ifndef TGVORWIN /* WINTCP and MULTINET */ ! 165: #define TGVORWIN /* share a lot of code... */ ! 166: #endif /* TGVORWIN */ ! 167: #endif /* WINTCP */ ! 168: ! 169: /* Wollongong TCP/IP for AT&T Sys V */ ! 170: ! 171: #ifdef WOLLONGONG /* WOLLONGONG implies TCPSOCKET */ ! 172: #ifndef TCPSOCKET /* Don't confuse WOLLONGONG */ ! 173: #define TCPSOCKET /* (which is for UNIX) with */ ! 174: #endif /* TCPSOCKET */ /* WINTCP, which is for VMS! */ ! 175: #endif /* WOLLONGONG */ ! 176: ! 177: #ifdef EXCELAN /* EXCELAN implies TCPSOCKET */ ! 178: #ifndef TCPSOCKET ! 179: #define TCPSOCKET ! 180: #endif /* TCPSOCKET */ ! 181: #endif /* EXCELAN */ ! 182: ! 183: #ifdef INTERLAN /* INTERLAN implies TCPSOCKET */ ! 184: #ifndef TCPSOCKET ! 185: #define TCPSOCKET ! 186: #endif /* TCPSOCKET */ ! 187: #endif /* INTERLAN */ ! 188: ! 189: /* Telnet protocol */ ! 190: ! 191: #ifdef TCPSOCKET /* TCPSOCKET implies TNCODE */ ! 192: #ifndef TNCODE /* Which means... */ ! 193: #define TNCODE /* Compile in telnet code */ ! 194: #endif /* TNCODE */ ! 195: #endif /* TCPSOCKET */ ! 196: ! 197: #ifdef SUNX25 /* SUNX25 implies TCPSOCKET */ ! 198: #ifndef TCPSOCKET /* But doesn't imply TNCODE */ ! 199: #define TCPSOCKET ! 200: #endif /* TCPSOCKET */ ! 201: #endif /* SUNX25 */ ! 202: ! 203: /* This is the TCPSOCKET section... */ ! 204: ! 205: #ifdef TCPSOCKET ! 206: ! 207: #ifndef NETCONN /* TCPSOCKET implies NETCONN */ ! 208: #define NETCONN ! 209: #endif /* NETCONN */ ! 210: ! 211: /* BSD sockets library header files */ ! 212: ! 213: #ifdef UNIX /* UNIX section */ ! 214: ! 215: #ifdef INTERLAN /* Racal-Interlan TCP/IP */ ! 216: #include <interlan/socket.h> ! 217: #include <interlan/il_types.h> ! 218: #include <interlan/telnet.h> ! 219: #include <interlan/il_errno.h> ! 220: #include <interlan/in.h> ! 221: #include <interlan/telnet.h> ! 222: #else /* Normal BSD TCP/IP library */ ! 223: #ifndef HPUX ! 224: #include <arpa/telnet.h> ! 225: #endif /* HPUX */ ! 226: #include <sys/socket.h> ! 227: #ifdef WOLLONGONG ! 228: #include <sys/in.h> ! 229: #else ! 230: #include <netinet/in.h> ! 231: #endif /* WOLLONGONG */ ! 232: #endif /* INTERLAN */ ! 233: ! 234: #ifndef EXCELAN ! 235: #include <netdb.h> ! 236: #ifndef INTERLAN ! 237: #ifdef WOLLONGONG ! 238: #define minor /* Do not include <sys/macros.h> */ ! 239: #include <sys/inet.h> ! 240: #else ! 241: #ifndef OXOS ! 242: #ifndef HPUX ! 243: #include <arpa/inet.h> ! 244: #endif /* HPUX */ ! 245: #else /* OXOS */ ! 246: /* In too many releases of X/OS, <arpa/inet.h> declares inet_addr() as ! 247: * ``struct in_addr''. This is definitively wrong, and could cause ! 248: * core dumps. Instead of including that bad file, inet_addr() is ! 249: * correctly declared here. Of course, all the declarations done there ! 250: * has been copied here. ! 251: */ ! 252: unsigned long inet_addr(); ! 253: char *inet_ntoa(); ! 254: struct in_addr inet_makeaddr(); ! 255: unsigned long inet_network(); ! 256: #endif /* OXOS */ ! 257: #endif /* WOLLONGONG */ ! 258: #endif /* INTERLAN */ ! 259: #endif /* EXCELAN */ ! 260: ! 261: #ifdef EXCELAN /* Excelan TCP/IP */ ! 262: #include <ex_errno.h> ! 263: #endif /* EXCELAN */ ! 264: ! 265: #ifdef I386IX /* Interactive Sys V R3 network. */ ! 266: /* #define TELOPTS */ /* This might need defining. */ ! 267: #define ORG_NLONG ENAMETOOLONG /* Resolve conflicting symbols */ ! 268: #undef ENAMETOOLONG /* in <errno.h> and <net/errno.h> */ ! 269: #define ORG_NEMPTY ENOTEMPTY ! 270: #undef ENOTEMPTY ! 271: #include <net/errno.h> ! 272: #undef ENAMETOOLONG ! 273: #define ENAMETOOLONG ORG_NLONG ! 274: #undef ENOTEMPTY ! 275: #define ENOTEMPTY ORG_NEMPTY ! 276: #endif /* I386IX */ ! 277: /* ! 278: Data type of the inet_addr() function... ! 279: We define INADDRX if it is of type struct inaddr. ! 280: If it is undefined, unsigned long is assumed. ! 281: Look at <arpa/inet.h> to find out. The following known cases are ! 282: handled here. Other systems that need it can be added here, or else ! 283: -DINADDRX can be included in the CFLAGS on the cc command line. ! 284: */ ! 285: #ifdef DGUX540 /* Data General UX 5.40 */ ! 286: #define INADDRX ! 287: #endif /* DGUX540 */ ! 288: #ifdef DU2 /* DEC Ultrix 2.0 */ ! 289: #define INADDRX ! 290: #endif /* DU2 */ ! 291: ! 292: #else /* Not UNIX */ ! 293: ! 294: #ifdef VMS /* VAX/VMS section */ ! 295: ! 296: #ifdef WINTCP /* TWG WIN/TCP for VMS */ ! 297: #include <errno.h> ! 298: #include "twg$tcp:[netdist.include.sys]types.h" ! 299: #include "twg$tcp:[netdist.include.sys]socket.h" ! 300: #include "twg$tcp:[netdist.include]netdb.h" ! 301: #include "twg$tcp:[netdist.include.sys]domain.h" ! 302: #include "twg$tcp:[netdist.include.sys]protosw.h" ! 303: #include "twg$tcp:[netdist.include.netinet]in.h" ! 304: #include "twg$tcp:[netdist.include.sys]ioctl.h" ! 305: #endif /* WINTCP */ ! 306: ! 307: #ifdef MULTINET /* TGV MultiNet */ ! 308: #include "multinet_root:[multinet.include]errno.h" ! 309: #include "multinet_root:[multinet.include.sys]types.h" ! 310: #include "multinet_root:[multinet.include.sys]socket.h" ! 311: #include "multinet_root:[multinet.include]netdb.h" ! 312: #include "multinet_root:[multinet.include.netinet]in.h" ! 313: #include "multinet_root:[multinet.include.sys]ioctl.h" ! 314: #endif /* MULTINET */ ! 315: ! 316: #ifdef DEC_TCPIP ! 317: #include <in.h> ! 318: #include <netdb.h> ! 319: #include <socket.h> ! 320: #include "ckvioc.h" ! 321: #define socket_errno errno ! 322: #define bzero(s,n) memset(s,0,n) ! 323: #define bcopy(h,a,l) memmove(a,h,l) ! 324: #define socket_read read ! 325: #define socket_write write ! 326: #define socket_ioctl ioctl ! 327: #define socket_close close ! 328: #endif /* DEC_TCPIP */ ! 329: ! 330: #endif /* VMS */ ! 331: #endif /* UNIX */ ! 332: #endif /* TCPSOCKET */ ! 333: ! 334: #ifdef TNCODE /* If we're compiling telnet code... */ ! 335: /* ! 336: Make sure telnet symbols are defined; can't rely on library header files ! 337: for any of them. ! 338: */ ! 339: #ifndef IAC /* First the telnet commands */ ! 340: #define IAC 255 ! 341: #endif /* IAC */ ! 342: #ifndef DONT ! 343: #define DONT 254 ! 344: #endif /* DONT */ ! 345: #ifndef DO ! 346: #define DO 253 ! 347: #endif /* DO */ ! 348: #ifndef WONT ! 349: #define WONT 252 ! 350: #endif /* WONT */ ! 351: #ifndef WILL ! 352: #define WILL 251 ! 353: #endif /* WILL */ ! 354: #ifndef SB ! 355: #define SB 250 ! 356: #endif /* SB */ ! 357: #ifndef BREAK ! 358: #define BREAK 243 ! 359: #endif /* BREAK */ ! 360: #ifndef SE ! 361: #define SE 240 ! 362: #endif /* SE */ ! 363: ! 364: #ifndef TELOPT_ECHO /* Then the options */ ! 365: #define TELOPT_ECHO 1 ! 366: #endif /* TELOPT_ECHO */ ! 367: #ifndef TELOPT_SGA ! 368: #define TELOPT_SGA 3 ! 369: #endif /* TELOPT_SGA */ ! 370: #ifndef TELOPT_STATUS ! 371: #define TELOPT_STATUS 5 ! 372: #endif /* TELOPT_STATUS */ ! 373: #ifndef TELOPT_TTYPE ! 374: #define TELOPT_TTYPE 24 ! 375: #endif /* TELOPT_TTYPE */ ! 376: #ifndef NTELOPTS ! 377: #define NTELOPTS 24 ! 378: #endif /* NTELOPTS */ ! 379: ! 380: /* Telnet protocol functions defined in C-Kermit */ ! 381: ! 382: _PROTOTYP( int tn_ini, (void) ); /* Telnet protocol support */ ! 383: _PROTOTYP( int tn_sopt, (int, int) ); ! 384: _PROTOTYP( int tn_doop, (CHAR, int, int (*)(int) ) ); ! 385: _PROTOTYP( int tn_sttyp, (void) ); ! 386: _PROTOTYP( int tnsndbrk, (void) ); ! 387: ! 388: #endif /* TNCODE */ ! 389: ! 390: #endif /* CKCNET_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.