|
|
1.1 ! root 1: /* ftamsbr.h - include file for FTAM initiator/responder subroutines */ ! 2: ! 3: /* ! 4: * $Header: /f/osi/ftam2/RCS/ftamsbr.h,v 7.1 90/07/01 21:03:34 mrose Exp $ ! 5: * ! 6: * ! 7: * $Log: ftamsbr.h,v $ ! 8: * Revision 7.1 90/07/01 21:03:34 mrose ! 9: * pepsy ! 10: * ! 11: * Revision 7.0 89/11/23 21:54:39 mrose ! 12: * Release 6.0 ! 13: * ! 14: */ ! 15: ! 16: /* ! 17: * NOTICE ! 18: * ! 19: * Acquisition, use, and distribution of this module and related ! 20: * materials are subject to the restrictions of a license agreement. ! 21: * Consult the Preface in the User's Manual for the full terms of ! 22: * this agreement. ! 23: * ! 24: */ ! 25: ! 26: ! 27: #include "ftam.h" /* definitions for FS-USERs */ ! 28: #include "DOCS-types.h" ! 29: #ifdef NULL ! 30: #undef NULL ! 31: #endif ! 32: #include <sys/param.h> ! 33: #ifndef NULL ! 34: #define NULL 0 ! 35: #endif ! 36: #ifndef SYS5 ! 37: #include <sys/file.h> ! 38: #else ! 39: #define L_SET 0 /* absolute offset */ ! 40: #define L_INCR 1 /* relative to current offset */ ! 41: #define L_XTND 2 /* relative to end of file */ ! 42: ! 43: #define F_OK 0 /* file exists */ ! 44: #define X_OK 1 /* executable by caller */ ! 45: #define W_OK 2 /* writable by caller */ ! 46: #define R_OK 4 /* readable by caller */ ! 47: ! 48: #if !defined(AIX) && !defined(HPUX) && !defined(AUX) ! 49: #include <sys/fcntl.h> ! 50: #else ! 51: #include <fcntl.h> ! 52: #endif ! 53: #endif ! 54: #include <sys/stat.h> ! 55: #include "usr.dirent.h" ! 56: ! 57: ! 58: #ifndef MAXPATHLEN ! 59: #define MAXPATHLEN MAXNAMLEN ! 60: #endif ! 61: ! 62: #ifdef MAXBSIZE ! 63: #define BLKSIZE MAXBSIZE ! 64: #else ! 65: #define BLKSIZE BUFSIZ ! 66: #endif ! 67: ! 68: /* ! 69: Used to calculate the estimated integral FADU size: ! 70: ! 71: ! 72: FTAM-3 transfers - ! 73: ! 74: An FADU maps onto a single PSDU with the P-DATA service. Because the ! 75: DCS is non-empty and the FADU is not in the default context, the ! 76: Fully-encoded-data encoding is used. Further, since only one PSDU is ! 77: present, the single-ASN1-type option is used. Hence, the outer ASN.1 ! 78: wrapper consists of ! 79: ! 80: [APPLICATION 1] IMPLICIT ! 81: SEQUENCE OF { -- 4 octets for the outer structure ! 82: SEQUENCE { -- 4 octets for the one and only PDV-list ! 83: ! 84: -- 3 octets for the PCI ! 85: presentation-context-identifier ! 86: INTEGER, ! 87: ! 88: presentation-data-values { ! 89: -- 4 octets for the single-ASN1-type wrapper ! 90: single-ASN1-type[0] ! 91: -- 4 octets for the id/length of the FADU ! 92: -- n octets for the data in the FADU ! 93: ANY ! 94: } ! 95: } ! 96: } ! 97: ! 98: 4 + 4 + 3 + 4 + 4 = 19 ! 99: ! 100: For each structure, 4 octets is used for non-data encodings ! 101: 1 octet for the ID ! 102: 1 octet for an indefinite form ! 103: 2 octets for the EOC ! 104: If the data portion is smaller, then the definite form might be used which ! 105: requires 3 octets, not 4. ! 106: ! 107: ! 108: FTAM-1 transfers - ! 109: ! 110: FADUs are batched to the P-DATA service. This means that the ! 111: octet-aligned option is used. Hence, the outer ASN.1 wrapper ! 112: consists of ! 113: ! 114: [APPLICATION 1] IMPLICIT ! 115: SEQUENCE OF { -- 4 octets for the outer structure ! 116: ! 117: -- this sequence is repeated for each member of the batch ! 118: ! 119: SEQUENCE { -- 4 octets for the one and only PDV-list ! 120: ! 121: -- 3 octets for the PCI ! 122: presentation-context-identifier ! 123: INTEGER, ! 124: ! 125: presentation-data-values { ! 126: -- 4 octets for the octet-aligned wrapper ! 127: octet-aligned[1] ! 128: -- 4 octets for the id/length of the FADU ! 129: -- n octets for the data in the FADU ! 130: IMPLICIT OCTET STRING ! 131: } ! 132: } ! 133: ! 134: ! 135: } ! 136: ! 137: 4 + N*(4 + 3 + 4 + 4) ! 138: */ ! 139: #define MAGIC_SINGLE 19 ! 140: #define MAGIC_OCTET1 4 ! 141: #define MAGIC_OCTET2 15 ! 142: ! 143: /* */ ! 144: ! 145: struct vfsmap { ! 146: char *vf_entry; /* document entry */ ! 147: OID vf_oid; /* object identifier */ ! 148: caddr_t vf_parameter; /* parameter, filled-in by vf_peek */ ! 149: ! 150: int vf_flags; /* flags */ ! 151: #define VF_NULL 0x00 ! 152: #define VF_OK 0x01 /* negotiated */ ! 153: #define VF_WARN 0x02 /* warn if loses */ ! 154: #define VF_PARM 0x04 /* parameter dynamically allocated */ ! 155: ! 156: int vf_id; /* presentation context */ ! 157: ! 158: int vf_mode; /* st.st_mode & S_IFMT bits */ ! 159: IFP vf_peek; /* sees if really this type of file */ ! 160: char vf_stat; /* stat character for 'ls' */ ! 161: ! 162: int vf_simplify; /* the next document type to try */ ! 163: #define VFS_XXX (-1) ! 164: ! 165: int vf_context; /* access context */ ! 166: /* really should have entire constraint set */ ! 167: ! 168: int vf_mandatory; /* > 0 parameter required ! 169: < 0 parameter optional ! 170: == 0 parameter illegal */ ! 171: IFP vf_check; /* .. check */ ! 172: int vf_number; /* encode/decode index */ ! 173: ! 174: char *vf_text; /* textual description */ ! 175: }; ! 176: ! 177: struct vfsmap *st2vfs (); ! 178: ! 179: ! 180: /* WATCHP is one pepsy people should use as the macro which is ! 181: * not expansion order dependant ! 182: */ ! 183: ! 184: #ifndef DEBUG ! 185: #define WATCH(fnx, pe, rw) ! 186: #define WATCHP(args, pe, rw) ! 187: #else ! 188: #ifdef __STDC__ ! 189: #define WATCHP(args, pe, rw) \ ! 190: pvpdu (ftam_log, print_##args##_P, pe, \ ! 191: rw ? "F-DATA.INDICATION" : "F-DATA.REQUEST", rw) ! 192: #define WATCH(fnx, pe, rw) \ ! 193: pvpdu (ftam_log, fnx/**/_P, pe, \ ! 194: rw ? "F-DATA.INDICATION" : "F-DATA.REQUEST", rw) ! 195: #else ! 196: #define WATCHP(args, pe, rw) \ ! 197: pvpdu (ftam_log, print_/**/args/**/_P, pe, \ ! 198: rw ? "F-DATA.INDICATION" : "F-DATA.REQUEST", rw) ! 199: #define WATCH(fnx, pe, rw) \ ! 200: pvpdu (ftam_log, fnx/**/_P, pe, \ ! 201: rw ? "F-DATA.INDICATION" : "F-DATA.REQUEST", rw) ! 202: #endif ! 203: #endif ! 204: ! 205: ! 206: int binarypeek (), textpeek (), fdfpeek (); ! 207: ! 208: int binarycheck (), textcheck (); ! 209: ! 210: /* */ ! 211: ! 212: #define FA_RDATTR \ ! 213: (FA_FILENAME | FA_ACTIONS | FA_CONTENTS | FA_ACCOUNT | FA_DATE_CREATE \ ! 214: | FA_DATE_MODIFY | FA_DATE_READ | FA_DATE_ATTR | FA_ID_CREATE \ ! 215: | FA_ID_MODIFY | FA_ID_READ | FA_ID_ATTR | FA_AVAILABILITY \ ! 216: | FA_FILESIZE) ! 217: ! 218: /* */ ! 219: ! 220: #ifdef BRIDGE ! 221: extern int ftp_default; ! 222: extern int ftp_directory; ! 223: #endif ! 224: ! 225: int de2fd (); ! 226: ! 227: int compath ();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.