From f6c34b1e236aab275d6cfbc12e57af7d692b8c19 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Wed, 28 Aug 2013 15:29:37 +0200 Subject: idmap_autorid: refactor idmap_autorid_parse_configstr() out of idmap_autorid_loadconfig() This will be used for other purposes as well. Pair-Programmed-with: Atul Kulkarni Signed-off-by: Michael Adam Signed-off-by: Atul Kulkarni Reviewed-by: Volker Lendecke --- source3/winbindd/idmap_autorid_tdb.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) (limited to 'source3/winbindd') diff --git a/source3/winbindd/idmap_autorid_tdb.c b/source3/winbindd/idmap_autorid_tdb.c index 64c108520c..29d3a4dc01 100644 --- a/source3/winbindd/idmap_autorid_tdb.c +++ b/source3/winbindd/idmap_autorid_tdb.c @@ -261,12 +261,33 @@ NTSTATUS idmap_autorid_getconfigstr(struct db_context *db, TALLOC_CTX *mem_ctx, return NT_STATUS_OK; } +bool idmap_autorid_parse_configstr(const char *configstr, + struct autorid_global_config *cfg) +{ + unsigned long minvalue, rangesize, maxranges; + + if (sscanf(configstr, + "minvalue:%lu rangesize:%lu maxranges:%lu", + &minvalue, &rangesize, &maxranges) != 3) { + DEBUG(1, + ("Found invalid configuration data" + "creating new config\n")); + return false; + } + + cfg->minvalue = minvalue; + cfg->rangesize = rangesize; + cfg->maxranges = maxranges; + + return true; +} + struct autorid_global_config *idmap_autorid_loadconfig(struct db_context *db, TALLOC_CTX *mem_ctx) { struct autorid_global_config *cfg; - unsigned long minvalue, rangesize, maxranges; NTSTATUS status; + bool ok; char *configstr = NULL; status = idmap_autorid_getconfigstr(db, mem_ctx, &configstr); @@ -279,19 +300,12 @@ struct autorid_global_config *idmap_autorid_loadconfig(struct db_context *db, return NULL; } - if (sscanf(configstr, - "minvalue:%lu rangesize:%lu maxranges:%lu", - &minvalue, &rangesize, &maxranges) != 3) { - DEBUG(1, - ("Found invalid configuration data" - "creating new config\n")); + ok = idmap_autorid_parse_configstr(configstr, cfg); + if (!ok) { + talloc_free(cfg); return NULL; } - cfg->minvalue = minvalue; - cfg->rangesize = rangesize; - cfg->maxranges = maxranges; - DEBUG(10, ("Loaded previously stored configuration " "minvalue:%d rangesize:%d\n", cfg->minvalue, cfg->rangesize)); -- cgit