auth-server-connection.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef AUTH_SERVER_CONNECTION_H
  2. #define AUTH_SERVER_CONNECTION_H
  3. struct auth_server_connection {
  4. pool_t pool;
  5. struct auth_client *client;
  6. int fd;
  7. time_t last_connect;
  8. struct io *io;
  9. struct timeout *to;
  10. struct istream *input;
  11. struct ostream *output;
  12. unsigned int server_pid;
  13. unsigned int connect_uid;
  14. char *cookie;
  15. ARRAY(struct auth_mech_desc) available_auth_mechs;
  16. /* id => request */
  17. HASH_TABLE(void *, struct auth_client_request *) requests;
  18. unsigned int version_received:1;
  19. unsigned int handshake_received:1;
  20. unsigned int has_plain_mech:1;
  21. };
  22. struct auth_server_connection *
  23. auth_server_connection_init(struct auth_client *client);
  24. void auth_server_connection_deinit(struct auth_server_connection **conn);
  25. int auth_server_connection_connect(struct auth_server_connection *conn);
  26. void auth_server_connection_disconnect(struct auth_server_connection *conn,
  27. const char *reason);
  28. unsigned int
  29. auth_server_connection_add_request(struct auth_server_connection *conn,
  30. struct auth_client_request *request);
  31. void auth_server_connection_remove_request(struct auth_server_connection *conn, unsigned int id);
  32. #endif