diff options
Diffstat (limited to '')
-rw-r--r-- | src/auth/auth-master-connection.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/auth/auth-master-connection.h b/src/auth/auth-master-connection.h new file mode 100644 index 0000000..c2a5dd5 --- /dev/null +++ b/src/auth/auth-master-connection.h @@ -0,0 +1,44 @@ +#ifndef AUTH_MASTER_CONNECTION_H +#define AUTH_MASTER_CONNECTION_H + +struct stat; +struct auth_stream_reply; + +struct auth_master_connection { + struct auth_master_connection *prev, *next; + struct auth *auth; + struct event *event; + int refcount; + + struct timeval create_time, handshake_time; + + int fd; + char *path; + struct istream *input; + struct ostream *output; + struct io *io; + + struct master_list_iter_ctx *iter_ctx; + /* If non-zero, allow only USER lookups whose returned uid matches + this uid. Don't allow LIST/PASS lookups. */ + uid_t userdb_restricted_uid; + + bool version_received:1; + bool destroyed:1; + bool userdb_only:1; +}; + +struct auth_master_connection * +auth_master_connection_create(struct auth *auth, int fd, + const char *path, const struct stat *socket_st, + bool userdb_only) ATTR_NULL(4); +void auth_master_connection_destroy(struct auth_master_connection **conn); + +void auth_master_connection_ref(struct auth_master_connection *conn); +void auth_master_connection_unref(struct auth_master_connection **conn); + +void auth_master_request_callback(const char *reply, struct auth_master_connection *conn); + +void auth_master_connections_destroy_all(void); + +#endif |