db-checkpassword.h revision 51821162b1df9a8a9398b8b64ceca410b9cc3092
883N/A#ifndef CHECKPASSWORD_COMMON_H
883N/A#define CHECKPASSWORD_COMMON_H
883N/A
883N/A#include "auth-request.h"
883N/A#include "lib-signals.h"
883N/A#include "buffer.h"
883N/A#include "str.h"
883N/A#include "ioloop.h"
883N/A#include "hash.h"
883N/A#include "env-util.h"
883N/A#include "safe-memset.h"
883N/A#include "child-wait.h"
883N/A
883N/A#include <stdlib.h>
883N/A#include <unistd.h>
883N/A#include <sys/wait.h>
883N/A
883N/A
883N/Astruct chkpw_auth_request {
883N/A int fd_out, fd_in;
883N/A struct io *io_out, *io_in;
883N/A pid_t pid;
883N/A
883N/A string_t *input_buf;
883N/A char *password;
883N/A unsigned int write_pos;
883N/A
struct auth_request *request;
void *callback;
void (*half_finish_callback)();
void (*finish_callback)();
int internal_failure_code;
int exit_status;
unsigned int exited:1;
};
enum checkpassword_sigchld_handler_result {
SIGCHLD_RESULT_UNKNOWN_CHILD = -1,
SIGCHLD_RESULT_DEAD_CHILD = -2,
SIGCHLD_RESULT_UNKNOWN_ERROR = -3,
SIGCHLD_RESULT_OK = 1,
};
void checkpassword_request_free(struct chkpw_auth_request *request);
enum checkpassword_sigchld_handler_result
checkpassword_sigchld_handler(const struct child_wait_status *child_wait_status,
struct chkpw_auth_request *request);
void checkpassword_setup_env(struct auth_request *request);
const char *
checkpassword_get_cmd(struct auth_request *request, const char *args,
const char *checkpassword_reply_path);
void checkpassword_child_input(struct chkpw_auth_request *request);
void checkpassword_child_output(struct chkpw_auth_request *request);
#endif