summaryrefslogblamecommitdiffstats
path: root/private/rpc/common/include/dnetdb.h
blob: 84298932d8ef9c5336a1f6ef0f92705a7029a458 (plain) (tree)
































































































































































































                                                                                  
/*
 * Program DECnet-DOS,  Module dnetdb.h
 * 
 * Copyright (C) 1985,1991 All Rights Reserved, by
 * Digital Equipment Corporation, Maynard, Mass.
 *
 * This software is furnished under a license and may be used and copied
 * only  in  accordance  with  the  terms  of such  license and with the
 * inclusion of the above copyright notice. This software or  any  other
 * copies thereof may not be provided or otherwise made available to any
 * other person. No title to and ownership of  the  software  is  hereby
 * transferred.
 *
 * The information in this software is subject to change without  notice
 * and  should  not be  construed  as  a commitment by Digital Equipment
 * Corporation.
 *
 * Digital assumes no responsibility for the use or  reliability  of its
 * software on equipment which is not supplied by Digital.
 *
 * Program DECnet-DOS, Module dnetdb.h
 *
 * 	Definitions relating to the DECnet-DOS data bases.
 *
 * Networks & Communications Software Engineering
 *
 * IDENT HISTORY:
 *
 *    Rev 1.9   11 Sep 1987 14:44:14   CLBence
 * Added structure objectent for object database access routines.
 *
 * V1.00        01-Jul-85
 *		DECnet-DOS, Version 1.0
 *
 * V1.01    	26-Sep-85
 *  	    	Added flags for node data base
 *              Add PROXY ACCESS data structure
 *
 * V1.02        DECnet-DOS, Version 1.1
 *              Added/changed some commenting.
 *
 * V1.03        DECnet-DOS, Version 1.1 sources, DECnet-DOS, Version 1.2
 *              internal code change - renamed structure dnet_accent 
 *              member names.
 *
 * V2.00        DECnet-DOS, Version 2.0 sources, DECnet-DOS, Version 2.0
 *              Added structure for netbios database dnet_nbent
 *              Added dnet_nodeent.dne_flag  DNET_NODE_EXEC
 */


#ifndef DNETDB_H
#define DNETDB_H

/*
 * Structures returned by DECnet network
 * data base utility functions. 
 *
 * Additional node parameters can be placed after nodeent structure.
 * The format is as follows:
 *	parameter type code = 1 byte
 *	length = 2 bytes
 *	parameter data = variable number of bytes
 */
struct	nodeent {
	char	*n_name;		/* name of node */
	int	n_addrtype;		/* node address type */
	int	n_length;		/* length of address */
	char	*n_addr;		/* address */
	unsigned char	*n_params;	/* node parameters */
};                                          

struct objectent {
	unsigned short	o_flags;	/* object flags */
	unsigned char	o_objnum;	/* object number */
	char		*o_objname;	/* pointer to object name */
	char		*o_defuser;	/* default user to run program under */
	char		*o_file;	/* execute file name */
};


/*
 *  Status flags for database records (1st byte of data record)
 */
#define DNET_NODE_SMB   0x01            /* MS-NET server            */
#define DNET_NODE_DEL   0x02            /* deleted entry            */
#define DNET_NODE_CRY   0x04            /* encrypted entry          */
#define DNET_NODE_LAT   0x08            /* LAT preferred host       */
#define DNET_NODE_EXEC  0x10            /* Executor node            */
#define DNET_OBJ_BATCH  0x10            /* Batch file for SPAWNER   */

/*
 *  Status flags for header record (1st byte of header record)
 */
#define DNET_DB_HEADER    0x82          /* Header file                  */
#define DNET_EXEC_CHANGE  0x01          /* Executor name/addr changed   */
#define DNET_DB_ALIAS     0x08          /* Records index to alias db    */

/*
 *  Status flags for alias record (1st byte of header record)
 */
#define DNET_ALIAS_NODE  0x01           /* Node alias                   */
#define DNET_ALIAS_REM   0x08           /* Remote-adapter-name alias    */

/*
 *  Unused alias pointer
 */
#define DNET_NO_ALIAS   -1L

/*
 * Entry in local database for remote node.
 *  -DECNODE.DAT-
 */
struct dnet_nodeent 
{
    char    dne_delflag;            /* flags */
    unsigned short   dne_nodeadd;   /* Internal format of DECnet node address */
    unsigned char    dne_node_name[7];	/* ASCIZ node name */
    long    dne_aliasindex;	    /* Long index into extended info data base */
};

/*
 * Entry in local database for outgoing access control information.
 *  -DECALIAS.DAT-
 *
 *  *** NOTE: Local node's 'USER NAME' used for outgoing proxy access ***
 *
 */
struct dnet_aliasent 
{
    char    dae_delflag;	/* Delete flag */	
    char    dae_username[40];	/* User name */
    char    dae_userpass[40];	/* Password */
    char    dae_useraccount[40];/* Account */
};

/* 
 *  Entry in local database for incoming access control information and
 *  netbios adapter name access information
 *  -DECACC.DAT-
 */
struct dnet_accent
{
    char dac_status;        /* delete flag   (used DNET_NODE_DEL)       */
    char dac_type;          /* 0=NONE, 1=RO, 2=WO, 3=ALL                */
    char dac_username[40];  /* must be present                          */
    char dac_password[40];  /* if NULL, then password not required      */
};

/*
 * Entry in Remote-adapter-name   -DECREM.DAT-
 */
struct dnet_rement
{
    char           drm_status;          /* status flags         */
    char           drm_adapter[16];     /* network adapter name */
    unsigned short drm_obj_type;        /* DECnet object type   */
    unsigned short drm_nodeadd;         /* DECnet node address  */
    long           drm_aliasindex;      /* Long index to alias data base */
};

/*
 * Entry in DECnet object database for SPAWNER
 *  -DECSPAWN.DAT-
 */
struct dnet_objent
{
    char           dob_status;          /* status flags                    */
    unsigned char  dob_number;          /* Object number                   */
    char           dob_name[16];        /* Object name                     */
    char           dob_path[64];        /* Path name                       */
    char           dob_args[80];        /* Command line arguments          */
};

/*
 *  Header for V2.0 database files
 */
struct dnet_headent
{
    unsigned char    dhd_status;        /* Record status/type           */
    unsigned char    dhd_dbtype;        /* Database type                */
    unsigned short   dhd_fill1;         /* Filler record for V1.x compatability */
    unsigned short   dhd_version;       /* Database version             */
    unsigned short   dhd_recsize;       /* Database record size         */
    unsigned short   dhd_recnum;        /* Number of good records in db */
    unsigned short   dhd_extension;     /* Length of header extension   */
                                        /*   If 0, no extension         */
    unsigned short   dhd_fill2;         /* Left-overs                   */
};

#endif /* DNETDB_H */