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; };