spelling: conenction should be connection
[gnupg.git] / dirmngr / certcache.c
index a8b84e6..9e741c1 100644 (file)
@@ -25,7 +25,7 @@
 #include <assert.h>
 #include <sys/types.h>
 #include <dirent.h>
-#include <pth.h>
+#include <npth.h>
 
 #include "dirmngr.h"
 #include "misc.h"
@@ -78,12 +78,12 @@ typedef struct cert_item_s *cert_item_t;
    the first byte of the fingerprint.  */
 static cert_item_t cert_cache[256];
 
-/* This is the global cache_lock variable. In general looking is not
+/* This is the global cache_lock variable. In general locking is not
    needed but it would take extra efforts to make sure that no
-   indirect use of pth functions is done, so we simply lock it always.
-   Note: We can't use static initialization, as that is not available
-   through w32-pth.  */
-static pth_rwlock_t cert_cache_lock;
+   indirect use of npth functions is done, so we simply lock it
+   always.  Note: We can't use static initialization, as that is not
+   available through w32-pth.  */
+static npth_rwlock_t cert_cache_lock;
 
 /* Flag to track whether the cache has been initialized.  */
 static int initialization_done;
@@ -99,33 +99,45 @@ static unsigned int total_extra_certificates;
 static void
 init_cache_lock (void)
 {
-  if (!pth_rwlock_init (&cert_cache_lock))
+  int err;
+
+  err = npth_rwlock_init (&cert_cache_lock, NULL);
+  if (err)
     log_fatal (_("can't initialize certificate cache lock: %s\n"),
-              strerror (errno));
+              strerror (err));
 }
 
 static void
 acquire_cache_read_lock (void)
 {
-  if (!pth_rwlock_acquire (&cert_cache_lock, PTH_RWLOCK_RD, FALSE, NULL))
+  int err;
+
+  err = npth_rwlock_rdlock (&cert_cache_lock);
+  if (err)
     log_fatal (_("can't acquire read lock on the certificate cache: %s\n"),
-               strerror (errno));
+               strerror (err));
 }
 
 static void
 acquire_cache_write_lock (void)
 {
-  if (!pth_rwlock_acquire (&cert_cache_lock, PTH_RWLOCK_RW, FALSE, NULL))
+  int err;
+
+  err = npth_rwlock_wrlock (&cert_cache_lock);
+  if (err)
     log_fatal (_("can't acquire write lock on the certificate cache: %s\n"),
-               strerror (errno));
+               strerror (err));
 }
 
 static void
 release_cache_lock (void)
 {
-  if (!pth_rwlock_release (&cert_cache_lock))
+  int err;
+
+  err = npth_rwlock_unlock (&cert_cache_lock);
+  if (err)
     log_fatal (_("can't release lock on the certificate cache: %s\n"),
-               strerror (errno));
+               strerror (err));
 }
 
 
@@ -141,7 +153,7 @@ compare_serialno (ksba_sexp_t serial1, ksba_sexp_t serial2 )
 
 
 
-/* Return a malloced canonical S-Expression with the serialnumber
+/* Return a malloced canonical S-Expression with the serial number
    converted from the hex string HEXSN.  Return NULL on memory
    error. */
 ksba_sexp_t
@@ -319,7 +331,7 @@ put_cert (ksba_cert_t cert, int is_loaded, int is_trusted, void *fpr_buffer)
 /* Load certificates from the directory DIRNAME.  All certificates
    matching the pattern "*.crt" or "*.der"  are loaded.  We assume that
    certificates are DER encoded and not PEM encapsulated. The cache
-   should be in a locked state when calling this fucntion.  */
+   should be in a locked state when calling this function.  */
 static gpg_error_t
 load_certs_from_dir (const char *dirname, int are_trusted)
 {
@@ -336,9 +348,6 @@ load_certs_from_dir (const char *dirname, int are_trusted)
   dir = opendir (dirname);
   if (!dir)
     {
-      if (opt.system_daemon)
-        log_info (_("can't access directory `%s': %s\n"),
-                  dirname, strerror (errno));
       return 0; /* We do not consider this a severe error.  */
     }
 
@@ -356,7 +365,7 @@ load_certs_from_dir (const char *dirname, int are_trusted)
       fp = es_fopen (fname, "rb");
       if (!fp)
         {
-          log_error (_("can't open `%s': %s\n"),
+          log_error (_("can't open '%s': %s\n"),
                      fname, strerror (errno));
           continue;
         }
@@ -375,7 +384,7 @@ load_certs_from_dir (const char *dirname, int are_trusted)
       es_fclose (fp);
       if (err)
         {
-          log_error (_("can't parse certificate `%s': %s\n"),
+          log_error (_("can't parse certificate '%s': %s\n"),
                      fname, gpg_strerror (err));
           ksba_cert_release (cert);
           continue;
@@ -383,13 +392,13 @@ load_certs_from_dir (const char *dirname, int are_trusted)
 
       err = put_cert (cert, 1, are_trusted, NULL);
       if (gpg_err_code (err) == GPG_ERR_DUP_VALUE)
-        log_info (_("certificate `%s' already cached\n"), fname);
+        log_info (_("certificate '%s' already cached\n"), fname);
       else if (!err)
         {
           if (are_trusted)
-            log_info (_("trusted certificate `%s' loaded\n"), fname);
+            log_info (_("trusted certificate '%s' loaded\n"), fname);
           else
-            log_info (_("certificate `%s' loaded\n"), fname);
+            log_info (_("certificate '%s' loaded\n"), fname);
           if (opt.verbose)
             {
               p = get_fingerprint_hexstring_colon (cert);
@@ -401,7 +410,7 @@ load_certs_from_dir (const char *dirname, int are_trusted)
             }
         }
       else
-        log_error (_("error loading certificate `%s': %s\n"),
+        log_error (_("error loading certificate '%s': %s\n"),
                      fname, gpg_strerror (err));
       ksba_cert_release (cert);
     }
@@ -423,11 +432,11 @@ cert_cache_init (void)
   init_cache_lock ();
   acquire_cache_write_lock ();
 
-  dname = make_filename (opt.homedir, "trusted-certs", NULL);
+  dname = make_filename (gnupg_sysconfdir (), "trusted-certs", NULL);
   load_certs_from_dir (dname, 1);
   xfree (dname);
 
-  dname = make_filename (opt.homedir_data, "extra-certs", NULL);
+  dname = make_filename (gnupg_sysconfdir (), "extra-certs", NULL);
   load_certs_from_dir (dname, 0);
   xfree (dname);
 
@@ -581,7 +590,7 @@ get_cert_byhexfpr (const char *string)
     }
   if (i!=20 || *s)
     {
-      log_error (_("invalid SHA1 fingerprint string `%s'\n"), string);
+      log_error (_("invalid SHA1 fingerprint string '%s'\n"), string);
       return NULL;
     }
 
@@ -675,7 +684,7 @@ get_cert_bysubject (const char *subject_dn, unsigned int seq)
 
 
 
-/* Return a value decribing the the class of PATTERN.  The offset of
+/* Return a value describing the the class of PATTERN.  The offset of
    the actual string to be used for the comparison is stored at
    R_OFFSET.  The offset of the serialnumer is stored at R_SN_OFFSET. */
 static enum pattern_class