idmap_autorid: factor building of the keystr into a function
authorMichael Adam <obnox@samba.org>
Fri, 30 Aug 2013 15:31:16 +0000 (17:31 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 1 Oct 2013 22:06:19 +0000 (00:06 +0200)
to avoid code duplication.

Pair-Programmed-with: Atul Kulkarni <atul.kulkarni@in.ibm.com>

Signed-off-by: Michael Adam <obnox@samba.org>
Signed-off-by: Atul Kulkarni <atul.kulkarni@in.ibm.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/winbindd/idmap_autorid_tdb.c

index bb5f497842ce4c8aef649fd9f00a0e40bd5c6732..0523fd5918a5968ea52c1fe10f0758da4efbfa45 100644 (file)
 
 #include "idmap_autorid_tdb.h"
 
+/**
+ * Build the database keystring for getting a range
+ * belonging to a domain sid and a range index.
+ */
+static void idmap_autorid_build_keystr(const char *domsid,
+                                      uint32_t domain_range_index,
+                                      fstring keystr)
+{
+       if (domain_range_index > 0) {
+               snprintf(keystr, FSTRING_LEN, "%s#%"PRIu32,
+                        domsid, domain_range_index);
+       } else {
+               fstrcpy(keystr, domsid);
+       }
+}
+
 static NTSTATUS idmap_autorid_get_domainrange_action(struct db_context *db,
                                              void *private_data)
 {
@@ -37,12 +53,8 @@ static NTSTATUS idmap_autorid_get_domainrange_action(struct db_context *db,
 
        range = (struct autorid_range_config *)private_data;
 
-       if (range->domain_range_index > 0) {
-               snprintf(keystr, FSTRING_LEN, "%s#%"PRIu32,
-                        range->domsid, range->domain_range_index);
-       } else {
-               fstrcpy(keystr, range->domsid);
-       }
+       idmap_autorid_build_keystr(range->domsid, range->domain_range_index,
+                                  keystr);
 
        ret = dbwrap_fetch_uint32_bystring(db, keystr,
                                           &(range->rangenum));
@@ -136,12 +148,8 @@ NTSTATUS idmap_autorid_get_domainrange(struct db_context *db,
         * if it is not found create a mapping in a transaction unless
         * read-only mode has been set
         */
-       if (range->domain_range_index > 0) {
-               snprintf(keystr, FSTRING_LEN, "%s#%"PRIu32,
-                        range->domsid, range->domain_range_index);
-       } else {
-               fstrcpy(keystr, range->domsid);
-       }
+       idmap_autorid_build_keystr(range->domsid, range->domain_range_index,
+                                  keystr);
 
        ret = dbwrap_fetch_uint32_bystring(db, keystr,
                                           &(range->rangenum));