dirmngr: Use system provided root CAs with KS_FETCH.
[gnupg.git] / dirmngr / cdblib.c
index 3bfeffc..23cb317 100644 (file)
@@ -7,7 +7,7 @@
  * inclusion into Dirmngr.  By Werner Koch <wk@gnupg.org> 2003-12-12.
  */
 
-/* A cdb database is a single file used to map `keys' to `values',
+/* A cdb database is a single file used to map 'keys' to 'values',
    having records of (key,value) pairs.  File consists of 3 parts: toc
    (table of contents), data and index (hash tables).
 
@@ -59,7 +59,7 @@
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
-#include <stdlib.h> 
+#include <stdlib.h>
 #include <errno.h>
 #include <string.h>
 #include <unistd.h>
@@ -89,7 +89,7 @@ struct cdb_rec {
   cdbi_t hval;
   cdbi_t rpos;
 };
-  
+
 struct cdb_rl {
   struct cdb_rl *next;
   cdbi_t cnt;
@@ -115,9 +115,10 @@ cdb_init(struct cdb *cdbp, int fd)
 {
   struct stat st;
   unsigned char *mem;
-  unsigned fsize;
 #ifdef _WIN32
   HANDLE hFile, hMapping;
+#else
+  unsigned int fsize;
 #endif
 
   /* get file size */
@@ -128,7 +129,6 @@ cdb_init(struct cdb *cdbp, int fd)
     gpg_err_set_errno (EPROTO);
     return -1;
   }
-  fsize = (unsigned)(st.st_size & 0xffffffffu);
   /* memory-map file */
 #ifdef _WIN32
 # ifdef __MINGW32CE__
@@ -145,11 +145,12 @@ cdb_init(struct cdb *cdbp, int fd)
   if (!mem)
     return -1;
   cdbp->cdb_mapping = hMapping;
-#else
+#else /*!_WIN32*/
+  fsize = (unsigned int)(st.st_size & 0xffffffffu);
   mem = (unsigned char*)mmap(NULL, fsize, PROT_READ, MAP_SHARED, fd, 0);
   if (mem == MAP_FAILED)
     return -1;
-#endif /* _WIN32 */
+#endif /*!_WIN32*/
 
   cdbp->cdb_fd = fd;
   cdbp->cdb_fsize = st.st_size;
@@ -306,7 +307,7 @@ cdb_find(struct cdb *cdbp, const void *key, cdbi_t klen)
    result), use cdb_datapos() and cdb_datalen() macros with cdbp
    pointer.  It is error to use cdb_findnext() after it returned 0 or
    error condition.  These routines is a bit slower than
-   cdb_find(). 
+   cdb_find().
 
    Setting KEY to NULL will start a sequential search through the
    entire DB.
@@ -344,7 +345,7 @@ cdb_findinit(struct cdb_find *cdbfp, struct cdb *cdbp,
     }
   else /* Walk over all entries. */
     {
-      cdbfp->cdb_hval = 0; 
+      cdbfp->cdb_hval = 0;
       /* Force stepping in findnext. */
       cdbfp->cdb_htp = cdbfp->cdb_htend = cdbp->cdb_mem;
     }
@@ -353,7 +354,7 @@ cdb_findinit(struct cdb_find *cdbfp, struct cdb *cdbp,
 
 
 /* See cdb_findinit. */
-int 
+int
 cdb_findnext(struct cdb_find *cdbfp)
 {
   cdbi_t pos, n;
@@ -403,7 +404,7 @@ cdb_findnext(struct cdb_find *cdbfp)
             {
               if (cdbfp->cdb_hval > 255)
                 return 0; /* No more items. */
-              
+
               cdbfp->cdb_htp = cdbp->cdb_mem + cdbfp->cdb_hval * 8;
               cdbfp->cdb_hval++; /* Advance for next round. */
               pos = cdb_unpack (cdbfp->cdb_htp);     /* Offset of table. */
@@ -416,22 +417,22 @@ cdb_findnext(struct cdb_find *cdbfp)
                   gpg_err_set_errno (EPROTO);
                   return -1;
                 }
-              
+
               cdbfp->cdb_htab  = cdbp->cdb_mem + pos;
               cdbfp->cdb_htend = cdbfp->cdb_htab + cdbfp->cdb_httodo;
               cdbfp->cdb_htp   = cdbfp->cdb_htab;
             }
-          
+
           pos = cdb_unpack (cdbfp->cdb_htp + 4); /* Offset of record. */
           cdbfp->cdb_htp += 8;
-        } 
+        }
       while (!pos);
       if (pos > cdbp->cdb_fsize - 8)
         {
           gpg_err_set_errno (EPROTO);
           return -1;
         }
-      
+
       cdbp->cdb_kpos = pos + 8;
       cdbp->cdb_klen = cdb_unpack(cdbp->cdb_mem + pos);
       cdbp->cdb_vpos = pos + 8 + cdbp->cdb_klen;
@@ -695,7 +696,7 @@ make_find (struct cdb_make *cdbmp,
 {
   struct cdb_rl *rl = cdbmp->cdb_rec[hval&255];
   int r, i;
-  int seeked = 0;
+  int sought = 0;
   while(rl) {
     for(i = rl->cnt - 1; i >= 0; --i) { /* search backward */
       if (rl->rec[i].hval != hval)
@@ -710,7 +711,7 @@ make_find (struct cdb_make *cdbmp,
           return -1;
         cdbmp->cdb_bpos = cdbmp->cdb_buf;
       }
-      seeked = 1;
+      sought = 1;
       r = match(cdbmp->cdb_fd, rl->rec[i].rpos, key, klen);
       if (!r)
        continue;
@@ -724,7 +725,7 @@ make_find (struct cdb_make *cdbmp,
     }
     rl = rl->next;
   }
-  if (seeked && lseek(cdbmp->cdb_fd, cdbmp->cdb_dpos, SEEK_SET) < 0)
+  if (sought && lseek(cdbmp->cdb_fd, cdbmp->cdb_dpos, SEEK_SET) < 0)
     return -1;
   return 0;
 }