diff options
author | Michael Adam <obnox@samba.org> | 2013-09-10 01:45:52 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2013-10-02 00:06:32 +0200 |
commit | 375168a16eedab3e60153a2b5f7cce1a22e21d5e (patch) | |
tree | a1f8095c1aa7ba0b64f9dbd1afe38aa48f0d3604 | |
parent | d560cd11e4de818ff997eea52d020e360c3ef7d0 (diff) | |
download | samba-375168a16eedab3e60153a2b5f7cce1a22e21d5e.tar.gz samba-375168a16eedab3e60153a2b5f7cce1a22e21d5e.tar.bz2 samba-375168a16eedab3e60153a2b5f7cce1a22e21d5e.zip |
idmap_autorid: add idmap_autorid_saveconfigstr()
Store a configuration as provided by a config string
after parsing and validating the string.
Based on similar patch by Atul Kulkarni <atul.kulkarni@in.ibm.com>.
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
-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; +} |