|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T f
Length: 5227 (0x146b)
Types: TextFile
Names: »ftamsbr.h«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape
└─⟦eba4602b1⟧ »./isode-5.0.tar.Z«
└─⟦d3ac74d73⟧
└─⟦this⟧ »isode-5.0/ftam2/ftamsbr.h«
/* ftamsbr.h - include file for FTAM initiator/responder subroutines */
/*
* $Header: /f/osi/ftam2/RCS/ftamsbr.h,v 6.0 89/03/18 23:31:37 mrose Rel $
*
*
* $Log: ftamsbr.h,v $
* Revision 6.0 89/03/18 23:31:37 mrose
* Release 5.0
*
*/
/*
* NOTICE
*
* Acquisition, use, and distribution of this module and related
* materials are subject to the restrictions of a license agreement.
* Consult the Preface in the User's Manual for the full terms of
* this agreement.
*
*/
#include "ftam.h" /* definitions for FS-USERs */
#include "DOCS-types.h"
#ifdef NULL
#undef NULL
#endif
#include <sys/param.h>
#ifndef NULL
#define NULL 0
#endif
#ifndef SYS5
#include <sys/file.h>
#else
#define L_SET 0 /* absolute offset */
#define L_INCR 1 /* relative to current offset */
#define L_XTND 2 /* relative to end of file */
#define F_OK 0 /* file exists */
#define X_OK 1 /* executable by caller */
#define W_OK 2 /* writable by caller */
#define R_OK 4 /* readable by caller */
#if !defined(AIX) && !defined(HPUX)
#include <sys/fcntl.h>
#else
#include <fcntl.h>
#endif
#endif
#include <sys/stat.h>
#include "usr.dirent.h"
#ifndef MAXPATHLEN
#define MAXPATHLEN MAXNAMLEN
#endif
#ifdef MAXBSIZE
#define BLKSIZE MAXBSIZE
#else
#define BLKSIZE BUFSIZ
#endif
/*
Used to calculate the estimated integral FADU size:
FTAM-3 transfers -
An FADU maps onto a single PSDU with the P-DATA service. Because the
DCS is non-empty and the FADU is not in the default context, the
Fully-encoded-data encoding is used. Further, since only one PSDU is
present, the single-ASN1-type option is used. Hence, the outer ASN.1
wrapper consists of
[APPLICATION 1] IMPLICIT
SEQUENCE OF { -- 4 octets for the outer structure
SEQUENCE { -- 4 octets for the one and only PDV-list
-- 3 octets for the PCI
presentation-context-identifier
INTEGER,
presentation-data-values {
-- 4 octets for the single-ASN1-type wrapper
single-ASN1-type[0]
-- 4 octets for the id/length of the FADU
-- n octets for the data in the FADU
ANY
}
}
}
4 + 4 + 3 + 4 + 4 = 19
For each structure, 4 octets is used for non-data encodings
1 octet for the ID
1 octet for an indefinite form
2 octets for the EOC
If the data portion is smaller, then the definite form might be used which
requires 3 octets, not 4.
FTAM-1 transfers -
FADUs are batched to the P-DATA service. This means that the
octet-aligned option is used. Hence, the outer ASN.1 wrapper
consists of
[APPLICATION 1] IMPLICIT
SEQUENCE OF { -- 4 octets for the outer structure
-- this sequence is repeated for each member of the batch
SEQUENCE { -- 4 octets for the one and only PDV-list
-- 3 octets for the PCI
presentation-context-identifier
INTEGER,
presentation-data-values {
-- 4 octets for the octet-aligned wrapper
octet-aligned[1]
-- 4 octets for the id/length of the FADU
-- n octets for the data in the FADU
IMPLICIT OCTET STRING
}
}
}
4 + N*(4 + 3 + 4 + 4)
*/
#define MAGIC_SINGLE 19
#define MAGIC_OCTET1 4
#define MAGIC_OCTET2 15
/* \f
*/
struct vfsmap {
char *vf_entry; /* document entry */
OID vf_oid; /* object identifier */
caddr_t vf_parameter; /* parameter, filled-in by vf_peek */
int vf_flags; /* flags */
#define VF_NULL 0x00
#define VF_OK 0x01 /* negotiated */
#define VF_WARN 0x02 /* warn if loses */
#define VF_PARM 0x04 /* parameter dynamically allocated */
int vf_id; /* presentation context */
int vf_mode; /* st.st_mode & S_IFMT bits */
IFP vf_peek; /* sees if really this type of file */
char vf_stat; /* stat character for 'ls' */
int vf_simplify; /* the next document type to try */
#define VFS_XXX (-1)
int vf_context; /* access context */
/* really should have entire constraint set */
int vf_mandatory; /* parameter required */
IFP vf_check; /* .. check */
IFP vf_encode; /* .. encode */
IFP vf_decode; /* .. decode */
IFP vf_free; /* .. free */
char *vf_text; /* textual description */
};
struct vfsmap *st2vfs ();
#define WATCH(fnx, pe, rw) \
vpdu (ftam_log, fnx, pe, rw ? "F-DATA.INDICATION" : "F-DATA.REQUEST", rw)
int binarypeek (), textpeek (), fdfpeek ();
int binarycheck (), textcheck ();
int encode_DOCS_FTAM__1__Parameters (),
decode_DOCS_FTAM__1__Parameters (),
free_DOCS_FTAM__1__Parameters ();
int encode_DOCS_FTAM__3__Parameters (),
decode_DOCS_FTAM__3__Parameters (),
free_DOCS_FTAM__3__Parameters ();
int encode_DOCS_NBS__9__Parameters (),
decode_DOCS_NBS__9__Parameters (),
free_DOCS_NBS__9__Parameters ();
/* \f
*/
#define FA_RDATTR \
(FA_FILENAME | FA_ACTIONS | FA_CONTENTS | FA_ACCOUNT | FA_DATE_CREATE \
| FA_DATE_MODIFY | FA_DATE_READ | FA_DATE_ATTR | FA_ID_CREATE \
| FA_ID_MODIFY | FA_ID_READ | FA_ID_ATTR | FA_AVAILABILITY \
| FA_FILESIZE)
/* \f
*/
#ifdef BRIDGE
extern int ftp_default;
extern int ftp_directory;
#endif
int de2fd ();
int compath ();