2018-02-09 18:21:40 -07:00
|
|
|
/*
|
2019-04-29 07:21:51 -06:00
|
|
|
* SPDX-License-Identifier: ISC
|
|
|
|
|
*
|
2023-03-10 10:02:36 -07:00
|
|
|
* Copyright (c) 2018, 2021, 2023 Todd C. Miller <Todd.Miller@sudo.ws>
|
2018-02-09 18:21:40 -07:00
|
|
|
*
|
|
|
|
|
* Permission to use, copy, modify, and distribute this software for any
|
|
|
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
|
|
|
* copyright notice and this permission notice appear in all copies.
|
|
|
|
|
*
|
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
|
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
|
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
|
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
|
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
|
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef SUDOERS_LDAP_H
|
|
|
|
|
#define SUDOERS_LDAP_H
|
|
|
|
|
|
2023-03-10 10:02:36 -07:00
|
|
|
#ifndef LDAP_OPT_RESULT_CODE
|
|
|
|
|
# define LDAP_OPT_RESULT_CODE LDAP_OPT_ERROR_NUMBER
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if !defined(LDAP_OPT_NETWORK_TIMEOUT) && defined(LDAP_OPT_CONNECT_TIMEOUT)
|
|
|
|
|
# define LDAP_OPT_NETWORK_TIMEOUT LDAP_OPT_CONNECT_TIMEOUT
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef LDAP_OPT_SUCCESS
|
|
|
|
|
# define LDAP_OPT_SUCCESS LDAP_SUCCESS
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef HAVE_LDAP_SEARCH_EXT_S
|
|
|
|
|
# ifdef HAVE_LDAP_SEARCH_ST
|
|
|
|
|
# define ldap_search_ext_s(a, b, c, d, e, f, g, h, i, j, k) \
|
|
|
|
|
ldap_search_st(a, b, c, d, e, f, i, k)
|
|
|
|
|
# else
|
|
|
|
|
# define ldap_search_ext_s(a, b, c, d, e, f, g, h, i, j, k) \
|
|
|
|
|
ldap_search_s(a, b, c, d, e, f, k)
|
|
|
|
|
# endif
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#define LDAP_FOREACH(var, ld, res) \
|
|
|
|
|
for ((var) = ldap_first_entry((ld), (res)); \
|
|
|
|
|
(var) != NULL; \
|
|
|
|
|
(var) = ldap_next_entry((ld), (var)))
|
|
|
|
|
|
2018-02-11 07:36:08 -07:00
|
|
|
/* Iterators used by sudo_ldap_role_to_priv() to handle bervar ** or char ** */
|
2018-02-10 04:29:43 -07:00
|
|
|
typedef char * (*sudo_ldap_iter_t)(void **);
|
2018-02-09 22:06:56 -07:00
|
|
|
|
2023-03-10 10:05:33 -07:00
|
|
|
/* ldap_innetgr.c */
|
|
|
|
|
int sudo_ldap_innetgr_int(void *v, const char *netgr, const char *host, const char *user, const char *domain);
|
|
|
|
|
|
2018-05-14 09:05:03 -06:00
|
|
|
/* ldap_util.c */
|
2018-02-09 18:21:40 -07:00
|
|
|
bool sudo_ldap_is_negated(char **valp);
|
2023-03-10 10:02:36 -07:00
|
|
|
size_t sudo_ldap_value_len(const char *value);
|
|
|
|
|
size_t sudo_ldap_value_cat(char *dst, const char *src, size_t size);
|
|
|
|
|
char *sudo_ldap_value_dup(const char *src);
|
2018-02-09 18:21:40 -07:00
|
|
|
int sudo_ldap_parse_option(char *optstr, char **varp, char **valp);
|
2018-02-22 09:53:12 -07:00
|
|
|
struct privilege *sudo_ldap_role_to_priv(const char *cn, void *hosts, void *runasusers, void *runasgroups, void *cmnds, void *opts, const char *notbefore, const char *notafter, bool warnings, bool store_options, sudo_ldap_iter_t iter);
|
2021-01-31 05:44:40 -07:00
|
|
|
struct member *sudo_ldap_new_member_all(void);
|
2018-02-09 18:21:40 -07:00
|
|
|
|
|
|
|
|
#endif /* SUDOERS_LDAP_H */
|