session.h 913 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. typedef struct VtAuth VtAuth;
  2. /* op codes */
  3. enum {
  4. VtRError = 1,
  5. VtQPing,
  6. VtRPing,
  7. VtQHello,
  8. VtRHello,
  9. VtQGoodbye,
  10. VtRGoodbye, /* not used */
  11. VtQAuth0,
  12. VtRAuth0,
  13. VtQAuth1,
  14. VtRAuth1,
  15. VtQRead,
  16. VtRRead,
  17. VtQWrite,
  18. VtRWrite,
  19. VtQSync,
  20. VtRSync,
  21. VtMaxOp
  22. };
  23. /* connection state */
  24. enum {
  25. VtStateAlloc,
  26. VtStateConnected,
  27. VtStateClosed,
  28. };
  29. /* auth state */
  30. enum {
  31. VtAuthHello,
  32. VtAuth0,
  33. VtAuth1,
  34. VtAuthOK,
  35. VtAuthFailed,
  36. };
  37. struct VtAuth {
  38. int state;
  39. uchar client[VtScoreSize];
  40. uchar sever[VtScoreSize];
  41. };
  42. struct VtSession {
  43. VtLock *lk;
  44. VtServerVtbl *vtbl; /* == nil means client side */
  45. int cstate; /* connection state */
  46. int fd;
  47. VtAuth auth;
  48. VtSha1 *inHash;
  49. VtLock *inLock;
  50. Packet *part; /* partial packet */
  51. VtSha1 *outHash;
  52. VtLock *outLock;
  53. int debug;
  54. int version;
  55. int ref;
  56. char *uid;
  57. char *sid;
  58. int cryptoStrength;
  59. int compression;
  60. int crypto;
  61. int codec;
  62. };