HEX
Server: LiteSpeed
System: Linux server.searchcove.com 4.18.0-513.24.1.lve.2.el8.x86_64 #1 SMP Fri May 24 12:42:50 UTC 2024 x86_64
User: lurax (1083)
PHP: 8.3.30
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/include/dovecot/auth-request-handler.h
#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);

int auth_request_handler_auth_begin(struct auth_request_handler *handler,
				    const char *const *args);
int auth_request_handler_auth_continue(struct auth_request_handler *handler,
				       const char *const *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