diff options
author | Gilbert Ramirez <gram@alumni.rice.edu> | 1998-09-23 05:25:12 +0000 |
---|---|---|
committer | Gilbert Ramirez <gram@alumni.rice.edu> | 1998-09-23 05:25:12 +0000 |
commit | ec1936b6f1d1dcc74852a0fc9be557ae6d8523e1 (patch) | |
tree | 5397f85e50e49ff0bc2ca493f67fd6afffcfb940 /packet-ncp.h | |
parent | 03d840f954194264afd2473a3b844d3e678d36f5 (diff) |
I removed the ncp code from packet-ipx.c and created packet-ncp.c. Now that
I've started concentrating on the NetWare modules again, packet-ncp.c is going
to start to grow. I also added IPX RIP to packet-ipx.c. Additionally, I added
the END_OF_FRAME macro to packet.h, which is useful for many dissect()
routines. (and I already modified packet-bootp.c and packet-data.c to use this
macro)
svn path=/trunk/; revision=22
Diffstat (limited to 'packet-ncp.h')
-rw-r--r-- | packet-ncp.h | 323 |
1 files changed, 323 insertions, 0 deletions
diff --git a/packet-ncp.h b/packet-ncp.h new file mode 100644 index 0000000000..92020c97be --- /dev/null +++ b/packet-ncp.h @@ -0,0 +1,323 @@ +/* packet-ncp.h + * Routines for NetWare Core Protocol + * Gilbert Ramirez <gram@verdict.uthscsa.edu> + * + * $Id: packet-ncp.h,v 1.1 1998/09/23 05:25:11 gram Exp $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@unicom.net> + * Copyright 1998 Gerald Combs + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/* + * ncp.h + * + * Copyright (C) 1995 by Volker Lendecke + * + */ + +#define NCP_PTYPE (0x11) +#define NCP_PORT (0x0451) + +#define NCP_ALLOC_SLOT_REQUEST (0x1111) +#define NCP_REQUEST (0x2222) +#define NCP_DEALLOC_SLOT_REQUEST (0x5555) + +struct ncp_request_header { + guint16 type ; + guint8 sequence ; + guint8 conn_low ; + guint8 task ; + guint8 conn_high ; + guint8 function ; + guint8 data[0] ; +}; + +#define NCP_REPLY (0x3333) +#define NCP_POSITIVE_ACK (0x9999) + +struct ncp_reply_header { + guint16 type ; + guint8 sequence ; + guint8 conn_low ; + guint8 task ; + guint8 conn_high ; + guint8 completion_code ; + guint8 connection_state ; + guint8 data[0] ; +}; + + +#define NCP_BINDERY_USER (0x0001) +#define NCP_BINDERY_UGROUP (0x0002) +#define NCP_BINDERY_PQUEUE (0x0003) +#define NCP_BINDERY_FSERVER (0x0004) +#define NCP_BINDERY_NAME_LEN (48) +struct ncp_bindery_object { + guint32 object_id; + guint16 object_type; + guint8 object_name[NCP_BINDERY_NAME_LEN]; + guint8 object_flags; + guint8 object_security; + guint8 object_has_prop; +}; + +struct nw_property { + guint8 value[128]; + guint8 more_flag; + guint8 property_flag; +}; + +struct prop_net_address { + guint32 network ; + guint8 node[IPX_NODE_LEN] ; + guint16 port ; +}; + +#define NCP_VOLNAME_LEN (16) +#define NCP_NUMBER_OF_VOLUMES (64) +struct ncp_volume_info { + guint32 total_blocks; + guint32 free_blocks; + guint32 purgeable_blocks; + guint32 not_yet_purgeable_blocks; + guint32 total_dir_entries; + guint32 available_dir_entries; + guint8 sectors_per_block; + char volume_name[NCP_VOLNAME_LEN+1]; +}; + +struct ncp_filesearch_info { + guint8 volume_number; + guint16 directory_id; + guint16 sequence_no; + guint8 access_rights; +}; + +#define NCP_MAX_FILENAME 14 + +/* these define the attribute byte as seen by NCP */ +#define aRONLY (1L<<0) +#define aHIDDEN (1L<<1) +#define aSYSTEM (1L<<2) +#define aEXECUTE (1L<<3) +#define aDIR (1L<<4) +#define aARCH (1L<<5) + +#define AR_READ (0x01) +#define AR_WRITE (0x02) +#define AR_EXCLUSIVE (0x20) + +#define NCP_FILE_ID_LEN 6 +struct ncp_file_info { + guint8 file_id[NCP_FILE_ID_LEN]; + char file_name[NCP_MAX_FILENAME+1]; + guint8 file_attributes; + guint8 file_mode; + guint32 file_length; + guint16 creation_date; + guint16 access_date; + guint16 update_date; + guint16 update_time; +}; + +/* Defines for Name Spaces */ +#define NW_NS_DOS 0 +#define NW_NS_MAC 1 +#define NW_NS_NFS 2 +#define NW_NS_FTAM 3 +#define NW_NS_OS2 4 + +/* Defines for ReturnInformationMask */ +#define RIM_NAME (0x0001L) +#define RIM_SPACE_ALLOCATED (0x0002L) +#define RIM_ATTRIBUTES (0x0004L) +#define RIM_DATA_SIZE (0x0008L) +#define RIM_TOTAL_SIZE (0x0010L) +#define RIM_EXT_ATTR_INFO (0x0020L) +#define RIM_ARCHIVE (0x0040L) +#define RIM_MODIFY (0x0080L) +#define RIM_CREATION (0x0100L) +#define RIM_OWNING_NAMESPACE (0x0200L) +#define RIM_DIRECTORY (0x0400L) +#define RIM_RIGHTS (0x0800L) +#define RIM_ALL (0x0FFFL) +#define RIM_COMPRESSED_INFO (0x80000000L) + +/* open/create modes */ +#define OC_MODE_OPEN 0x01 +#define OC_MODE_TRUNCATE 0x02 +#define OC_MODE_REPLACE 0x02 +#define OC_MODE_CREATE 0x08 + +/* open/create results */ +#define OC_ACTION_NONE 0x00 +#define OC_ACTION_OPEN 0x01 +#define OC_ACTION_CREATE 0x02 +#define OC_ACTION_TRUNCATE 0x04 +#define OC_ACTION_REPLACE 0x04 + +/* access rights attributes */ +#ifndef AR_READ_ONLY +#define AR_READ_ONLY 0x0001 +#define AR_WRITE_ONLY 0x0002 +#define AR_DENY_READ 0x0004 +#define AR_DENY_WRITE 0x0008 +#define AR_COMPATIBILITY 0x0010 +#define AR_WRITE_THROUGH 0x0040 +#define AR_OPEN_COMPRESSED 0x0100 +#endif + +struct nw_info_struct +{ + guint32 spaceAlloc ; + guint32 attributes ; + guint16 flags ; + guint32 dataStreamSize ; + guint32 totalStreamSize ; + guint16 numberOfStreams ; + guint16 creationTime ; + guint16 creationDate ; + guint32 creatorID ; + guint16 modifyTime ; + guint16 modifyDate ; + guint32 modifierID ; + guint16 lastAccessDate ; + guint16 archiveTime ; + guint16 archiveDate ; + guint32 archiverID ; + guint16 inheritedRightsMask ; + guint32 dirEntNum ; + guint32 DosDirNum ; + guint32 volNumber ; + guint32 EADataSize ; + guint32 EAKeyCount ; + guint32 EAKeySize ; + guint32 NSCreator ; + guint8 nameLen ; + guint8 entryName[256] ; +}; + +/* modify mask - use with MODIFY_DOS_INFO structure */ +#define DM_ATTRIBUTES (0x0002L) +#define DM_CREATE_DATE (0x0004L) +#define DM_CREATE_TIME (0x0008L) +#define DM_CREATOR_ID (0x0010L) +#define DM_ARCHIVE_DATE (0x0020L) +#define DM_ARCHIVE_TIME (0x0040L) +#define DM_ARCHIVER_ID (0x0080L) +#define DM_MODIFY_DATE (0x0100L) +#define DM_MODIFY_TIME (0x0200L) +#define DM_MODIFIER_ID (0x0400L) +#define DM_LAST_ACCESS_DATE (0x0800L) +#define DM_INHERITED_RIGHTS_MASK (0x1000L) +#define DM_MAXIMUM_SPACE (0x2000L) + +struct nw_modify_dos_info +{ + guint32 attributes ; + guint16 creationDate ; + guint16 creationTime ; + guint32 creatorID ; + guint16 modifyDate ; + guint16 modifyTime ; + guint32 modifierID ; + guint16 archiveDate ; + guint16 archiveTime ; + guint32 archiverID ; + guint16 lastAccessDate ; + guint16 inheritanceGrantMask ; + guint16 inheritanceRevokeMask ; + guint32 maximumSpace ; +}; + +struct nw_file_info { + struct nw_info_struct i; + int opened; + int access; + guint32 server_file_handle ; + guint8 open_create_action ; + guint8 file_handle[6] ; +}; + +struct nw_search_sequence { + guint8 volNumber ; + guint32 dirBase ; + guint32 sequence ; +}; + +struct nw_queue_job_entry { + guint16 InUse ; + guint32 prev ; + guint32 next ; + guint32 ClientStation ; + guint32 ClientTask ; + guint32 ClientObjectID ; + guint32 TargetServerID ; + guint8 TargetExecTime[6] ; + guint8 JobEntryTime[6] ; + guint32 JobNumber ; + guint16 JobType ; + guint16 JobPosition ; + guint16 JobControlFlags ; + guint8 FileNameLen ; + char JobFileName[13] ; + guint32 JobFileHandle ; + guint32 ServerStation ; + guint32 ServerTaskNumber ; + guint32 ServerObjectID ; + char JobTextDescription[50] ; + char ClientRecordArea[152] ; +}; + +struct queue_job { + struct nw_queue_job_entry j; + guint8 file_handle[6]; +}; + +#define QJE_OPER_HOLD 0x80 +#define QJE_USER_HOLD 0x40 +#define QJE_ENTRYOPEN 0x20 +#define QJE_SERV_RESTART 0x10 +#define QJE_SERV_AUTO 0x08 + +/* ClientRecordArea for print jobs */ + +#define KEEP_ON 0x0400 +#define NO_FORM_FEED 0x0800 +#define NOTIFICATION 0x1000 +#define DELETE_FILE 0x2000 +#define EXPAND_TABS 0x4000 +#define PRINT_BANNER 0x8000 + +struct print_job_record { + guint8 Version ; + guint8 TabSize ; + guint16 Copies ; + guint16 CtrlFlags ; + guint16 Lines ; + guint16 Rows ; + char FormName[16] ; + guint8 Reserved[6] ; + char BannerName[13] ; + char FnameBanner[13] ; + char FnameHeader[14] ; + char Path[80] ; +}; + + |