00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef SSS_SUDO_H_
00022 #define SSS_SUDO_H_
00023
00032 #include <stdint.h>
00033 #include <sys/types.h>
00034
00038 #define SSS_SUDO_ERROR_OK 0
00039
00045 struct sss_sudo_attr {
00047 char *name;
00049 char **values;
00050
00055 unsigned int num_values;
00056 };
00057
00062 struct sss_sudo_rule {
00064 unsigned int num_attrs;
00065
00067 struct sss_sudo_attr *attrs;
00068 };
00069
00075 struct sss_sudo_result {
00083 unsigned int num_rules;
00084
00086 struct sss_sudo_rule *rules;
00087 };
00088
00115 int sss_sudo_send_recv(uid_t uid,
00116 const char *username,
00117 const char *domainname,
00118 uint32_t *_error,
00119 struct sss_sudo_result **_result);
00120
00150 int sss_sudo_send_recv_defaults(uid_t uid,
00151 const char *username,
00152 uint32_t *_error,
00153 char **_domainname,
00154 struct sss_sudo_result **_result);
00155
00162 void sss_sudo_free_result(struct sss_sudo_result *result);
00163
00180 int sss_sudo_get_values(struct sss_sudo_rule *e,
00181 const char *attrname,
00182 char ***values);
00183
00190 void sss_sudo_free_values(char **values);
00191
00195 #endif