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 08:49:14 +0000 (10:49 +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>
source3/winbindd/idmap_autorid_tdb.c

index 6c57deb8d7fed35f3554f37b1f49d4ffc36e3717..741c0c1884baf99f4ec86880b0c982011bc0e38b 100644 (file)
 
 #include "idmap_autorid.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));