83 lines · 1.3 KB · C
RawDownload
/*  * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ typedef struct VtAuth VtAuth; /* op codes */enum {	VtRError = 1,	VtQPing,	VtRPing,	VtQHello,	VtRHello,	VtQGoodbye,	VtRGoodbye,	/* not used */	VtQAuth0,	VtRAuth0,	VtQAuth1,	VtRAuth1,	VtQRead,	VtRRead,	VtQWrite,	VtRWrite,	VtQSync,	VtRSync, 	VtMaxOp}; /* connection state */enum {	VtStateAlloc,	VtStateConnected,	VtStateClosed,}; /* auth state */enum {	VtAuthHello,	VtAuth0,	VtAuth1,	VtAuthOK,	VtAuthFailed,}; struct VtAuth {	int state;	uchar client[VtScoreSize];	uchar sever[VtScoreSize];}; struct VtSession {	VtLock *lk;	VtServerVtbl *vtbl;	/* == nil means client side */	int cstate;		/* connection state */	int fd;	char fderror[ERRMAX]; 	VtAuth auth; 	VtSha1 *inHash;	VtLock *inLock;	Packet *part;		/* partial packet */ 	VtSha1 *outHash;	VtLock *outLock; 	int debug;	int version;	int ref;	char *uid;	char *sid;	int cryptoStrength;	int compression;	int crypto;	int codec;};