diff options
Diffstat (limited to 'src/auth/auth-request-handler.h')
-rw-r--r-- | src/auth/auth-request-handler.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/auth/auth-request-handler.h b/src/auth/auth-request-handler.h new file mode 100644 index 0000000..ceba935 --- /dev/null +++ b/src/auth/auth-request-handler.h @@ -0,0 +1,69 @@ +#ifndef AUTH_REQUEST_HANDLER_H +#define AUTH_REQUEST_HANDLER_H + +struct auth_request; +struct auth_client_connection; +struct auth_master_connection; +struct auth_stream_reply; + +enum auth_client_result { + AUTH_CLIENT_RESULT_CONTINUE = 1, + AUTH_CLIENT_RESULT_SUCCESS, + AUTH_CLIENT_RESULT_FAILURE +}; + +typedef void +auth_client_request_callback_t(const char *reply, struct auth_client_connection *conn); +typedef void +auth_master_request_callback_t(const char *reply, struct auth_master_connection *conn); + +typedef void +auth_request_handler_reply_callback_t(struct auth_request *request, + enum auth_client_result result, + const void *auth_reply, + size_t reply_size); +typedef void +auth_request_handler_reply_continue_callback_t(struct auth_request *request, + const void *reply, + size_t reply_size); + + +struct auth_request_handler * +auth_request_handler_create(bool token_auth, auth_client_request_callback_t *callback, + struct auth_client_connection *conn, + auth_master_request_callback_t *master_callback); + +void auth_request_handler_destroy(struct auth_request_handler **handler); +void auth_request_handler_unref(struct auth_request_handler **handler); +void auth_request_handler_abort_requests(struct auth_request_handler *handler); + +void auth_request_handler_set(struct auth_request_handler *handler, + unsigned int connect_uid, + unsigned int client_pid); + +bool auth_request_handler_auth_begin(struct auth_request_handler *handler, + const char *args); +bool auth_request_handler_auth_continue(struct auth_request_handler *handler, + const char *args); +void auth_request_handler_reply(struct auth_request *request, + enum auth_client_result result, + const void *reply, size_t reply_size); +void auth_request_handler_reply_continue(struct auth_request *request, + const void *reply, size_t reply_size); +void auth_request_handler_abort(struct auth_request *request); + +unsigned int +auth_request_handler_get_request_count(struct auth_request_handler *handler); +bool auth_request_handler_master_request(struct auth_request_handler *handler, + struct auth_master_connection *master, + unsigned int id, unsigned int client_id, + const char *const *params); +void auth_request_handler_cancel_request(struct auth_request_handler *handler, + unsigned int client_id); + +void auth_request_handler_flush_failures(bool flush_all); + +void auth_request_handler_init(void); +void auth_request_handler_deinit(void); + +#endif |