255 lines
5.3 KiB
C
255 lines
5.3 KiB
C
/********************************************************************/
|
||
/** Copyright(c) 1998 Microsoft Corporation. **/
|
||
/********************************************************************/
|
||
|
||
//***
|
||
//
|
||
// Filename: rasatcp.h
|
||
|
||
//
|
||
// Description: Contains defines for the rasatcp component. This is really
|
||
// a thin wrapper layer, so not much happens here!
|
||
//
|
||
// History: Feb 26, 1998 Shirish Koti Created original version.
|
||
//
|
||
//***
|
||
#ifndef _RASATCP_H_
|
||
#define _RASATCP_H_
|
||
|
||
|
||
#define ARAP_DEVICE_NAME L"\\Device\\AtalkArap"
|
||
|
||
#define ATCP_SIGNATURE 0x08121994
|
||
|
||
#define ATCP_OPT_APPLETALK_ADDRESS 1
|
||
#define ATCP_OPT_ROUTING_PROTOCOL 2
|
||
#define ATCP_OPT_SUPPRESS_BROADCAST 3
|
||
#define ATCP_OPT_AT_COMPRESSION_PROTOCOL 4
|
||
#define ATCP_OPT_RESERVED 5
|
||
#define ATCP_OPT_SERVER_INFORMATION 6
|
||
#define ATCP_OPT_ZONE_INFORMATION 7
|
||
#define ATCP_OPT_DEFAULT_ROUTER_ADDRESS 8
|
||
|
||
// modify this value appropriately, if Apple ever defines more options
|
||
#define ATCP_OPT_MAX_VAL 9
|
||
|
||
#define ATCP_NOT_REQUESTED 0
|
||
#define ATCP_REQ 1
|
||
#define ATCP_REJ 2
|
||
#define ATCP_NAK 3
|
||
#define ATCP_ACK 4
|
||
|
||
// the only routing option we support is no routing info
|
||
#define ATCP_OPT_ROUTING_NONE 0
|
||
|
||
// we define the Server-Class for "Appletalk PPP Dial-In Server"
|
||
#define ATCP_SERVER_CLASS 0x001
|
||
|
||
// NT5.0: Major version = 05, minor version = 0
|
||
#define ATCP_SERVER_IMPLEMENTATION_ID 0x05000000
|
||
|
||
#define ARAP_BIND_SIZE sizeof(PROTOCOL_CONFIG_INFO)+sizeof(ARAP_BIND_INFO)
|
||
|
||
#define DDPPROTO_RTMPRESPONSEORDATA 1
|
||
|
||
typedef struct _ATCPCONN
|
||
{
|
||
DWORD Signature;
|
||
PVOID AtalkContext; // stack's context
|
||
HPORT hPort;
|
||
HBUNDLE hConnection;
|
||
DWORD Flags;
|
||
NET_ADDR ClientAddr; // what we give to the client
|
||
CRITICAL_SECTION CritSect;
|
||
BOOLEAN SuppressRtmp;
|
||
BOOLEAN SuppressAllBcast;
|
||
BOOLEAN fLineUpDone;
|
||
RASMAN_ROUTEINFO RouteInfo;
|
||
} ATCPCONN, *PATCPCONN;
|
||
|
||
#define ATCP_CONFIG_REQ_DONE 0x1
|
||
|
||
|
||
#if DBG
|
||
|
||
#define ATCP_DBGPRINT(_x) \
|
||
{ \
|
||
DbgPrint("ATCP: "); \
|
||
DbgPrint _x; \
|
||
}
|
||
|
||
#define ATCP_ASSERT(_x) \
|
||
{ \
|
||
if (!(_x)) \
|
||
{ \
|
||
DbgPrint("ATCP: Assertion failed File %s, line %ld",__FILE__, __LINE__); \
|
||
DbgBreakPoint(); \
|
||
} \
|
||
}
|
||
|
||
#define ATCP_DUMP_BYTES(_a,_b,_c) atcpDumpBytes(_a,_b,_c)
|
||
|
||
#else
|
||
#define ATCP_DBGPRINT(_x)
|
||
#define ATCP_ASSERT(_x)
|
||
#define ATCP_DUMP_BYTES(_a,_b,_c)
|
||
#endif
|
||
|
||
|
||
//
|
||
// Global externs
|
||
//
|
||
extern HANDLE AtcpHandle;
|
||
extern CRITICAL_SECTION AtcpCritSect;
|
||
extern NET_ADDR AtcpServerAddress;
|
||
extern NET_ADDR AtcpDefaultRouter;
|
||
extern DWORD AtcpNumConnections;
|
||
extern UCHAR AtcpServerName[NAMESTR_LEN];
|
||
extern UCHAR AtcpZoneName[ZONESTR_LEN];
|
||
|
||
|
||
//
|
||
// prototypes from exports.c
|
||
//
|
||
|
||
DWORD
|
||
AtcpInit(
|
||
IN BOOL fInitialize
|
||
);
|
||
|
||
DWORD
|
||
AtcpBegin(
|
||
OUT PVOID *ppContext,
|
||
IN PVOID pInfo
|
||
);
|
||
|
||
DWORD
|
||
AtcpEnd(
|
||
IN PVOID pContext
|
||
);
|
||
|
||
DWORD
|
||
AtcpReset(
|
||
IN PVOID pContext
|
||
);
|
||
|
||
DWORD
|
||
AtcpThisLayerUp(
|
||
IN PVOID pContext
|
||
);
|
||
|
||
DWORD
|
||
AtcpMakeConfigRequest(
|
||
IN PVOID pContext,
|
||
OUT PPP_CONFIG *pSendBuf,
|
||
IN DWORD cbSendBuf
|
||
);
|
||
|
||
DWORD
|
||
AtcpMakeConfigResult(
|
||
IN PVOID pContext,
|
||
IN PPP_CONFIG *pReceiveBuf,
|
||
OUT PPP_CONFIG *pSendBuf,
|
||
IN DWORD cbSendBuf,
|
||
IN BOOL fRejectNaks
|
||
);
|
||
|
||
DWORD
|
||
AtcpConfigAckReceived(
|
||
IN PVOID pContext,
|
||
IN PPP_CONFIG *pReceiveBuf
|
||
);
|
||
|
||
DWORD
|
||
AtcpConfigNakReceived(
|
||
IN PVOID pContext,
|
||
IN PPP_CONFIG *pReceiveBuf
|
||
);
|
||
|
||
DWORD
|
||
AtcpConfigRejReceived(
|
||
IN PVOID pContext,
|
||
IN PPP_CONFIG *pReceiveBuf
|
||
);
|
||
|
||
DWORD
|
||
AtcpGetNegotiatedInfo(
|
||
IN PVOID pContext,
|
||
OUT PPP_ATCP_RESULT *pAtcpResult
|
||
);
|
||
|
||
DWORD
|
||
AtcpProjectionNotification(
|
||
IN PVOID pContext,
|
||
IN PVOID pProjectionResult
|
||
);
|
||
|
||
|
||
//
|
||
// prototypes from rasatcp.c
|
||
//
|
||
|
||
DWORD
|
||
atcpStartup(
|
||
IN VOID
|
||
);
|
||
|
||
|
||
VOID
|
||
atcpOpenHandle(
|
||
IN VOID
|
||
);
|
||
|
||
|
||
DWORD
|
||
atcpAtkSetup(
|
||
IN PATCPCONN pAtcpConn,
|
||
IN ULONG IoControlCode
|
||
);
|
||
|
||
|
||
VOID
|
||
atcpCloseHandle(
|
||
IN VOID
|
||
);
|
||
|
||
|
||
PATCPCONN
|
||
atcpAllocConnection(
|
||
IN PPPCP_INIT *pPppInit
|
||
);
|
||
|
||
|
||
DWORD
|
||
atcpCloseAtalkConnection(
|
||
IN PATCPCONN pAtcpConn
|
||
);
|
||
|
||
|
||
DWORD
|
||
atcpParseRequest(
|
||
IN PATCPCONN pAtcpConn,
|
||
IN PPP_CONFIG *pReceiveBuf,
|
||
OUT PPP_CONFIG *pSendBuf,
|
||
IN DWORD cbSendBuf,
|
||
OUT BYTE ParseResult[ATCP_OPT_MAX_VAL],
|
||
OUT BOOL *pfRejectingSomething
|
||
);
|
||
|
||
DWORD
|
||
atcpPrepareResponse(
|
||
IN PATCPCONN pAtcpConn,
|
||
OUT PPP_CONFIG *pSendBuf,
|
||
IN DWORD cbSendBuf,
|
||
OUT BYTE ParseResult[ATCP_OPT_MAX_VAL]
|
||
);
|
||
|
||
VOID
|
||
atcpDumpBytes(
|
||
IN PBYTE Str,
|
||
IN PBYTE Packet,
|
||
IN DWORD PacketLen
|
||
);
|
||
|
||
#endif // _RASIPCP_H_
|
||
|