summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h40
-rw-r--r--source3/winbindd/idmap_ldap.c4
2 files changed, 25 insertions, 19 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index b5a1bfa56e..b585bee70f 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5840,7 +5840,7 @@ bool lp_winbind_offline_logon(void);
bool lp_winbind_normalize_names(void);
bool lp_winbind_rpc_only(void);
const char **lp_idmap_domains(void);
-const char **lp_idmap_backend(void);
+const char *lp_idmap_backend(void);
char *lp_idmap_alloc_backend(void);
int lp_idmap_cache_time(void);
int lp_idmap_negative_cache_time(void);
@@ -10511,30 +10511,36 @@ char *get_pass( const char *prompt, bool stdin_get);
/* The following definitions come from winbindd/idmap.c */
bool idmap_is_offline(void);
+bool idmap_is_online(void);
NTSTATUS smb_register_idmap(int version, const char *name,
struct idmap_methods *methods);
NTSTATUS smb_register_idmap_alloc(int version, const char *name,
struct idmap_alloc_methods *methods);
-NTSTATUS idmap_close(void);
+void idmap_close(void);
NTSTATUS idmap_init_cache(void);
NTSTATUS idmap_allocate_uid(struct unixid *id);
NTSTATUS idmap_allocate_gid(struct unixid *id);
NTSTATUS idmap_set_uid_hwm(struct unixid *id);
NTSTATUS idmap_set_gid_hwm(struct unixid *id);
-NTSTATUS idmap_unixids_to_sids(struct id_map **ids);
-NTSTATUS idmap_sids_to_unixids(struct id_map **ids);
-NTSTATUS idmap_set_mapping(const struct id_map *id);
-char *idmap_fetch_secret(const char *backend, bool alloc,
- const char *domain, const char *identity);
+NTSTATUS idmap_backends_unixid_to_sid(const char *domname,
+ struct id_map *id);
+NTSTATUS idmap_backends_sid_to_unixid(const char *domname,
+ struct id_map *id);
+NTSTATUS idmap_new_mapping(const struct dom_sid *psid, enum id_type type,
+ struct unixid *pxid);
+NTSTATUS idmap_set_mapping(const struct id_map *map);
/* The following definitions come from winbindd/idmap_cache.c */
-struct idmap_cache_ctx *idmap_cache_init(TALLOC_CTX *memctx);
-NTSTATUS idmap_cache_set(struct idmap_cache_ctx *cache, const struct id_map *id);
-NTSTATUS idmap_cache_set_negative_sid(struct idmap_cache_ctx *cache, const struct id_map *id);
-NTSTATUS idmap_cache_set_negative_id(struct idmap_cache_ctx *cache, const struct id_map *id);
-NTSTATUS idmap_cache_map_sid(struct idmap_cache_ctx *cache, struct id_map *id);
-NTSTATUS idmap_cache_map_id(struct idmap_cache_ctx *cache, struct id_map *id);
+bool idmap_cache_find_sid2uid(const struct dom_sid *sid, uid_t *puid,
+ bool *expired);
+bool idmap_cache_find_uid2sid(uid_t uid, struct dom_sid *sid, bool *expired);
+void idmap_cache_set_sid2uid(const struct dom_sid *sid, uid_t uid);
+bool idmap_cache_find_sid2gid(const struct dom_sid *sid, gid_t *pgid,
+ bool *expired);
+bool idmap_cache_find_gid2sid(gid_t gid, struct dom_sid *sid, bool *expired);
+void idmap_cache_set_sid2gid(const struct dom_sid *sid, gid_t gid);
+
/* The following definitions come from winbindd/idmap_nss.c */
@@ -10552,10 +10558,10 @@ NTSTATUS idmap_tdb_init(void);
/* The following definitions come from winbindd/idmap_util.c */
-NTSTATUS idmap_uid_to_sid(DOM_SID *sid, uid_t uid);
-NTSTATUS idmap_gid_to_sid(DOM_SID *sid, gid_t gid);
-NTSTATUS idmap_sid_to_uid(DOM_SID *sid, uid_t *uid);
-NTSTATUS idmap_sid_to_gid(DOM_SID *sid, gid_t *gid);
+NTSTATUS idmap_uid_to_sid(const char *domname, DOM_SID *sid, uid_t uid);
+NTSTATUS idmap_gid_to_sid(const char *domname, DOM_SID *sid, gid_t gid);
+NTSTATUS idmap_sid_to_uid(const char *dom_name, DOM_SID *sid, uid_t *uid);
+NTSTATUS idmap_sid_to_gid(const char *domname, DOM_SID *sid, gid_t *gid);
/* The following definitions come from winbindd/nss_info.c */
diff --git a/source3/winbindd/idmap_ldap.c b/source3/winbindd/idmap_ldap.c
index 5657cb591e..c86a5023d0 100644
--- a/source3/winbindd/idmap_ldap.c
+++ b/source3/winbindd/idmap_ldap.c
@@ -246,7 +246,6 @@ done:
static NTSTATUS idmap_ldap_alloc_init(const char *params)
{
NTSTATUS ret = NT_STATUS_UNSUCCESSFUL;
- const char *range;
const char *tmp;
uid_t low_uid = 0;
uid_t high_uid = 0;
@@ -1458,12 +1457,13 @@ static struct idmap_alloc_methods idmap_ldap_alloc_methods = {
/* .dump_data = TODO */
};
-NTSTATUS idmap_alloc_ldap_init(void)
+static NTSTATUS idmap_alloc_ldap_init(void)
{
return smb_register_idmap_alloc(SMB_IDMAP_INTERFACE_VERSION, "ldap",
&idmap_ldap_alloc_methods);
}
+NTSTATUS idmap_ldap_init(void);
NTSTATUS idmap_ldap_init(void)
{
NTSTATUS ret;