This seems odd, but the pdb_samba_dsdb module has exactly this semantics, due to backing on to the idmap.ldb
allocator. This option is added so we can continue to support the mappings written into that database
even when switching winbindd implementations.
Andrew Bartlett
Change-Id: I6b0d7a1463fe28dfd36715af0285911ecc07585c
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
* Changed to 20, pdb_secret calls
* Changed to 21, set/enum_upn_suffixes. AB.
* Changed to 22, idmap control functions
+ * Changed to 23, new idmap control functions
*/
-#define PASSDB_INTERFACE_VERSION 22
+#define PASSDB_INTERFACE_VERSION 23
struct pdb_methods
{
bool (*is_responsible_for_wellknown)(struct pdb_methods *methods);
bool (*is_responsible_for_unix_users)(struct pdb_methods *methods);
bool (*is_responsible_for_unix_groups)(struct pdb_methods *methods);
+ bool (*is_responsible_for_everything_else)(struct pdb_methods *methods);
void *private_data; /* Private data of some kind */
bool pdb_is_responsible_for_wellknown(void);
bool pdb_is_responsible_for_unix_users(void);
bool pdb_is_responsible_for_unix_groups(void);
+bool pdb_is_responsible_for_everything_else(void);
/* The following definitions come from passdb/pdb_util.c */
return true;
}
+ if (pdb_is_responsible_for_everything_else())
+ {
+ return true;
+ }
+
return false;
}
/**
return true;
}
+ if (pdb_is_responsible_for_everything_else())
+ {
+ return true;
+ }
+
return false;
}
return true;
}
+static bool pdb_default_is_responsible_for_everything_else(
+ struct pdb_methods *methods)
+{
+ return false;
+}
+
bool pdb_is_responsible_for_our_sam(void)
{
struct pdb_methods *pdb = pdb_get_methods();
return pdb->is_responsible_for_unix_groups(pdb);
}
+bool pdb_is_responsible_for_everything_else(void)
+{
+ struct pdb_methods *pdb = pdb_get_methods();
+ return pdb->is_responsible_for_everything_else(pdb);
+}
+
/*******************************************************************
secret methods
*******************************************************************/
pdb_default_is_responsible_for_unix_users;
(*methods)->is_responsible_for_unix_groups =
pdb_default_is_responsible_for_unix_groups;
+ (*methods)->is_responsible_for_everything_else =
+ pdb_default_is_responsible_for_everything_else;
return NT_STATUS_OK;
}
return true;
}
+static bool pdb_samba_dsdb_is_responsible_for_everything_else(struct pdb_methods *m)
+{
+ return true;
+}
+
static void pdb_samba_dsdb_init_methods(struct pdb_methods *m)
{
m->name = "samba_dsdb";
m->enum_trusteddoms = pdb_samba_dsdb_enum_trusteddoms;
m->is_responsible_for_wellknown =
pdb_samba_dsdb_is_responsible_for_wellknown;
+ m->is_responsible_for_everything_else =
+ pdb_samba_dsdb_is_responsible_for_everything_else;
}
static void free_private_data(void **vp)
passdb/lookup_sid.h''',
abi_match=private_pdb_match,
abi_directory='passdb/ABI',
- vnum='0.1.0')
+ vnum='0.1.1')
bld.SAMBA3_LIBRARY('smbldaphelper',
source='passdb/pdb_ldap_schema.c passdb/pdb_ldap_util.c',