/* * TicketKeeperMenuStateProcotol.h * * Declarations of types for constants used in the Process-to-Process Communication * protocol used between TicketKeeperLib and TicketKeeper. This should not be used * by others * */ #ifndef TicketKeeperMenuStateProcotol_h#define TicketKeeperMenuStateProcotol_h#if PRAGMA_STRUCT_ALIGN	#pragma options align=mac68k#elif PRAGMA_STRUCT_PACKPUSH	#pragma pack(push, 2)#elif PRAGMA_STRUCT_PACK	#pragma pack(2)#endif/* Use these to find the PPC port for TicketKeeper */enum {	mkPort_Creator = FOUR_CHAR_CODE ('MnuK'),	mkPort_Type = FOUR_CHAR_CODE ('appe')};	/* Use these on PPC blocks sent to TK. The block type determines what command you are sending */enum {	mkBlock_Creator = FOUR_CHAR_CODE ('MnuK'),	mkBlock_Type_MenuState = FOUR_CHAR_CODE ('Menu'),	mkBlock_Type_SetDefault	= FOUR_CHAR_CODE ('SDef'),	mkBlock_Type_Logout	= FOUR_CHAR_CODE ('LotP'),	mkBlock_Type_LogoutDefault	= FOUR_CHAR_CODE ('Lout'),	mkBlock_Type_NewLogin	= FOUR_CHAR_CODE ('Logn'),	mkBlock_Type_Renew	= FOUR_CHAR_CODE ('RnwP'),	mkBlock_Type_RenewDefault	= FOUR_CHAR_CODE ('Renw'),	mkBlock_Type_ChangePassword = FOUR_CHAR_CODE ('ChpP'),	mkBlock_Type_ChangePasswordDefault = FOUR_CHAR_CODE ('Chps'),	mkBlock_Type_MoveFloaterStructureRegion	= FOUR_CHAR_CODE ('MFst'),	mkBlock_Type_SetDrawPies	= FOUR_CHAR_CODE ('pie?'),	mkBlock_Type_SetHasCloseBox	= FOUR_CHAR_CODE ('cls?'),	mkBlock_Type_SetIsVisible	= FOUR_CHAR_CODE ('vis?'),	mkBlock_Type_SetIsZoomedOut	= FOUR_CHAR_CODE ('zum?'),	mkBlock_Type_GetIsVisible = FOUR_CHAR_CODE ('?vis'),	mkBlock_Type_GetDrawPies = FOUR_CHAR_CODE ('?pie'),	mkBlock_Type_GetHasCloseBox = FOUR_CHAR_CODE ('?cls'),	mkBlock_Type_GetIsZoomedOut = FOUR_CHAR_CODE ('?zum'),	mkBlock_Type_OpenKerberosControlPanel = FOUR_CHAR_CODE ('OKCP')};/* Version number for menu state command */enum {	mkReply_MenuState_CurrentVersion = 2};/* * MenuState ('Menu') command returns a blob of data in the following format: * (but you should really use the functions in TickerKeeperLib.h to parse it) * * 	[4 Bytes]	Size of the structure * 	[4 Bytes]	Version of the structure (current = 2) * *	[4 Bytes]	Last change time for the default cache information *	[4 Bytes]	Last change time for the cache list information *	[4 Bytes]	1 if default cache has valid tickets, 0 otherwise * 	[4 bytes]	Expiration time of the default cache in Mac epoch *	[PString]	Principal of the default cache *  [PString]	Display principal of the default cache (quoting removed) *  [PString]	Short display principal of the default cache (quoting and default realm removed) * *	[4 Bytes]	Number of caches * *	[4 Bytes]	1 if the first cache is default *	[4 Bytes]	Version of the first cache *	[4 Bytes]	1 if the first cache has valid tickets *	[4 Bytes]	start time of the first cache *	[4 Bytes]	expiration time of the first cache *	[PString]	Principal of the 1st cache *  [PString]	Display principal if the 1st cache (quoting removed) *  [PString]	Short display principal if the 1st cache (quoting and default realm removed) * *	   ... * *	[4 Bytes]	1 if the last cache is default *	[4 Bytes]	Version of the last cache *	[4 Bytes]	1 if the last cache has valid tickets *	[4 Bytes]	start time of the last cache *	[4 Bytes]	expiration time of the last cache *	[PString]	Principal of the last cache *  [PString]	Display principal if the nth cache (quoting removed) *  [PString]	Short display principal if the nth cache (quoting and default realm removed) */struct MenuStateHeader {	UInt32	version;	UInt32	defaultCacheLastChangeTime;	UInt32	cacheListLastChangeTime;	UInt32	defaultCacheHasValidTickets;	UInt32	defaultCacheExpiration;	Str255	defaultCachePrincipal;};struct CacheEntry {	UInt32	isDefault;	UInt32	version;	UInt32	isValid;	UInt32	startTime;	UInt32	expirationTime;	Str255	principal;};struct CacheList {	UInt32		numCaches;	CacheEntry	cacheList;};/* * SetDefaultPrincipal, Logout, and Renew commands take a blob of data which contains the  * new principal to be made default (version + string format) */ struct PrincipalParam {	UInt32		version;	Str255		principal;};struct MoveFloaterStructureRegionParam {	Rect		bounds;};typedef PrincipalParam SetDefaultParam;typedef PrincipalParam LogoutParam;typedef PrincipalParam RenewParam;typedef PrincipalParam ChangePasswordParam;typedef Boolean			SetDrawPiesParam;typedef Boolean			SetHasCloseBoxParam;typedef Boolean			SetIsVisibleParam;typedef Boolean			SetIsZoomedOutParam;#if PRAGMA_STRUCT_ALIGN	#pragma options align=reset#elif PRAGMA_STRUCT_PACKPUSH	#pragma pack(pop)#elif PRAGMA_STRUCT_PACK	#pragma pack()#endif#endif /* TicketKeeperMenuStateProcotol_h */