// // $Id: novell.h 1.1 1992/08/11 21:37:15 rthomas Exp $ // // The Press-Enterprise Co. // 3512 Fourteenth Street // Riverside, California 92501-3878 // (c) Copyright 1992 // All rights reserved. // // Author: Randolph Thomas // // $Log: novell.h $ // Revision 1.1 1992/08/11 21:37:15 rthomas // Initial revision // // typedef unsigned char BYTE; typedef unsigned int WORD; typedef unsigned long LONG; #pragma pack(1) struct E3h13hReq // Get Internet Address { WORD RequestLength; BYTE Function; BYTE Connection; }; struct E3h13hRep { WORD ReplyLength; BYTE NetworkNumber[4]; BYTE NodeAddress[6]; BYTE SocketNumber[2]; }; struct E3h16hReq // Get Connection Information { WORD RequestLength; BYTE Function; BYTE Connection; }; struct E3h16hRep { WORD ReplyLength; LONG ObjectID; WORD ObjectType; BYTE ObjectName[48]; BYTE LoginTime[7]; }; struct E3h3DhReq // Read Property Value { WORD RequestLength; BYTE Function; WORD ObjectType; BYTE ObjectNameLength; BYTE ObjectName[48]; BYTE SegmentNumber; BYTE PropertyNameLength; BYTE PropertyName[15]; }; struct E3h3DhRep { WORD ReplyLength; BYTE PropertyValue[128]; BYTE MoreSegments; BYTE PropertyFlags; }; struct E1h00hReq // Send Broadcast Message { WORD RequestLength; BYTE Function; BYTE ConnectionCount; BYTE ConnectionList[100]; BYTE MessageLength; BYTE Message[55]; }; struct E1h00hRep { WORD ReplyLength; BYTE ConnectionCount; BYTE ResultList[100]; }; struct E1h01hReq // Get Broadcast Message { WORD RequestLength; BYTE Function; }; struct E1h01hRep { WORD ReplyLength; BYTE MessageLength; BYTE Message[55]; }; struct E1h04hReq // Send Personal Message { WORD RequestLength; BYTE Function; BYTE ConnectionCount; BYTE ConnectionList[100]; BYTE MessageLength; BYTE Message[126]; }; struct E1h04hRep { WORD ReplyLength; BYTE ConnectionCount; BYTE ResultList[100]; }; struct E1h05hReq // Get Personal Message { WORD RequestLength; BYTE Function; }; struct E1h05hRep { WORD ReplyLength; BYTE SourceConnection; // connection number of the sending station BYTE MessageLength; BYTE Message[126]; }; struct E1h06hReq // Open Message Pipe { WORD RequestLength; BYTE Function; BYTE ConnectionCount; BYTE ConnectionList[100]; }; struct E1h06hRep { WORD ReplyLength; BYTE ConnectionCount; BYTE ResultList[100]; }; struct E1h07hReq // Close Message Pipe { WORD RequestLength; BYTE Function; BYTE ConnectionCount; BYTE ConnectionList[100]; }; struct E1h07hRep { WORD ReplyLength; BYTE ConnectionCount; BYTE ResultList[100]; }; struct E1h08hReq // Check Pipe Status { WORD RequestLength; BYTE Function; BYTE ConnectionCount; BYTE ConnectionList[100]; }; struct E1h08hRep { WORD ReplyLength; BYTE ConnectionCount; BYTE PipeStatusList[100]; }; struct E1h09hReq // Broadcast To Console { WORD RequestLength; BYTE Function; BYTE MessageLength; BYTE Message[60]; }; struct E1h09hRep { WORD nothing; }; struct E1h0DhReq // Log Network Message { WORD RequestLength; BYTE Function; BYTE MessageLength; BYTE Message[80]; }; struct E1h0DhRep { WORD nothing; }; struct IPXpacket { WORD Checksum; WORD Length; BYTE TransportControl; BYTE PacketType; BYTE DestinationNetwork[4]; BYTE DestinationNode[6]; BYTE DestinationSocket[2]; BYTE SourceNetwork[4]; BYTE SourceNode[6]; BYTE SourceSocket[2]; BYTE Data[546]; }; struct SPXpacket { WORD Checksum; WORD Length; BYTE TransportControl; BYTE PacketType; BYTE DestinationNetwork[4]; BYTE DestinationNode[6]; BYTE DestinationSocket[2]; BYTE SourceNetwork[4]; BYTE SourceNode[6]; BYTE SourceSocket[2]; BYTE ConnectionControl; BYTE DataStreamType; WORD SourceConnectID; WORD DestConnectionID; WORD AcknowledgeNumber; WORD AllocationNumber; BYTE Data[534]; }; struct ECB { LONG LinkAddress; LONG ESRAddress; BYTE InUseFlag; BYTE CompletionCode; WORD SocketNumber; LONG IPXWorkspace; BYTE DriverWorkspace[12]; BYTE ImmediateAddress[6]; WORD FragmentCount; void __far *FragmentAddress1; WORD FragmentSize1; void __far *FragmentAddress2; WORD FragmentSize2; }; struct SPXConnectionInfo { BYTE ConnectionState; BYTE WatchdogIsOn; WORD LocalConnectionID; WORD RemoteConnectionID; WORD SequenceNumber; WORD LocalAcknowledgeNumber; WORD LocalAllocationNumber; WORD RemoteAcknowledgeNumber; WORD RemoteAllocationNumber; BYTE LocalSocket[2]; BYTE ImmediateAddress[6]; BYTE RemoteNetwork[4]; WORD RetransmissionCount; WORD EstimatedRoundtripDelay; WORD RetransmittedPackets; WORD SuppressedPackets; }; #pragma pack() E3h16hRep *GetConnectionInformation( int ); E3h13hRep *GetInternetAddress( int ); char *ReadPropertyValue(E3h16hRep *); WORD GetConnectionNumber( void ); int GetPrimaryConnectionID( void ); void SetPrimaryConnectionID( int ); int GetPreferredConnectionID( void ); void SetPreferredConnectionID( int ); char _far *GetFileServerNameTable( void ); long SwitchEndian(long); void SwitchToServer(char *); int SendBroadcastMessage( char *, WORD *, BYTE *, WORD ); int GetBroadcastMessage( char * ); int SendPersonalMessage( char *, WORD *, BYTE *, WORD ); int GetPersonalMessage( char *, BYTE); int OpenMessagePipe( WORD *, BYTE *, WORD); int CloseMessagePipe( WORD *, BYTE *, WORD); int CheckPipeStatus( WORD *, BYTE *, WORD); int BroadcastToConsole( char *); int LogNetworkMessage( char *); extern "C" { int GetConnectionInformation( WORD connectionNumber, char *objectName, WORD *objectType, long *objectID, BYTE *loginTime ); int IPXInitialize( void ); int IPXOpenSocket( WORD *socketNumber, BYTE socketType ); void IPXCloseSocket( WORD socketNumber ); void IPXSendPacket( ECB *eventControlBlock ); int IPXListenForPacket( ECB *eventControlBlock ); WORD IPXGetIntervalMarker( void ); void IPXGetInternetworkAddress( BYTE *networkAddress ); void IPXRelinquishControl( void ); BYTE SPXInitialize( BYTE *majorRevisionNumber, BYTE *minorRevisionNumber, WORD *maxConnections, WORD *availableConnections ); int SPXEstablishConnection( BYTE retryCount, BYTE watchDog, WORD *connectionID, ECB *eventControlBlock ); void SPXListenForConnection( BYTE retryCount, BYTE watchDog, ECB *eventControlBlock ); int SPXTerminateConnection( WORD connectionIDNumber, ECB *eventControlBlock ); void SPXAbortConnection( WORD connectionIDNumber ); int SPXGetConnectionStatus( WORD connectionIDNumber, SPXConnectionInfo *connectionInfo ); void SPXSendSequencedPacket( WORD connectionIDNumber, ECB *eventControlBlock ); void SPXListenForSequencedPacket( ECB *eventControlBlock ); }