diff options
author | Steve Langasek <steve.langasek@ubuntu.com> | 2019-01-03 13:00:10 -0800 |
---|---|---|
committer | Steve Langasek <steve.langasek@ubuntu.com> | 2019-01-03 13:00:10 -0800 |
commit | 9d69c7bbb05cc22edce56e751cef5828e652988a (patch) | |
tree | b97c4aa6e6133fa3e319805c5190819020838c32 /Linux-PAM/libpamc/libpamc.h | |
parent | a6f4ab0bebc76acf85cc0244bd21c1036009c28c (diff) | |
parent | d5b06b67bbeeed7c05c0eb2e05d6a972ad050d1c (diff) | |
download | pam-9d69c7bbb05cc22edce56e751cef5828e652988a.tar.gz pam-9d69c7bbb05cc22edce56e751cef5828e652988a.tar.bz2 pam-9d69c7bbb05cc22edce56e751cef5828e652988a.zip |
Merge tag 'upstream/0.99.7.1' into debian
Diffstat (limited to 'Linux-PAM/libpamc/libpamc.h')
-rw-r--r-- | Linux-PAM/libpamc/libpamc.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Linux-PAM/libpamc/libpamc.h b/Linux-PAM/libpamc/libpamc.h new file mode 100644 index 00000000..1c9397c9 --- /dev/null +++ b/Linux-PAM/libpamc/libpamc.h @@ -0,0 +1,63 @@ +/* + * $Id: libpamc.h,v 1.2 2000/11/19 23:54:03 agmorgan Exp $ + * + * Copyright (c) Andrew G. Morgan <morgan@ftp.kernel.org> + * + */ + +#ifndef LIBPAMC_H +#define LIBPAMC_H + +#include <security/pam_client.h> +#include <security/_pam_macros.h> + +#include <sys/stat.h> +#include <unistd.h> +#include <sys/types.h> +#include <dirent.h> +#include <sys/wait.h> +#include <stdlib.h> +#include <errno.h> +#include <ctype.h> + +#define _PAMC_DEFAULT_TOP_FD 10 + +struct pamc_handle_s { + struct pamc_agent_s *current; + struct pamc_agent_s *chain; + struct pamc_blocked_s *blocked_agents; + int max_path; + char **agent_paths; + int combined_status; + int highest_fd_to_close; +}; + +typedef struct pamc_blocked_s { + char *id; /* <NUL> terminated */ + struct pamc_blocked_s *next; +} pamc_blocked_t; + +typedef struct pamc_agent_s { + char *id; + int id_length; + struct pamc_agent_s *next; + int writer; /* write to agent */ + int reader; /* read from agent */ + pid_t pid; /* agent process id */ +} pamc_agent_t; + +/* used to build a tree of unique, sorted agent ids */ + +typedef struct pamc_id_node { + struct pamc_id_node *left, *right; + int child_count; + char *agent_id; +} pamc_id_node_t; + +/* internal function */ +int __pamc_valid_agent_id(int id_length, const char *id); + +#define PAMC_SYSTEM_AGENT_PATH "/lib/pamc:/usr/lib/pamc" +#define PAMC_SYSTEM_AGENT_SEPARATOR ':' + +#endif /* LIBPAMC_H */ |