diff options
-rw-r--r-- | source3/include/idmap_autorid_tdb.h | 9 | ||||
-rw-r--r-- | source3/winbindd/idmap_autorid_tdb.c | 16 |
2 files changed, 25 insertions, 0 deletions
diff --git a/source3/include/idmap_autorid_tdb.h b/source3/include/idmap_autorid_tdb.h index 4e9b464f6a..88f15f2d1e 100644 --- a/source3/include/idmap_autorid_tdb.h +++ b/source3/include/idmap_autorid_tdb.h @@ -127,4 +127,13 @@ NTSTATUS idmap_autorid_getconfigstr(struct db_context *db, TALLOC_CTX *mem_ctx, bool idmap_autorid_parse_configstr(const char *configstr, struct autorid_global_config *cfg); + +/** + * Save the global autorid configuration into the autorid database + * as provided in the config string. + * First parse the configstr and validate it. + */ +NTSTATUS idmap_autorid_saveconfigstr(struct db_context *db, + const char *configstr); + #endif /* _IDMAP_AUTORID_H_ */ diff --git a/source3/winbindd/idmap_autorid_tdb.c b/source3/winbindd/idmap_autorid_tdb.c index 0d90cf2266..d66f01289d 100644 --- a/source3/winbindd/idmap_autorid_tdb.c +++ b/source3/winbindd/idmap_autorid_tdb.c @@ -601,3 +601,19 @@ done: TALLOC_FREE(frame); return status; } + +NTSTATUS idmap_autorid_saveconfigstr(struct db_context *db, + const char *configstr) +{ + bool ok; + NTSTATUS status; + struct autorid_global_config cfg; + + ok = idmap_autorid_parse_configstr(configstr, &cfg); + if (!ok) { + return NT_STATUS_INVALID_PARAMETER; + } + + status = idmap_autorid_saveconfig(db, &cfg); + return status; +} |