mirror of
https://github.com/samba-team/samba.git
synced 2025-09-06 17:44:20 +03:00
Update secrets_fetch_domain_guid to generate and store it if it doesn't exist.
Only does it for PDCs.
This commit is contained in:
@@ -142,13 +142,22 @@ BOOL secrets_fetch_domain_guid(char *domain, GUID *guid)
|
|||||||
GUID *dyn_guid;
|
GUID *dyn_guid;
|
||||||
fstring key;
|
fstring key;
|
||||||
size_t size;
|
size_t size;
|
||||||
|
GUID new_guid;
|
||||||
|
|
||||||
slprintf(key, sizeof(key)-1, "%s/%s", SECRETS_DOMAIN_GUID, domain);
|
slprintf(key, sizeof(key)-1, "%s/%s", SECRETS_DOMAIN_GUID, domain);
|
||||||
strupper(key);
|
strupper(key);
|
||||||
dyn_guid = (GUID *)secrets_fetch(key, &size);
|
dyn_guid = (GUID *)secrets_fetch(key, &size);
|
||||||
|
|
||||||
|
DEBUG(6,("key is %s, guid is at %x, size is %d\n", key, dyn_guid, size));
|
||||||
|
|
||||||
|
if ((NULL == dyn_guid) && (ROLE_DOMAIN_PDC == lp_server_role())) {
|
||||||
|
uuid_generate_random(&new_guid);
|
||||||
|
if (!secrets_store_domain_guid(domain, &new_guid))
|
||||||
|
return False;
|
||||||
|
dyn_guid = (GUID *)secrets_fetch(key, &size);
|
||||||
if (dyn_guid == NULL)
|
if (dyn_guid == NULL)
|
||||||
return False;
|
return False;
|
||||||
|
}
|
||||||
|
|
||||||
if (size != sizeof(GUID))
|
if (size != sizeof(GUID))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user