dirmngr (15 files)

cvs user wk cvs at cvs.gnupg.org
Wed Nov 24 13:19:08 CET 2004


    Date: Wednesday, November 24, 2004 @ 13:25:53
  Author: wk
    Path: /cvs/dirmngr/dirmngr

Modified: NEWS TODO doc/dirmngr.texi po/POTFILES.in po/de.po
          po/dirmngr.pot src/ChangeLog src/certcache.c src/crlcache.c
          src/dirmngr-client.c src/dirmngr.c src/dirmngr.h
          src/dirmngr_ldap.c src/ldap.c src/validate.c

Translated all strings - puh.

* dirmngr.c: New options --ignore-http-dp and --ignore-ldap-dp.
* crlcache.c (crl_cache_reload_crl): Implement them.


----------------------+
 NEWS                 |    5 
 TODO                 |    9 
 doc/dirmngr.texi     |   28 -
 po/POTFILES.in       |    4 
 po/de.po             | 1294 +++++++++++++++++++++++++++++++++++++------------
 po/dirmngr.pot       | 1173 ++++++++++++++++++++++++++++++++++----------
 src/ChangeLog        |   10 
 src/certcache.c      |    2 
 src/crlcache.c       |   19 
 src/dirmngr-client.c |    2 
 src/dirmngr.c        |   12 
 src/dirmngr.h        |    2 
 src/dirmngr_ldap.c   |    3 
 src/ldap.c           |   23 
 src/validate.c       |    4 
 15 files changed, 2001 insertions(+), 589 deletions(-)


Index: dirmngr/NEWS
diff -u dirmngr/NEWS:1.28 dirmngr/NEWS:1.29
--- dirmngr/NEWS:1.28	Mon Nov 22 22:30:50 2004
+++ dirmngr/NEWS	Wed Nov 24 13:25:53 2004
@@ -9,10 +9,11 @@
 
  * New options: --ldap-wrapper-program, --http-wrapper-program,
    --disable-ldap, --disable-http, --honor-http-proxy, --http-proxy,
-   --ldap-proxy and --only-ldap-proxy.
+   --ldap-proxy, --only-ldap-proxy, --ignore-ldap-dp and
+   --ignore-http-dp.
 
  * Uses an external ldap wrapper to cope with timeouts and general
-   LDAP problems.  Prepared for using 
+   LDAP problems.
 
  * SIGHUP may be used to reread the configuration and to flush the
    certificate cache.
Index: dirmngr/TODO
diff -u dirmngr/TODO:1.15 dirmngr/TODO:1.16
--- dirmngr/TODO:1.15	Tue Nov 23 14:20:44 2004
+++ dirmngr/TODO	Wed Nov 24 13:25:53 2004
@@ -14,4 +14,13 @@
 
 * Properly use locks in crlcache.c
 
+* name subordination (nameRelativeToCRLIssuer) 
+   is not yet supported by Dirmngr.
+
+* CRL DP URI
+  The CRL DP shall use an URI for LDAP without a host name.  The host
+  name shall be looked by using the DN in the URI.  We don't implement
+  this yet.  Solution is to have a mapping DN->host in our ldapservers
+  configuration file.
+
 
Index: dirmngr/doc/dirmngr.texi
diff -u dirmngr/doc/dirmngr.texi:1.16 dirmngr/doc/dirmngr.texi:1.17
--- dirmngr/doc/dirmngr.texi:1.16	Mon Nov 22 22:30:50 2004
+++ dirmngr/doc/dirmngr.texi	Wed Nov 24 13:25:53 2004
@@ -302,6 +302,20 @@
 @opindex disable-http
 Entirely disables the use of HTTP.
 
+ at item --ignore-http-dp
+ at opindex ignore-http-dp
+When looking for the location of a CRL, the to be tested certificate
+usually contains so called @dfn{CRL Distribution Point} (DP) entries
+which are URLs describing the way to access the URL.  The first found DP
+entry is used.  With this option all entries using the @acronym{HTTP}
+scheme are ignored when looking for a suitable DP.
+
+ at item --ignore-ldap-dp
+ at opindex ignore-ldap-dp
+This is similar to @option{--ignore-http-dp} but ignores entries using
+the @acronym{LDAP} scheme.  Both options may be combined resulting in 
+ignoring DPs entirely.
+
 @item --honor-http-proxy
 @opindex honor-http-proxy
 If the environment variable @env{http_proxy} has been set, use its
@@ -725,13 +739,6 @@
 @opindex ping
 Check whether the dirmngr daemon is up and running.
 
- at item --use-daemon
- at opindex use-daemon
-Always try to use a running background daemon.  The default is to try
-to start a dirmngr if a connecting a daemon fails.  This option is
-also implicitly use with @code{--ping}.
-
-
 @item --cache-cert
 @opindex cache-cert
 Put the given certificate into the cache of a running dirmngr.  This is
@@ -742,6 +749,13 @@
 Validate the given certificate using dirmngr's internal validation code.
 This is mainly useful for debugging.
 
+ at item --lookup
+ at opindex lookup
+Take the remaining arguments and run a lookup command on each of them.
+The results are Base-64 encoded outputs (without header lines).  This
+may be used to retrieve certificates from a server. However the output
+format is not very well suited if more than one certificate is returned.
+
 @end table
 
 
Index: dirmngr/po/POTFILES.in
diff -u dirmngr/po/POTFILES.in:1.2 dirmngr/po/POTFILES.in:1.3
--- dirmngr/po/POTFILES.in:1.2	Tue Nov 16 19:24:35 2004
+++ dirmngr/po/POTFILES.in	Wed Nov 24 13:25:53 2004
@@ -2,6 +2,7 @@
 
 jnlib/argparse.c
 jnlib/logging.c
+src/certcache.c
 src/crlcache.c
 src/crlfetch.c
 src/dirmngr.c
@@ -10,6 +11,9 @@
 src/misc.c
 src/ocsp.c
 src/server.c
+src/validate.c
 src/dirmngr-client.c
 src/no-libgcrypt.c
+src/dirmngr_ldap.c
+
 
Index: dirmngr/po/de.po
diff -u dirmngr/po/de.po:1.6 dirmngr/po/de.po:1.7
--- dirmngr/po/de.po:1.6	Mon Oct  4 13:52:07 2004
+++ dirmngr/po/de.po	Wed Nov 24 13:25:53 2004
@@ -5,229 +5,326 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: dirmngr 0.5.6\n"
+"Project-Id-Version: dirmngr 0.9.0\n"
 "Report-Msgid-Bugs-To: gpa-dev at gnupg.org\n"
-"POT-Creation-Date: 2004-10-04 13:52+0200\n"
-"PO-Revision-Date: 2004-10-04 13:52+0200\n"
+"POT-Creation-Date: 2004-11-24 13:16+0100\n"
+"PO-Revision-Date: 2004-11-24 13:16+0100\n"
 "Last-Translator: Werner Koch <wk at g10code.com>\n"
 "Language-Team: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: jnlib/logging.c:555
+#: jnlib/logging.c:624
 #, c-format
 msgid "you found a bug ... (%s:%d)\n"
 msgstr "Sie haben einen Bug (Softwarefehler) gefunden ... (%s:%d)\n"
 
-#: src/crlcache.c:177
+#: src/certcache.c:87
+#, c-format
+msgid "can't acquire read lock on the certificate cache: %s\n"
+msgstr "Lesesperre für den Zertifikatcache kann nicht gesetzt werden: %s\n"
+
+#: src/certcache.c:95
+#, c-format
+msgid "can't acquire write lock on the certificate cache: %s\n"
+msgstr "Schreibsperre für den Zertifikatcache kann nicht gesetzt werden: %s\n"
+
+#: src/certcache.c:103
+#, c-format
+msgid "can't release lock on the certificate cache: %s\n"
+msgstr "Sperre für den Zertifikatcache kann nicht freigegeben werden: %s\n"
+
+#: src/certcache.c:220
+#, c-format
+msgid "dropping %u certificates from the cache\n"
+msgstr "%u Zertifikate werden aus dem Zertifikat Cache entfernt\n"
+
+#: src/certcache.c:304
+#, c-format
+msgid "can't access directory `%s': %s\n"
+msgstr "Fehler beim Zugriff auf das Verzeichnis `%s': %s\n"
+
+#: src/certcache.c:323 src/crlcache.c:2142 src/ldap.c:605
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "`%s' kann nicht geöffnet werden: %s\n"
+
+#: src/certcache.c:332
+#, c-format
+msgid "can't setup KSBA reader: %s\n"
+msgstr "KSAB Reader Objekt kann nicht erstellt werden: %s\n"
+
+#: src/certcache.c:345
+#, c-format
+msgid "can't parse certificate `%s': %s\n"
+msgstr "Zertifikat `%s' kann nicht zerlegt werden: %s\n"
+
+#: src/certcache.c:354
+#, c-format
+msgid "certificate `%s' already cached\n"
+msgstr "Zertifikat `%s' ist bereits im Cache\n"
+
+#: src/certcache.c:356
+#, c-format
+msgid "certificate `%s' loaded\n"
+msgstr "Zertifikat `%s' wurde geladen\n"
+
+#: src/certcache.c:358
+#, c-format
+msgid "error loading certificate `%s': %s\n"
+msgstr "Fehler beim Laden des Zertifikats `%s': %s\n"
+
+#: src/certcache.c:432
+#, c-format
+msgid "permanently loaded certificates: %u\n"
+msgstr "   dauerhaft geladene Zertifikate: %u\n"
+
+#: src/certcache.c:434
+#, c-format
+msgid "    runtime cached certificates: %u\n"
+msgstr "zur Laufzeit geladene Zertifikate: %u\n"
+
+#: src/certcache.c:449 src/dirmngr-client.c:297
+msgid "certificate already cached\n"
+msgstr "Zertifikat ist bereits im Cache\n"
+
+#: src/certcache.c:451
+msgid "certificate cached\n"
+msgstr "Zertifikat wurde gecachet\n"
+
+#: src/certcache.c:453 src/dirmngr-client.c:301
+#, c-format
+msgid "error caching certificate: %s\n"
+msgstr "Fehler beim Cachen des Zertifikats: %s\n"
+
+#: src/certcache.c:563 src/crlcache.c:1396
+#, c-format
+msgid "error fetching certificate for issuer: %s\n"
+msgstr "Fehler beim Holen des Zertifikats für den Issuer: %s\n"
+
+#: src/certcache.c:574 src/crlcache.c:1412
+#, c-format
+msgid "invalid issuer certificate: %s\n"
+msgstr "Ungültiges Issuer-Zertifikat: %s\n"
+
+#: src/certcache.c:655 src/validate.c:288
+msgid "no issuer found in certificate\n"
+msgstr "Im Zertifikat ist kein Herausgeber enthalten\n"
+
+#: src/certcache.c:665
+#, c-format
+msgid "error getting authorityKeyIdentifier: %s\n"
+msgstr "Fehler beim Holen des \"authorityKeyIdentifier\": %s\n"
+
+#: src/crlcache.c:201
 #, c-format
 msgid "creating directory `%s'\n"
 msgstr "Das Verzeichniss `%s' wird erzeugt\n"
 
-#: src/crlcache.c:181
+#: src/crlcache.c:205
 #, c-format
 msgid "error creating directory `%s': %s\n"
 msgstr "Fehler beim Erzeugen des Verzeichnis '%s': %s\n"
 
-#: src/crlcache.c:209
+#: src/crlcache.c:233
 #, c-format
 msgid "ignoring database dir `%s'\n"
 msgstr "Das Cache-Verzeichniss `%s' wird ignoriert\n"
 
-#: src/crlcache.c:218
+#: src/crlcache.c:242
 #, c-format
 msgid "error reading directory `%s': %s\n"
 msgstr "Fehler beim Lesen des Verzeichniss `%s': %s\n"
 
-#: src/crlcache.c:239
+#: src/crlcache.c:263
 #, c-format
 msgid "removing cache file `%s'\n"
 msgstr "Die Cache-Datei `%s' wird entfernt\n"
 
-#: src/crlcache.c:248
+#: src/crlcache.c:272
 #, c-format
 msgid "not removing file `%s'\n"
 msgstr "Die Datei `%s' wird nicht gelöscht\n"
 
-#: src/crlcache.c:317 src/crlcache.c:962
+#: src/crlcache.c:341 src/crlcache.c:986
 #, c-format
 msgid "error closing cache file: %s\n"
 msgstr "Fehler beim Schliessen der Cache-Datei: %s\n"
 
-#: src/crlcache.c:354 src/crlcache.c:678
+#: src/crlcache.c:378 src/crlcache.c:702
 #, c-format
 msgid "failed to open cache dir file `%s': %s\n"
 msgstr "Die Cache-Verzeichnissdatei `%s' konnte nicht geöffnet werden: %s\n"
 
-#: src/crlcache.c:364
+#: src/crlcache.c:388
 #, c-format
 msgid "error creating new cache dir file `%s': %s\n"
 msgstr "Fehler beim Erzeugen der neuen Cache-Verzeichnissdatei `%s': %s\n"
 
-#: src/crlcache.c:371
+#: src/crlcache.c:395
 #, c-format
 msgid "error writing new cache dir file `%s': %s\n"
 msgstr "Fehler beim Schreiben der neuen Cache-Verzeichnissdatei `%s': %s\n"
 
-#: src/crlcache.c:378
+#: src/crlcache.c:402
 #, c-format
 msgid "error closing new cache dir file `%s': %s\n"
 msgstr "Fehler beim Schliessen der neuen Cache-Verzeichnissdatei `%s': %s\n"
 
-#: src/crlcache.c:383
+#: src/crlcache.c:407
 #, c-format
 msgid "new cache dir file `%s' created\n"
 msgstr "Neue Cache-Verzeichnissdatei `%s' wurde erzeugt\n"
 
-#: src/crlcache.c:388
+#: src/crlcache.c:412
 #, c-format
 msgid "failed to re-open cache dir file `%s': %s\n"
 msgstr "Fehler beim Wiederöffnen der Cache-Verzeichnissdatei `%s': %s\n"
 
-#: src/crlcache.c:415
+#: src/crlcache.c:439
 #, c-format
 msgid "first record of `%s' is not the version\n"
 msgstr "Der erste Datensatz von `%s' enthält nicht die Version\n"
 
-#: src/crlcache.c:426
+#: src/crlcache.c:450
 msgid "old version of cache directory - cleaning up\n"
 msgstr "Alte Version des Cache-Verzeichnisses - räume auf\n"
 
-#: src/crlcache.c:442
+#: src/crlcache.c:466
 msgid "old version of cache directory - giving up\n"
 msgstr "Alte Version des Cache-Verzeichnisses - gebe auf\n"
 
-#: src/crlcache.c:530
+#: src/crlcache.c:554
 #, c-format
 msgid "extra field detected in crl record of `%s' line %u\n"
 msgstr "Weiteres Feld im CRL Datensatz von `%s', Zeile %u festgestellt\n"
 
-#: src/crlcache.c:542
+#: src/crlcache.c:566
 #, c-format
 msgid "unsupported record type in `%s' line %u skipped\n"
 msgstr "Nicht unterstützter Datensatztyp in `%s', Zeile %u übergangen\n"
 
-#: src/crlcache.c:550 src/crlcache.c:779 src/dirmngr.c:810
+#: src/crlcache.c:574 src/crlcache.c:803 src/dirmngr.c:1191
 #, c-format
 msgid "error reading `%s': %s\n"
 msgstr "Fehler beim Lesen von `%s': %s\n"
 
-#: src/crlcache.c:562
+#: src/crlcache.c:586
 #, c-format
 msgid "invalid issuer hash in `%s' line %u\n"
 msgstr "Ungültiger Issuer Hashwert in `%s', Zeile %u\n"
 
-#: src/crlcache.c:568
+#: src/crlcache.c:592
 #, c-format
 msgid "no issuer DN in `%s' line %u\n"
 msgstr "Kein Issuer DN in `%s', Zeile %u\n"
 
-#: src/crlcache.c:575
+#: src/crlcache.c:599
 #, c-format
 msgid "invalid timestamp in `%s' line %u\n"
 msgstr "Ungültiger Zeitstempel in `%s', Zeile %u\n"
 
-#: src/crlcache.c:581
+#: src/crlcache.c:605
 #, c-format
 msgid "WARNING: invalid cache file hash in `%s' line %u\n"
 msgstr "WARNUNG: Ungültiger Cache-Datei Hashwert in `%s', Zeile %u\n"
 
-#: src/crlcache.c:587
+#: src/crlcache.c:611
 msgid "detected errors in cache dir file\n"
 msgstr "Id der Cache-Verzeichnissdatei wurden Fehler erkannt\n"
 
-#: src/crlcache.c:588
+#: src/crlcache.c:612
 msgid "please check the reason and manually delete that file\n"
 msgstr ""
 "Bitte ermitteln sie die Ursache und löschen sie die Datei dann manuell\n"
 
-#: src/crlcache.c:711
+#: src/crlcache.c:735
 #, c-format
 msgid "failed to create temporary cache dir file `%s': %s\n"
 msgstr ""
 "Die temporäre Cache-Verzeichnissdatei `%s' konnte nicht erzeugt werden: %s\n"
 
-#: src/crlcache.c:784
+#: src/crlcache.c:808
 #, c-format
 msgid "error writing `%s': %s\n"
 msgstr "Fehler beim Schreiben auf `%s': %s\n"
 
-#: src/crlcache.c:795
+#: src/crlcache.c:819
 #, c-format
 msgid "error closing `%s': %s\n"
 msgstr "Fehler beim Schliessen von `%s': %s\n"
 
-#: src/crlcache.c:803
+#: src/crlcache.c:827
 #, c-format
 msgid "error renaming `%s' to `%s': %s\n"
 msgstr "Fehler beim Umbenennen von `%s` nach `%s': %s\n"
 
-#: src/crlcache.c:858
+#: src/crlcache.c:882
 #, c-format
 msgid "can't hash `%s': %s\n"
 msgstr "Hashwert von `%s' kann nicht gebildet werden: %s\n"
 
-#: src/crlcache.c:866
+#: src/crlcache.c:890
 #, c-format
 msgid "error setting up MD5 hash context: %s\n"
 msgstr "Fehler beim Vorbereiten des MD5 Hashkontext: %s\n"
 
-#: src/crlcache.c:882
+#: src/crlcache.c:906
 #, c-format
 msgid "error hashing `%s': %s\n"
 msgstr "Fehler beim Hashen von `%s': %s\n"
 
-#: src/crlcache.c:910
+#: src/crlcache.c:934
 #, c-format
 msgid "invalid formatted checksum for `%s'\n"
 msgstr "Ungültig formatierte Prüfsumme für `%s'\n"
 
-#: src/crlcache.c:953
+#: src/crlcache.c:977
 msgid "too many open cache files; can't open anymore\n"
 msgstr "Zu viele geöffnete Cache-Dateien; weitere kann nicht geöffnet werden\n"
 
-#: src/crlcache.c:970
+#: src/crlcache.c:994
 #, c-format
 msgid "opening cache file `%s'\n"
 msgstr "Die Cache-Datei `%s' wird geöffnet\n"
 
-#: src/crlcache.c:989
+#: src/crlcache.c:1013
 #, c-format
 msgid "error opening cache file `%s': %s\n"
 msgstr "Fehler beim Öffnen der Cache-Datei `%s': %s\n"
 
-#: src/crlcache.c:998
+#: src/crlcache.c:1022
 #, c-format
 msgid "error initializing cache file `%s' for reading: %s\n"
 msgstr "Fehler beim Initialisieren der Cache-Datei `%s' zum Lesen: %s\n"
 
-#: src/crlcache.c:1020
+#: src/crlcache.c:1044
 msgid "calling unlock_db_file on a closed file\n"
 msgstr "unlock_db_file wird für eine geschlossene Datei aufgerufen\n"
 
-#: src/crlcache.c:1022
+#: src/crlcache.c:1046
 msgid "calling unlock_db_file on an unlocked file\n"
 msgstr "unlock_db_file wird für eine nicht gesperrte Datei aufgerufen\n"
 
-#: src/crlcache.c:1070
+#: src/crlcache.c:1100
 #, c-format
 msgid "failed to create a new cache object: %s\n"
 msgstr "Ein neues Cache-Objekt konnte nciht erzeugt werden: %s\n"
 
-#: src/crlcache.c:1123
+#: src/crlcache.c:1153
 #, c-format
 msgid "no CRL available for issuer id %s\n"
 msgstr "Es ist keine CRL für den Issuer mit der ID %s vorhanden\n"
 
-#: src/crlcache.c:1130
+#: src/crlcache.c:1160
 #, c-format
 msgid "cached CRL for issuer id %s too old; update required\n"
 msgstr ""
 "Die zwischengespeicherte CRL für den Issuer mit der ID %s is zu alt; ein "
 "Update wird benötigt\n"
 
-#: src/crlcache.c:1144
+#: src/crlcache.c:1174
 #, c-format
 msgid ""
 "force-crl-refresh active and %d minutes passed for issuer id %s; update "
@@ -236,198 +333,187 @@
 "\"force-crl-refresh\" ist aktiviert und %d Minuten für den Issuer mit Id %s "
 "sind vorbei; Update wird benötigt\n"
 
-#: src/crlcache.c:1152
+#: src/crlcache.c:1182
 #, c-format
 msgid "force-crl-refresh active for issuer id %s; update required\n"
 msgstr ""
 "\"force-crl-refresh\" ist für den Issuer mit der Id %s aktiviert; Update "
 "wird benötigt\n"
 
-#: src/crlcache.c:1161
+#: src/crlcache.c:1191
 #, c-format
 msgid "available CRL for issuer ID %s can't be used\n"
 msgstr ""
 "Die vorhandene CRL für den Issuer mit der ID %s kann nicht benutzt werden\n"
 
-#: src/crlcache.c:1172
+#: src/crlcache.c:1202
 #, c-format
 msgid "cached CRL for issuer id %s tampered; we need to update\n"
 msgstr ""
 "Die zwischengespeicherte CRL für den Issuer mit der ID %s wurde verändert; "
 "eine Update wird benötigt\n"
 
-#: src/crlcache.c:1190
-#, c-format
-msgid "WARNING: invalid cache record length for S/N %s\n"
-msgstr "WARNUNG: Ungültige Länge des Cache Dateisatzes für S/N %s\n"
+#: src/crlcache.c:1214
+msgid "WARNING: invalid cache record length for S/N "
+msgstr "WARNUNG: Ungültige Länge des Cache Dateisatzes für S/N "
 
-#: src/crlcache.c:1197
+#: src/crlcache.c:1223
 #, c-format
 msgid "problem reading cache record for S/N %s: %s\n"
 msgstr "Problem beim Lesen des Cache Datensatzes für S/N %s: %s\n"
 
-#: src/crlcache.c:1200
+#: src/crlcache.c:1226
 #, c-format
 msgid "S/N %s is not valid; reason=%02X  date=%.15s\n"
 msgstr "S/N %s ist nicht gültig; Grund=%02X  Datum=%.15s\n"
 
-#: src/crlcache.c:1208
+#: src/crlcache.c:1237
 #, c-format
 msgid "S/N %s is valid, it is not listed in the CRL\n"
 msgstr "S/N %s ist gültig; sie ist nicht in der CRL enthalten\n"
 
-#: src/crlcache.c:1214
+#: src/crlcache.c:1245
 #, c-format
 msgid "error getting data from cache file: %s\n"
 msgstr "Fehler beim Holen der Daten aus der Cache-Datei: %s\n"
 
-#: src/crlcache.c:1252
-#, c-format
-msgid "error fetching certificate for issuer: %s\n"
-msgstr "Fehler beim Holen des Zertifikats für den Issuer: %s\n"
-
-#: src/crlcache.c:1275
-#, c-format
-msgid "invalid issuer certificate: %s\n"
-msgstr "Ungültiges Issuer-Zertifikat: %s\n"
-
-#: src/crlcache.c:1295
+#: src/crlcache.c:1435 src/validate.c:636
 #, c-format
 msgid "unknown hash algorithm `%s'\n"
 msgstr "Ungültige Hashmethode `%s'\n"
 
-#: src/crlcache.c:1302
+#: src/crlcache.c:1442
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
 msgstr "gcry_md_open für Methode %d fehlgeschlagen: %s\n"
 
-#: src/crlcache.c:1336 src/crlcache.c:1353
+#: src/crlcache.c:1476 src/crlcache.c:1493
 msgid "got an invalid S-expression from libksba\n"
 msgstr "Ungültige S-Expression von Libksba erhalten\n"
 
-#: src/crlcache.c:1343 src/crlcache.c:1360 src/misc.c:430
+#: src/crlcache.c:1483 src/crlcache.c:1500 src/misc.c:432
 #, c-format
 msgid "converting S-expression failed: %s\n"
 msgstr "Konvertierung der S-Expression fehlgeschlagen: %s\n"
 
-#: src/crlcache.c:1375 src/ocsp.c:325
+#: src/crlcache.c:1515 src/ocsp.c:343
 #, c-format
 msgid "creating S-expression failed: %s\n"
 msgstr "Erzeugen der S-Expression fehlgeschlagen: %s\n"
 
-#: src/crlcache.c:1427
+#: src/crlcache.c:1567
 #, c-format
 msgid "ksba_crl_parse failed: %s\n"
 msgstr "ksba_crl_parse fehlgeschlagen: %s\n"
 
-#: src/crlcache.c:1443
+#: src/crlcache.c:1583
 #, c-format
 msgid "no issuer found in CRL: %s\n"
 msgstr "In der CRL wurde kein Issuer gefunden: %s\n"
 
-#: src/crlcache.c:1461
+#: src/crlcache.c:1601
 #, c-format
 msgid "error getting update times of CRL: %s\n"
 msgstr "Die \"Update Times\" konnte nicht aus der CRL bestimmt werden: %s\n"
 
-#: src/crlcache.c:1468
+#: src/crlcache.c:1608
 #, c-format
 msgid "update times of this CRL: this=%s next=%s\n"
 msgstr "Die \"Update Times\" dieser CRL sind: this=%s next=%s\n"
 
-#: src/crlcache.c:1487
+#: src/crlcache.c:1627
 #, c-format
 msgid "error getting CRL item: %s\n"
 msgstr "Fehler beim Holen eines CRL Items: %s\n"
 
-#: src/crlcache.c:1502
+#: src/crlcache.c:1642
 #, c-format
 msgid "error inserting item into temporary cache file: %s\n"
 msgstr "Fehler beim Einfügen eines Items in die temporäre Cache-Datei: %s\n"
 
-#: src/crlcache.c:1520
+#: src/crlcache.c:1660
 #, c-format
 msgid "CRL signature verification failed: %s\n"
 msgstr "Signaturprüfung der CRL ist fehlgeschlagen: %s\n"
 
-#: src/crlcache.c:1639
+#: src/crlcache.c:1668
 #, c-format
-msgid "ksba_crl_new failed: %s\n"
-msgstr "ksba_crl_new fehlgeschlagen: %s\n"
+msgid "error checking validity of CRL signing certificate: %s\n"
+msgstr "Fehler beim Püfen des CRL Signierzertifikats: %s\n"
 
-#: src/crlcache.c:1648
+#: src/crlcache.c:1793
 #, c-format
-msgid "ksba_reader_set_file failed: %s\n"
-msgstr "ksba_reader_set_file fehlgeschlagen: %s\n"
+msgid "ksba_crl_new failed: %s\n"
+msgstr "ksba_crl_new fehlgeschlagen: %s\n"
 
-#: src/crlcache.c:1654
+#: src/crlcache.c:1800
 #, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
 msgstr "ksba_crl_set_reader fehlgeschlagen: %s\n"
 
-#: src/crlcache.c:1677
+#: src/crlcache.c:1823
 #, c-format
 msgid "removed stale temporary cache file `%s'\n"
 msgstr "Die alte temporäre Cache-Datei `%s' wurde entfernt\n"
 
-#: src/crlcache.c:1680
+#: src/crlcache.c:1826
 #, c-format
 msgid "problem removing stale temporary cache file `%s': %s\n"
 msgstr "Problem beim Löschen der alten temporären Cache-Datei `%s': %s\n"
 
-#: src/crlcache.c:1690
+#: src/crlcache.c:1836
 #, c-format
 msgid "error creating temporary cache file `%s': %s\n"
 msgstr "Fehler beim Erzeugen der temporären Cache-Datei `%s': %s\n"
 
-#: src/crlcache.c:1700
+#: src/crlcache.c:1846
 #, c-format
 msgid "crl_parse_insert failed: %s\n"
 msgstr "crl_parse_insert fehlgeschlagen: %s\n"
 
-#: src/crlcache.c:1709
+#: src/crlcache.c:1855
 #, c-format
 msgid "error finishing temporary cache file `%s': %s\n"
 msgstr "Fehler beim Fertigstellen der temporären Cache-Datei `%s': %s\n"
 
-#: src/crlcache.c:1716
+#: src/crlcache.c:1862
 #, c-format
 msgid "error closing temporary cache file `%s': %s\n"
 msgstr "Fehler beim Schliessen der temporären Cache-Datei `%s': %s\n"
 
-#: src/crlcache.c:1741
+#: src/crlcache.c:1887
 #, c-format
 msgid "WARNING: new CRL still too old; it expired on %s - loading anyway\n"
 msgstr ""
 "WARNUNG: Neue CRL ist immer noch zu alt; sie verfiel am %s - wird trotzdem "
 "geladen\n"
 
-#: src/crlcache.c:1745
+#: src/crlcache.c:1891
 #, c-format
 msgid "new CRL still too old; it expired on %s\n"
 msgstr "Neue CRL ist immer noch zu alt; sie verviel am %s\n"
 
-#: src/crlcache.c:1761
+#: src/crlcache.c:1907
 #, c-format
 msgid "unknown crtical CRL extension %s\n"
 msgstr "Unbekannte kritische CRL Erweiterung %s\n"
 
-#: src/crlcache.c:1771
+#: src/crlcache.c:1917
 #, c-format
 msgid "error reading CRL extensions: %s\n"
 msgstr "Fehler beim Lesen einer CRL Erweiterung: %s\n"
 
-#: src/crlcache.c:1805
+#: src/crlcache.c:1951
 #, c-format
 msgid "creating cache file `%s'\n"
 msgstr "Cache-Datei `%s' wird erzeugt\n"
 
-#: src/crlcache.c:1809
+#: src/crlcache.c:1955
 #, c-format
 msgid "problem renaming `%s' to `%s': %s\n"
 msgstr "Problem beim Umbenennen von `%s' nach `%s': %s\n"
 
-#: src/crlcache.c:1823
+#: src/crlcache.c:1969
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
 "program start\n"
@@ -435,12 +521,12 @@
 "Update der Cache-Verzeichnissdatei fehlgeschlagen - Cache Eintrag wird mit "
 "dem nächste Programmstart verloren gehen\n"
 
-#: src/crlcache.c:1860
+#: src/crlcache.c:2005
 #, c-format
 msgid "Begin CRL dump (retrieved via %s)\n"
 msgstr "Anfang CRL Ausgabe (geholt via %s)\n"
 
-#: src/crlcache.c:1880
+#: src/crlcache.c:2025
 #, c-format
 msgid ""
 " ERROR: The CRL will not be used because it was still too old after an "
@@ -448,7 +534,7 @@
 msgstr ""
 " FEHLER: Die CRL wird nicht benutzt, da sie trotz eines Updates zu alt war!\n"
 
-#: src/crlcache.c:1882
+#: src/crlcache.c:2027
 #, c-format
 msgid ""
 " ERROR: The CRL will not be used due to an unknown critical extension!\n"
@@ -456,62 +542,92 @@
 " FEHLER: Die CRL wird nicht benutzt, da sie eine unbekannte kritische CRL "
 "Erweiterung trägt!\n"
 
-#: src/crlcache.c:1884
+#: src/crlcache.c:2029
 #, c-format
 msgid " ERROR: The CRL will not be used\n"
 msgstr " FEHLER: Die CRL wird nicht benutzt\n"
 
-#: src/crlcache.c:1891
+#: src/crlcache.c:2036
 #, c-format
 msgid " ERROR: This cached CRL may has been tampered with!\n"
 msgstr ""
 " FEHLER: Diese zwischengespeicherte CRL ist möglicherweise abgeändert "
 "worden!\n"
 
-#: src/crlcache.c:1908
+#: src/crlcache.c:2053
 msgid " WARNING: invalid cache record length\n"
 msgstr " WARNUNG: Ungültige Länge eines Cache-Datensatzes\n"
 
-#: src/crlcache.c:1915
+#: src/crlcache.c:2060
 #, c-format
 msgid "problem reading cache record: %s\n"
 msgstr "Problem beim Lesen eines Cache-Datensatzes: %s\n"
 
-#: src/crlcache.c:1926
+#: src/crlcache.c:2071
 #, c-format
 msgid "problem reading cache key: %s\n"
 msgstr "Problem beim Lesen eines Cache Schlüssels: %s\n"
 
-#: src/crlcache.c:1957
+#: src/crlcache.c:2102
 #, c-format
 msgid "error reading cache entry from db: %s\n"
 msgstr "Fehler beim Lesen eine Cache Eintrags aus der DB: %s\n"
 
-#: src/crlcache.c:1960
+#: src/crlcache.c:2105
 #, c-format
 msgid "End CRL dump\n"
 msgstr "Ende CRL Ausgabe\n"
 
-#: src/crlcache.c:1996
+#: src/crlcache.c:2217
 #, c-format
-msgid "can't open `%s': %s\n"
-msgstr "`%s' kann nicht geöffnet werden: %s\n"
+msgid "crl_fetch via DP failed: %s\n"
+msgstr "crl_fetch über den DP fehlgeschlagen: %s\n"
 
-#: src/crlfetch.c:130
+#: src/crlcache.c:2224
+#, c-format
+msgid "crl_cache_insert via DP failed: %s\n"
+msgstr "crl_cache_insert über den DP fehlgeschlagen: %s\n"
+
+#: src/crlcache.c:2255
+#, c-format
+msgid "crl_fetch via issuer failed: %s\n"
+msgstr "crl_fetch über den Issuer fehlgeschlagen: %s\n"
+
+#: src/crlcache.c:2263
+#, c-format
+msgid "crl_cache_insert via issuer failed: %s\n"
+msgstr "crl_cache_insert über den Issuer fehlgeschlagen: %s\n"
+
+#: src/crlfetch.c:61
 msgid "using \"http\" instead of \"https\"\n"
 msgstr "Es wird \"HTTP\" anstatt \"HTTPS\" verwendet\n"
 
-#: src/crlfetch.c:141
+#: src/crlfetch.c:72 src/crlfetch.c:116 src/crlfetch.c:136 src/crlfetch.c:151
+#, c-format
+msgid "CRL access not possible due to disabled %s\n"
+msgstr "CRL Zugriff nicht möglich da %s abgeschaltet ist\n"
+
+#: src/crlfetch.c:82
 #, c-format
 msgid "error retrieving `%s': %s\n"
 msgstr "Fehler beim Holen von `%s': %s\n"
 
-#: src/crlfetch.c:144
+#: src/crlfetch.c:85
 #, c-format
 msgid "error retrieving `%s': http status %u\n"
 msgstr "Fehler beim Holen von `%s': HTTP Status %u\n"
 
-#: src/dirmngr.c:88
+#: src/crlfetch.c:97 src/ldap.c:673
+#, c-format
+msgid "error initializing reader object: %s\n"
+msgstr "Fehler beim Initialisieren des \"reader\" Objekts: %s\n"
+
+#: src/crlfetch.c:165
+#, c-format
+msgid "Certificate search not possible due to disabled %s\n"
+msgstr "Zertifikatsuche ist nicht möglich da %s abgeschaltet ist\n"
+
+#: src/dirmngr.c:105
 msgid ""
 "@Commands:\n"
 " "
@@ -519,31 +635,35 @@
 "@Kommandos:\n"
 " "
 
-#: src/dirmngr.c:90
-msgid "run in server mode"
-msgstr "Im Servermodus laufen lassen"
+#: src/dirmngr.c:107
+msgid "run in server mode (foreground)"
+msgstr "Im Servermodus ausführen (Vordergrund)"
 
-#: src/dirmngr.c:91
+#: src/dirmngr.c:108
+msgid "run in daemon mode (background)"
+msgstr "Im Daemonmodus ausführen (Hintergrund)"
+
+#: src/dirmngr.c:109
 msgid "list the contents of the CRL cache"
 msgstr "Den Inhalt des CRL Caches anzeigen"
 
-#: src/dirmngr.c:92
+#: src/dirmngr.c:110
 msgid "|FILE|load CRL from FILE into cache"
 msgstr "|DATEI|Lade die CRL aus der DATEI in den Cache"
 
-#: src/dirmngr.c:93
+#: src/dirmngr.c:111
 msgid "|URL|fetch a CRL from URL"
 msgstr "|URL|Hole eine CRL von dieser URL"
 
-#: src/dirmngr.c:94
+#: src/dirmngr.c:112
 msgid "shutdown the dirmngr"
 msgstr "Den Dirmngr herunterfahren"
 
-#: src/dirmngr.c:95
+#: src/dirmngr.c:113
 msgid "flush the cache"
 msgstr "Den Cache löschen"
 
-#: src/dirmngr.c:98
+#: src/dirmngr.c:116
 msgid ""
 "@\n"
 "Options:\n"
@@ -553,83 +673,115 @@
 "Optionen:\n"
 " "
 
-#: src/dirmngr.c:100
+#: src/dirmngr.c:118 src/dirmngr-client.c:64 src/dirmngr_ldap.c:73
 msgid "verbose"
 msgstr "ausführlich"
 
-#: src/dirmngr.c:101
+#: src/dirmngr.c:119 src/dirmngr-client.c:65 src/dirmngr_ldap.c:74
 msgid "be somewhat more quiet"
 msgstr "etwas weniger Ausgaben erzeugen"
 
-#: src/dirmngr.c:102
+#: src/dirmngr.c:120
 msgid "sh-style command output"
 msgstr "Kommandausgabe für /bin/sh"
 
-#: src/dirmngr.c:103
+#: src/dirmngr.c:121
 msgid "csh-style command output"
 msgstr "Kommandausgabe für /bin/csh"
 
-#: src/dirmngr.c:104
+#: src/dirmngr.c:122
 msgid "|FILE|read options from FILE"
 msgstr "|DATEI|Lese Optionen aus DATEI"
 
-#: src/dirmngr.c:106
+#: src/dirmngr.c:124
 msgid "|LEVEL|set the debugging level to LEVEL"
 msgstr "|NAME|Setze die Debugebene auf NAME"
 
-#: src/dirmngr.c:107
+#: src/dirmngr.c:125
 msgid "do not detach from the console"
 msgstr "Nicht von der Konsole loslösen"
 
-#: src/dirmngr.c:108
+#: src/dirmngr.c:126
 msgid "|FILE|write logs to FILE"
 msgstr "|DATEI|Schreibe Logs in DATEI"
 
-#: src/dirmngr.c:109
+#: src/dirmngr.c:127
 msgid "run without asking a user"
 msgstr "Ausführung ohne Benutzernachfrage"
 
-#: src/dirmngr.c:110
+#: src/dirmngr.c:128
 msgid "force loading of outdated CRLs"
 msgstr "Laden von abgelaufenen CRLs erzwingen"
 
-#: src/dirmngr.c:111
+#: src/dirmngr.c:129
 msgid "allow sending OCSP requests"
 msgstr "OCSP Anfragen erlauben"
 
-#: src/dirmngr.c:114
+#: src/dirmngr.c:130
+msgid "inhibit the use of HTTP"
+msgstr "Sperre die Benutzung von HTTP"
+
+#: src/dirmngr.c:131
+msgid "inhibit the use of LDAP"
+msgstr "Sperre die Benutzung von LDAP"
+
+#: src/dirmngr.c:133
+msgid "ignore HTTP CRL distribution points"
+msgstr "Ãœbergehe HTTP CRL Distribution Points"
+
+#: src/dirmngr.c:135
+msgid "ignore LDAP CRL distribution points"
+msgstr "Ãœbergehe LDAP CRL Distribution Points"
+
+#: src/dirmngr.c:137
+msgid "|URL|redirect all HTTP requests to URL"
+msgstr "|URL|Leite alle HTTP Anfragen über URL"
+
+#: src/dirmngr.c:139
+msgid "|HOST|use HOST for LDAP queries"
+msgstr "|HOST|Benutze HOST für LDAP Anfragen"
+
+#: src/dirmngr.c:141
+msgid "do not use fallback hosts with --ldap-proxy"
+msgstr "Keine Benuztung der Rückgriffshosts mit --ldap-proxy"
+
+#: src/dirmngr.c:144
 msgid "|FILE|read LDAP server list from FILE"
 msgstr "|DATEI|Lese die LDAP Serverliste aus DATEI"
 
-#: src/dirmngr.c:116
+#: src/dirmngr.c:146
 msgid "add new servers discovered in CRL distribution points to serverlist"
 msgstr "Füge neue Server aus den CRL Distribution Points der Serverliste hinzu"
 
-#: src/dirmngr.c:118
+#: src/dirmngr.c:148 src/dirmngr_ldap.c:75
 msgid "|N|set LDAP timeout to N seconds"
 msgstr "|N|Setze das LDAP Timeout auf N Sekunden"
 
-#: src/dirmngr.c:120
+#: src/dirmngr.c:150
 msgid "|URL|use OCSP responder at URL"
 msgstr "|URL|Benutze den OCSP Reponder mit dieser URL"
 
-#: src/dirmngr.c:121
+#: src/dirmngr.c:151
 msgid "|FPR|OCSP response signed by FPR"
 msgstr "|FPR|OCSP Antwort ist durch FPR signiert"
 
-#: src/dirmngr.c:124
+#: src/dirmngr.c:154
 msgid "|N|do not return more than N items in one query"
 msgstr "|N|Nicht mehr als N Angaben in einer Anfrage zurückgeben"
 
-#: src/dirmngr.c:153
+#: src/dirmngr.c:156
+msgid "|FILE|listen on socket FILE"
+msgstr "|DATEI|Anfragen auf Socket DATEI annehmen"
+
+#: src/dirmngr.c:211 src/dirmngr-client.c:126 src/dirmngr_ldap.c:134
 msgid "Please report bugs to <gpa-dev at gnupg.org>.\n"
 msgstr "Berichte über Bugs (Programmfehler) bitte an <gpa-dev at gnupg.org>.\n"
 
-#: src/dirmngr.c:157
+#: src/dirmngr.c:215
 msgid "Usage: dirmngr [options] (-h for help)"
 msgstr "Gebrauch: dirmnr [Optionen] [Kommando [Argumente]]"
 
-#: src/dirmngr.c:160
+#: src/dirmngr.c:218
 msgid ""
 "Syntax: dirmngr [options] [command [args]]\n"
 "LDAP and OCSP access for GnuPG\n"
@@ -637,438 +789,972 @@
 "Syntax: dirmngr [Optionen] [Kommando [Argumente]]\n"
 "LDAP und OCSP Zugriff für GnuPG\n"
 
-#: src/dirmngr.c:231
+#: src/dirmngr.c:289
 #, c-format
 msgid "invalid debug-level `%s' given\n"
 msgstr "Ungültige Debugebene '%s' angegeben\n"
 
-#: src/dirmngr.c:232
+#: src/dirmngr.c:290
 #, c-format
 msgid "valid debug levels are: %s\n"
 msgstr "Gültige Debugebenen sind: %s\n"
 
-#: src/dirmngr.c:269
+#: src/dirmngr.c:328
 msgid "usage: dirmngr [options] "
 msgstr "Gebrauch: dirmngr [Optionen] "
 
-#: src/dirmngr.c:310 src/dirmngr.c:320
+#: src/dirmngr.c:353
+#, c-format
+msgid "error spawning ldap wrapper ripper thread: %s\n"
+msgstr "Fehler beim Starten des LDAP Wrapper Thread: %s\n"
+
+#: src/dirmngr.c:471 src/dirmngr.c:481
 #, c-format
 msgid "%s is too old (need %s, have %s)\n"
 msgstr "%s ist zu alt (benötige %s, habe %s)\n"
 
-#: src/dirmngr.c:399
+#: src/dirmngr.c:582
 #, c-format
 msgid "NOTE: no default option file `%s'\n"
 msgstr "Hinweis: Voreingestellte Optionendatei `%s' nicht vorhanden\n"
 
-#: src/dirmngr.c:404
+#: src/dirmngr.c:587 src/dirmngr.c:1248
 #, c-format
 msgid "option file `%s': %s\n"
 msgstr "Optionendatei `%s': %s\n"
 
-#: src/dirmngr.c:412
+#: src/dirmngr.c:595
 #, c-format
 msgid "reading options from `%s'\n"
 msgstr "Optionen werden von `%s' gelesen\n"
 
-#: src/dirmngr.c:507
+#: src/dirmngr.c:701
 #, c-format
 msgid "WARNING: running with faked system time %s\n"
 msgstr "WARNUNG: Prozess läuft mit getürkter Systemzeit %s\n"
 
-#: src/dirmngr.c:586
+#: src/dirmngr.c:777
+msgid "colons are not allowed in the socket name\n"
+msgstr "Doppelpunkte sind im Namen des Sockets nicht erlaubt\n"
+
+#: src/dirmngr.c:782
+msgid "name of socket too long\n"
+msgstr "Name des Sockets ist zu lang\n"
+
+#: src/dirmngr.c:789
+#, c-format
+msgid "can't create socket: %s\n"
+msgstr "Fehler beim Erzeugen des Sockets: %s\n"
+
+#: src/dirmngr.c:808
+#, c-format
+msgid "error binding socket to `%s': %s\n"
+msgstr "Fehler beim Binden des Sockets an `%s': %s\n"
+
+#: src/dirmngr.c:817
+#, c-format
+msgid "listen() failed: %s\n"
+msgstr "listen() fehlgeschlagen: %s\n"
+
+#: src/dirmngr.c:823
+#, c-format
+msgid "listening on socket `%s'\n"
+msgstr "Anfragen werden auf Socket `%s' engegengenommen\n"
+
+#: src/dirmngr.c:829
+#, c-format
+msgid "fork failed: %s\n"
+msgstr "fork() fehlgeschlagen: %s\n"
+
+#: src/dirmngr.c:847
+msgid "out of core\n"
+msgstr "Nicht genügend Hauptspeicher vorhanden\n"
+
+#: src/dirmngr.c:886
+#, c-format
+msgid "setsid() failed: %s\n"
+msgstr "setsid() fehlgeschlagen: %s\n"
+
+#: src/dirmngr.c:896
+#, c-format
+msgid "chdir to / failed: %s\n"
+msgstr "chdir nach / fehlgeschlagen: %s\n"
+
+#: src/dirmngr.c:945
 #, c-format
 msgid "fetching CRL from `%s' failed: %s\n"
 msgstr "Holen der CRL von `%s' fehlgeschlagen: %s\n"
 
-#: src/dirmngr.c:592
+#: src/dirmngr.c:951
 #, c-format
 msgid "processing CRL from `%s' failed: %s\n"
 msgstr "Verarbeitung der CRL von `%s' fehlgeschlagen: %s\n"
 
-#: src/dirmngr.c:714
+#: src/dirmngr.c:1095
 #, c-format
 msgid "error opening `%s': %s\n"
 msgstr "Fehler beim Öffnen von `%s': %s\n"
 
-#: src/dirmngr.c:731
+#: src/dirmngr.c:1112
 #, c-format
 msgid "%s:%u: line too long - skipped\n"
 msgstr "%s:%u: Zeile ist zu lang - übergangen\n"
 
-#: src/dirmngr.c:759
+#: src/dirmngr.c:1140
 #, c-format
 msgid "%s:%u: no hostname given\n"
 msgstr "%s:%u: Kein Hostname angegeben\n"
 
-#: src/dirmngr.c:778
+#: src/dirmngr.c:1159
 #, c-format
 msgid "%s:%u: password given without user\n"
 msgstr "%s:%u: Passwort angegeben ohne Username\n"
 
-#: src/dirmngr.c:799
+#: src/dirmngr.c:1180
 #, c-format
 msgid "%s:%u: skipping this line\n"
 msgstr "%s:%u: Diese Zeile wird übersprungen\n"
 
-#: src/http.c:467
+#: src/dirmngr.c:1280
+msgid "SIGHUP received - re-reading configuration and flushing caches\n"
+msgstr ""
+"SIGHUP empfangen - lese die Konfiguration erneut und lösche die Caches\n"
+
+#: src/dirmngr.c:1294
+msgid "SIGUSR2 received - no action defined\n"
+msgstr "SIGUSR2 empfangen - keine Aktion definiert\n"
+
+#: src/dirmngr.c:1299
+msgid "SIGTERM received - shutting down ...\n"
+msgstr "SIGTERM empfangen - wird heruntergefahren ...\n"
+
+#: src/dirmngr.c:1301
 #, c-format
-msgid "invalid %s: %s\n"
-msgstr "Ungültiger %s: %s\n"
+msgid "SIGTERM received - still %d active connections\n"
+msgstr "SIGTERM empfangen - immer noch %d Verbindungen aktiv\n"
 
-#: src/http.c:820 src/http.c:856
+#: src/dirmngr.c:1306
+msgid "shutdown forced\n"
+msgstr "Herunterfahren wurde erzwungen\n"
+
+#: src/dirmngr.c:1314
+msgid "SIGINT received - immediate shutdown\n"
+msgstr "SIGINT empfangen - wird sofort heruntergefahren\n"
+
+#: src/dirmngr.c:1321
+#, c-format
+msgid "signal %d received - no action defined\n"
+msgstr "Signal %d empfangen - keine Aktion definiert\n"
+
+#: src/dirmngr.c:1335
+#, c-format
+msgid "handler for fd %d started\n"
+msgstr "Routine für fd %d gestartet\n"
+
+#: src/dirmngr.c:1340
+#, c-format
+msgid "handler for fd %d terminated\n"
+msgstr "Routine für fd %d beendet\n"
+
+#: src/dirmngr.c:1396
+#, c-format
+msgid "accept failed: %s - waiting 1s\n"
+msgstr "accept() fehlgeschlagen: %s - warte 1s\n"
+
+#: src/dirmngr.c:1403
+#, c-format
+msgid "error spawning connection handler: %s\n"
+msgstr "Fehler beim Starten des Verbindungshandler: %s\n"
+
+#: src/http.c:475
+#, c-format
+msgid "invalid HTTP proxy (%s): %s\n"
+msgstr "Ungültiger HTTP Proxy (%s): %s\n"
+
+#: src/http.c:827 src/http.c:863
 #, c-format
 msgid "error resolving `%s': host not found\n"
 msgstr "Fehler beim Auflösen von `%s': Host nicht gefunden\n"
 
-#: src/http.c:833 src/http.c:864
+#: src/http.c:840 src/http.c:871
 #, c-format
 msgid "error creating socket: %s\n"
 msgstr "Fehler beim Erzeugen des Scokets: %s\n"
 
-#: src/http.c:919
+#: src/http.c:926
 #, c-format
 msgid "network write failed: %s\n"
 msgstr "Schreiben auf dem Netzwerk fehlgeschlagen: %s\n"
 
-#: src/ldap.c:72 src/ldap.c:183
+#: src/ldap.c:125
 #, c-format
-msgid "found attribute `%s'\n"
-msgstr "Attribut `%s' gefunden\n"
+msgid "invalid char 0x%02x in host name - not added\n"
+msgstr "Ungültiges Zeichen 0x%02X im Hostnamen - nicht hinzugefügt\n"
 
-#: src/ldap.c:95 src/ldap.c:206
+#: src/ldap.c:129
 #, c-format
-msgid "found attributes `%s' at second try\n"
-msgstr "Attribute `%s' im zweiten Versuch gefunden\n"
-
-#: src/ldap.c:247
-msgid "timeout while waiting for ldap_search result\n"
-msgstr "Timeout beim Warten auf das ldap_search Resultat\n"
+msgid "adding `%s:%d' to the ldap server list\n"
+msgstr "`%s:%d' wird der LDAP Serverliste hinzugefügt\n"
 
-#: src/ldap.c:254
+#: src/ldap.c:132 src/misc.c:652
 #, c-format
-msgid "ldap_result for an ldap_search failed: %s\n"
-msgstr "ldap_result für eine ldap_search fehlgeschlagen: %s\n"
+msgid "malloc failed: %s\n"
+msgstr "malloc() fehlgeschlagen: %s\n"
 
-#: src/ldap.c:269
-msgid "ldap_parse_result failed\n"
-msgstr "ldap_parse_result fehlgeschlagen\n"
-
-#: src/ldap.c:273
+#: src/ldap.c:207
 #, c-format
-msgid "ldap search result is: %s\n"
-msgstr "Resultat der LDAP Suche ist: %s\n"
+msgid "error printing log line: %s\n"
+msgstr "Fehler beim Schreiben einer Logzeile: %s\n"
 
-#: src/ldap.c:281
+#: src/ldap.c:253
 #, c-format
-msgid "unexpected message type %d returned for ldap_search\n"
-msgstr "Unerwarteter Nachrichtentyp %d von ldap_search erhalten\n"
+msgid "select failed: %s\n"
+msgstr "select() fehlgeschlagen: %s\n"
 
-#: src/ldap.c:342
+#: src/ldap.c:279
 #, c-format
-msgid "ldap_init failed for '%s:%d': %s\n"
-msgstr "ldap_init für `%s:%d' fehlgeschlagen: %s\n"
+msgid "error reading log from ldap wrapper %d: %s\n"
+msgstr "Fehler beim Lesen des Logs vom LDAP Wrapper %d: %s\n"
 
-#: src/ldap.c:352
+#: src/ldap.c:306
 #, c-format
-msgid "ldap_simple_bind failed for user '%s': %s\n"
-msgstr "ldap_simple_bind für User `%s' fehlgeschlagen: %s\n"
+msgid "waiting for ldap wrapper %d failed: %s\n"
+msgstr "Warten auf den LDAP Wrapper %d fehlgeschlagen: %s\n"
 
-#: src/ldap.c:353 src/ldap.c:761 src/ldap.c:776
-msgid "[none]"
-msgstr "[nichts]"
+#: src/ldap.c:311
+#, c-format
+msgid "ldap wrapper %d ready: terminated\n"
+msgstr "LDAP Wrapper %d fertig: abgebrochen\n"
 
-#: src/ldap.c:368
+#: src/ldap.c:314
 #, c-format
-msgid "ldap_result for bind failed: %s\n"
-msgstr "ldap_result für ldap_bind fehlgeschlagen: %s\n"
+msgid "ldap wrapper %d ready: exit status %d\n"
+msgstr "LDAP Wrapper %d fertig: Beendigunsstatus %d\n"
 
-#: src/ldap.c:370
-msgid "timeout while waiting for ldap_bind to complete\n"
-msgstr "Tiemout während des Wartens auf ldap_bind Ergebniss\n"
+#: src/ldap.c:327
+#, c-format
+msgid "ldap wrapper %d stalled - killing\n"
+msgstr "LDAP Wrapper %d versackt - abgeschossen\n"
 
-#: src/ldap.c:373 src/ldap.c:780
+#: src/ldap.c:380 src/ldap.c:401
 #, c-format
-msgid "unexpected message type %d returned for ldap_bind\n"
-msgstr "Unerwarteter Nachrichtentyp %d von ldap_bind erhalten\n"
+msgid "reading from ldap wrapper %d failed: %s\n"
+msgstr "Lesen vom LDAP Wrapper %d fehlgeschlagen: %s\n"
 
-#: src/ldap.c:389 src/ldap.c:931
+#: src/ldap.c:546 src/ldap.c:552
 #, c-format
-msgid "ldap_search failed: %s\n"
-msgstr "ldap_search fehlgeschlagen: %s\n"
+msgid "error creating a pipe: %s\n"
+msgstr "Fehler beim Erzeugen einer Pipe: %s\n"
 
-#: src/ldap.c:454 src/ldap.c:461 src/ldap.c:472 src/ldap.c:747 src/ldap.c:758
-#: src/ldap.c:773
+#: src/ldap.c:562
 #, c-format
-msgid "%s failed for `"
-msgstr "%s fehlgeschlagen für '"
+msgid "error forking process: %s\n"
+msgstr "Fehler beim Forken eines Prozesses: %s\n"
 
-#: src/ldap.c:510
+#: src/ldap.c:610 src/ldap.c:617 src/ldap.c:624
 #, c-format
-msgid "invalid char 0x%02x in host name - not added\n"
-msgstr "Ungültiges Zeichen 0x%02X im Hostnamen - nicht hinzugefügt\n"
+msgid "dup2 failed in child: %s\n"
+msgstr "dup2() im Kindprozess fehlgeschlagen: %s\n"
 
-#: src/ldap.c:515
+#: src/ldap.c:642
 #, c-format
-msgid "adding `%s:%d' to the ldap server list\n"
-msgstr "`%s:%d' wird der LDAP Serverliste hinzugefügt\n"
+msgid "error running `%s': %s\n"
+msgstr "Fehler beim Ausführen von `%s': %s\n"
 
-#: src/ldap.c:547
-msgid "' is not an LDAP URL\n"
-msgstr "' ist kein LDAP URL\n"
-
-#: src/ldap.c:555
-msgid "' is an invalid LDAP URL\n"
-msgstr "' ist ein ungültiger LDAP URL\n"
+#: src/ldap.c:654
+#, c-format
+msgid "error allocating memory: %s\n"
+msgstr "Fehler beim Allozieren von Speicher: %s\n"
 
-#: src/ldap.c:733
+#: src/ldap.c:1101
 #, c-format
 msgid "start_cert_fetch: invalid pattern `%s'\n"
 msgstr "start_cert_fetch: Ungültiges Muster `%s'\n"
 
-#: src/ldap.c:919
+#: src/ldap.c:1239
 msgid "ldap_search hit the size limit of the server\n"
 msgstr "ldap_search erreichte die Größengrenze des Servers\n"
 
-#: src/misc.c:426
+#: src/misc.c:428
 msgid "invalid canonical S-expression found\n"
 msgstr "Ungültige kanonische S-Expression gefunden\n"
 
-#: src/misc.c:450
+#: src/misc.c:452
 #, c-format
 msgid "gcry_md_open failed: %s\n"
 msgstr "gcry_md_open fehlgeschlagen: %s\n"
 
-#: src/misc.c:455
+#: src/misc.c:457
 #, c-format
 msgid "oops: ksba_cert_hash failed: %s\n"
 msgstr "Nanu: ksba_cert_hash fehlgeschlagen: %s\n"
 
-#: src/ocsp.c:65
+#: src/misc.c:491
+msgid "[none]"
+msgstr "[nichts]"
+
+#: src/misc.c:668
+msgid "bad URL encoding detected\n"
+msgstr "Fehlerhafte URL Kodierung erkannt\n"
+
+#: src/ocsp.c:67
 #, c-format
 msgid "error reading from responder: %s\n"
 msgstr "Fehler beim Lesen vom Responder: %s\n"
 
-#: src/ocsp.c:83
+#: src/ocsp.c:85
 #, c-format
 msgid "response from server too large; limit is %d bytes\n"
 msgstr "Antwort vom Server zu lang; die Grenze sind %d Bytes\n"
 
 #: src/ocsp.c:120
+msgid "OCSP request not possible due to disabled HTTP\n"
+msgstr "OCSP Anfrage nicht möglich da HTTP abgeschaltet ist\n"
+
+#: src/ocsp.c:127
 #, c-format
 msgid "error setting OCSP target: %s\n"
 msgstr "Fehler beim Setzen des OCSP Ziels: %s\n"
 
-#: src/ocsp.c:138
+#: src/ocsp.c:145
 #, c-format
 msgid "error building OCSP request: %s\n"
 msgstr "Fehler beim Aufbauen der OCSP Anfrage: %s\n"
 
-#: src/ocsp.c:145
+#: src/ocsp.c:154
 #, c-format
 msgid "error connecting to `%s': %s\n"
 msgstr "Fehler beim Verbinden mit '%s': %s\n"
 
-#: src/ocsp.c:169 src/ocsp.c:185
+#: src/ocsp.c:178 src/ocsp.c:194
 #, c-format
 msgid "error reading HTTP response for `%s': %s\n"
 msgstr "Fehler beim Lesen der HTTP Antwort von `%s': %s\n"
 
-#: src/ocsp.c:173
+#: src/ocsp.c:182
 #, c-format
 msgid "error accessing `%s': http status %u\n"
 msgstr "Fehler beim Zugreifen auf `%s': HTTP Status %u\n"
 
-#: src/ocsp.c:194
+#: src/ocsp.c:203
 #, c-format
 msgid "error parsing OCSP response for `%s': %s\n"
 msgstr "Fehler beim Zerlegen der OCSP Antwort für `%s': %s\n"
 
-#: src/ocsp.c:216 src/ocsp.c:226
+#: src/ocsp.c:225 src/ocsp.c:235
 #, c-format
 msgid "OCSP responder at `%s' status: %s\n"
 msgstr "OCSP Responder `%s' Status: %s\n"
 
-#: src/ocsp.c:221
+#: src/ocsp.c:230
 #, c-format
 msgid "hashing the OCSP response for `%s' failed: %s\n"
 msgstr "Hashen der OCSP Antwort für `%s' fehlgeschlagen: %s\n"
 
-#: src/ocsp.c:317
+#: src/ocsp.c:335
 msgid "only SHA-1 is supported for OCSP responses\n"
 msgstr "Lediglich SHA-1 wird bei OCSP Antworten unterstützt\n"
 
-#: src/ocsp.c:367
+#: src/ocsp.c:385
 msgid "no suitable certificate found to verify the OCSP response\n"
 msgstr ""
 "Kein benutzbares Zertifikat zur Überprüfung der OCSP Antwort gefunden\n"
 
-#: src/ocsp.c:396
+#: src/ocsp.c:421 src/validate.c:419
 #, c-format
-msgid "failed to allocate OCSP context: %s\n"
-msgstr "Fehler beim Bereitstellen eines OCSP Kontext: %s\n"
+msgid "issuer certificate not found: %s\n"
+msgstr "Herausgeberzertifikat nicht gefunden: %s\n"
 
-#: src/ocsp.c:406
+#: src/ocsp.c:431
 msgid "caller did not return the target certificate\n"
 msgstr "Aufrufer gab das Ziel Zertifikat nicht zurück\n"
 
-#: src/ocsp.c:413
+#: src/ocsp.c:438
 msgid "caller did not return the issuing certificate\n"
 msgstr "Aufrufer gab das Issuer Zertifikat nicht zurück\n"
 
-#: src/ocsp.c:445
+#: src/ocsp.c:448
+#, c-format
+msgid "failed to allocate OCSP context: %s\n"
+msgstr "Fehler beim Bereitstellen eines OCSP Kontext: %s\n"
+
+#: src/ocsp.c:482
 #, c-format
 msgid "can't get authorityInfoAccess: %s\n"
 msgstr "authorityInfoAccess kann nicht geholt werden: %s\n"
 
-#: src/ocsp.c:452
+#: src/ocsp.c:489
 msgid "no default OCSP responder defined\n"
 msgstr "Kein  voreingestellter OCSP Responder definiert\n"
 
-#: src/ocsp.c:458
+#: src/ocsp.c:495
 msgid "no default OCSP signer defined\n"
 msgstr "Kein voreingestellter OCSP \"Signer\" definiert\n"
 
-#: src/ocsp.c:465
+#: src/ocsp.c:502
 #, c-format
 msgid "using default OCSP responder `%s'\n"
 msgstr "Der voreingestellte OCSP Responder `%s' wird benutzt\n"
 
-#: src/ocsp.c:470
+#: src/ocsp.c:507
 #, c-format
 msgid "using OCSP responder `%s'\n"
 msgstr "Der OCSP Responder `%s' wird benutzt\n"
 
-#: src/ocsp.c:477
+#: src/ocsp.c:514
 #, c-format
 msgid "failed to establish a hashing context for OCSP: %s\n"
 msgstr "Kontext zum Hashen von OCSP kann nicht erzeugt werden: %s\n"
 
-#: src/ocsp.c:507
+#: src/ocsp.c:544
 #, c-format
 msgid "error getting OCSP status for target certificate: %s\n"
 msgstr "Fehler beim Holen des OCSP Status für das Zielzertifikat: %s\n"
 
-#: src/ocsp.c:514
+#: src/ocsp.c:551
 #, c-format
 msgid "certificate status is: %s  (this=%s  next=%s)\n"
 msgstr "Zertifikatstatus ist: %s  (this=%s  next=%s)\n"
 
-#: src/ocsp.c:515
+#: src/ocsp.c:552
 msgid "good"
 msgstr "Gut"
 
-#: src/ocsp.c:516
+#: src/ocsp.c:553
 msgid "revoked"
 msgstr "Widerrufen"
 
-#: src/ocsp.c:517
+#: src/ocsp.c:554
 msgid "unknown"
 msgstr "Unbekannt"
 
-#: src/ocsp.c:518
+#: src/ocsp.c:555
 msgid "none"
 msgstr "Kein"
 
-#: src/ocsp.c:521
+#: src/ocsp.c:558
 #, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
 msgstr "Zertifikat wurde widerrufen am: %s wegen: %s\n"
 
-#: src/ocsp.c:554
+#: src/ocsp.c:591
 msgid "OCSP responder returned an too old status\n"
 msgstr "OCSP Responder gab einen zu alten Status zurück\n"
 
-#: src/ocsp.c:564
+#: src/ocsp.c:601
 msgid "OCSP responder returned a non-current status\n"
 msgstr "OCSP Responder gab einen nicht aktuellen Status zurück\n"
 
-#: src/server.c:183
+#: src/server.c:131 src/server.c:438 src/server.c:520 src/server.c:771
+#: src/server.c:824
 #, c-format
 msgid "assuan_inquire failed: %s\n"
 msgstr "assuan_inquire fehlgeschlagen: %s\n"
 
-#: src/server.c:318
-#, c-format
-msgid "crl_fetch via DP failed: %s\n"
-msgstr "crl_fetch über den DP fehlgeschlagen: %s\n"
-
-#: src/server.c:326
-#, c-format
-msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "crl_cache_insert über den DP fehlgeschlagen: %s\n"
-
-#: src/server.c:349
-#, c-format
-msgid "crl_fetch via issuer failed: %s\n"
-msgstr "crl_fetch über den Issuer fehlgeschlagen: %s\n"
-
-#: src/server.c:358
-#, c-format
-msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "crl_cache_insert über den Issuer fehlgeschlagen: %s\n"
-
-#: src/server.c:439
+#: src/server.c:301
 msgid "serialno missing in cert ID"
 msgstr "Seriennummer fehlt in der Cert-ID"
 
-#: src/server.c:490 src/server.c:628 src/server.c:656 src/server.c:681
+#: src/server.c:352 src/server.c:468 src/server.c:547 src/server.c:687
+#: src/server.c:715 src/server.c:739 src/server.c:792 src/server.c:845
 #, c-format
 msgid "command %s failed: %s\n"
 msgstr "Kommando %s fehlgeschlagen: %s\n"
 
-#: src/server.c:557
+#: src/server.c:615
 #, c-format
 msgid "start_cert_fetch failed: %s\n"
 msgstr "start_cert_fetch fehlgeschlagen: %s\n"
 
-#: src/server.c:583
+#: src/server.c:642
 #, c-format
 msgid "fetch_next_cert failed: %s\n"
 msgstr "fetch_next_cert fehlgeschlagen: %s\n"
 
-#: src/server.c:602
+#: src/server.c:661
 #, c-format
 msgid "error sending data: %s\n"
 msgstr "Fehler beim Senden der Daten: %s\n"
 
-#: src/server.c:611
+#: src/server.c:670
 #, c-format
 msgid "max_replies %d exceeded\n"
 msgstr "max_replies %d überschritten\n"
 
-#: src/server.c:677
+#: src/server.c:735
 msgid "no data stream"
 msgstr "Kein Datenstrom"
 
-#: src/server.c:735
+#: src/server.c:898
+#, c-format
+msgid "can't allocate control structure: %s\n"
+msgstr "Fehler beim Erzeugen der Kontrollstruktur: %s\n"
+
+#: src/server.c:921
 #, c-format
 msgid "failed to initialize the server: %s\n"
 msgstr "Fehler beim Initialisieren des Servers: %s\n"
 
-#: src/server.c:743
+#: src/server.c:929
 #, c-format
 msgid "failed to the register commands with Assuan: %s\n"
 msgstr "Fehler beim Registrieren der Kommandos gegen Assuan: %s\n"
 
-#: src/server.c:769
+#: src/server.c:949
 #, c-format
 msgid "Assuan accept problem: %s\n"
 msgstr "Assuan accept Problem: %s\n"
 
-#: src/server.c:776
+#: src/server.c:956
 #, c-format
 msgid "Assuan processing failed: %s\n"
 msgstr "Assuan Verarbeitung fehlgeschlagen: %s\n"
 
-#~ msgid "ldap_simple_bind failed: %s\n"
-#~ msgstr "ldap_simple_bind fehlgeschlagen: %s\n"
+#: src/validate.c:92
+#, c-format
+msgid "critical certificate extension %s is not supported"
+msgstr "Die kritische Zertifikaterweiterung %s wird nicht unterstützt"
+
+#: src/validate.c:152
+msgid "note: non-critical certificate policy not allowed"
+msgstr "Notiz: Die unkritische Zertifikatrichtlinie ist nicht erlaubt"
+
+#: src/validate.c:157
+msgid "certificate policy not allowed"
+msgstr "Die Zertifikatrichtlinie ist nicht erlaubt"
+
+#: src/validate.c:177
+msgid "issuer certificate is not marked as a CA"
+msgstr "Das Herausgeberzertifikat ist nicht für eine CA gekennzeichnet"
+
+#: src/validate.c:302
+#, c-format
+msgid "certificate with invalid validity: %s"
+msgstr "Zertifikat mit unzulässiger Gültigkeit: %s"
+
+#: src/validate.c:320
+msgid "certificate not yet valid"
+msgstr "Das Zertifikat ist noch nicht gültig"
+
+#: src/validate.c:331
+msgid "certificate has expired"
+msgstr "Das Zertifikat ist abgelaufen"
+
+#: src/validate.c:360
+msgid "selfsigned certificate has a BAD signature"
+msgstr "Das eigenbeglaubigte Zertifikat hat eine FALSCHE Signatur"
+
+#: src/validate.c:378
+msgid "root certificate is not marked trusted"
+msgstr "Das Wurzelzertifikat ist nicht als vertrauenswürdig markiert"
+
+#: src/validate.c:380
+#, c-format
+msgid "fingerprint=%s\n"
+msgstr "Fingerprint=%s\n"
+
+#: src/validate.c:386
+#, c-format
+msgid "checking trustworthiness of root certificate failed: %s\n"
+msgstr ""
+"Prüfung der Vertrauenswürdigkeit des Wurzelzertifikats fehlgeschlagen: %s\n"
+
+#: src/validate.c:401
+msgid "certificate chain too long\n"
+msgstr "Der Zertifikatkette ist zu lang\n"
+
+#: src/validate.c:413
+msgid "issuer certificate not found"
+msgstr "Herausgeberzertifikat nicht gefunden"
+
+#: src/validate.c:439
+msgid "certificate has a BAD signature"
+msgstr "Das Zertifikat hat eine FALSCHE Signatur"
+
+#: src/validate.c:463
+msgid "found another possible matching CA certificate - trying again"
+msgstr ""
+"Eine anderes möglicherweise passendes CA-Zertifikat gefunden - versuche "
+"nochmal"
+
+#: src/validate.c:488
+#, c-format
+msgid "certificate chain longer than allowed by CA (%d)"
+msgstr "Die Zertifikatkette ist länger als von der CA erlaubt (%d)"
+
+#: src/validate.c:725
+msgid "DSA requires the use of a 160 bit hash algorithm\n"
+msgstr "DSA benötigt eine 160 Bit Hashmethode\n"
+
+#: src/validate.c:832
+msgid "no key usage specified - assuming all usages\n"
+msgstr ""
+"Schlüsselverwendungszweck nicht vorhanden - für alle Zwecke akzeptiert\n"
+
+#: src/validate.c:842
+#, c-format
+msgid "error getting key usage information: %s\n"
+msgstr "Fehler beim holen der Schlüsselbenutzungsinformationen: %s\n"
+
+#: src/validate.c:852
+msgid "certificate should have not been used for certification\n"
+msgstr "Das Zertifikat hätte nicht zum Zertifizieren benutzt werden sollen\n"
+
+#: src/validate.c:864
+msgid "certificate should have not been used for OCSP response signing\n"
+msgstr ""
+"Das Zertifikat hätte nicht zum Signieren von OCSP Antworten benutzt werden "
+"sollen\n"
+
+#: src/validate.c:875
+msgid "certificate should have not been used for encryption\n"
+msgstr "Das Zertifikat hätte nicht zum Verschlüsseln benutzt werden sollen\n"
+
+#: src/validate.c:877
+msgid "certificate should have not been used for signing\n"
+msgstr "Das Zertifikat hätte nicht zum Signieren benutzt werden sollen\n"
+
+#: src/validate.c:878
+msgid "certificate is not usable for encryption\n"
+msgstr "Das Zertifikat kann nicht zum Verschlüsseln benutzt werden\n"
+
+#: src/validate.c:879
+msgid "certificate is not usable for signing\n"
+msgstr "Das Zertifikat kann nicht zum Signieren benutzt werden\n"
+
+#: src/dirmngr-client.c:66
+msgid "use OCSP instead of CRLs"
+msgstr "OCSP anstatt CRL benutzen"
+
+#: src/dirmngr-client.c:67
+msgid "check whether a dirmngr is running"
+msgstr "Teste ob der dirmngr noch läuft"
+
+#: src/dirmngr-client.c:68
+msgid "add a certificate to the cache"
+msgstr "Ein Zertifikat dem Cache zufügen"
+
+#: src/dirmngr-client.c:69
+msgid "validate a certificate"
+msgstr "Zertifikat prüfen"
+
+#: src/dirmngr-client.c:70
+msgid "lookup a certificate"
+msgstr "Zertifikat auffinden"
+
+#: src/dirmngr-client.c:130
+msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
+msgstr ""
+"Gebrauch: dirmngr-client [Optionen] [Zertdatei|Muster] (-h für Hilfe)\n"
+
+#: src/dirmngr-client.c:134
+msgid ""
+"Syntax: dirmngr-client [options] [certfile|pattern]\n"
+"Test an X.509 certificate against a CRL or do an OCSP check\n"
+"The process returns 0 if the certificate is valid, 1 if it is\n"
+"not valid and other error codes for general failures\n"
+msgstr ""
+"Gebrauch: dirmngr-client [Optionen]  [Zertdatei|Muster]\n"
+"Teste ein X.509 Zertifikat gegen eine CRL oder führe eine OCSP Prüfung "
+"durch\n"
+"The Prozess gibt 0 zurück wenn das Zertifikat gültig ist, 1 wenn es nicht\n"
+"gültig ist und weitere Werte bei anderen Fehlern.\n"
+
+#: src/dirmngr-client.c:220
+#, c-format
+msgid "error reading certificate from stdin: %s\n"
+msgstr "Fehler beim Lesen des Zertifikats von der Standardeingabe: %s\n"
+
+#: src/dirmngr-client.c:227
+#, c-format
+msgid "error reading certificate from `%s': %s\n"
+msgstr "Fehler beim Lesen des Zertifikats von `%s': %s\n"
+
+#: src/dirmngr-client.c:241
+msgid "certificate too large to make any sense\n"
+msgstr "Zertifikat ist zu groß um Sinnvoll zu sein\n"
+
+#: src/dirmngr-client.c:260
+#, c-format
+msgid "lookup failed: %s\n"
+msgstr "Aufsuchen fehlgeschlagen: %s\n"
+
+#: src/dirmngr-client.c:287
+msgid "a dirmngr daemon is up and running\n"
+msgstr "Ein dirmngr ist vorhanden und aktiv\n"
+
+#: src/dirmngr-client.c:309
+#, c-format
+msgid "validation of certificate failed: %s\n"
+msgstr "Prüfung des Zertifikats fehlgeschlagen: %s\n"
+
+#: src/dirmngr-client.c:316
+msgid "certificate is valid\n"
+msgstr "Zertifikat ist gültig\n"
+
+#: src/dirmngr-client.c:322
+msgid "certificate has been revoked\n"
+msgstr "Zertifikat wurde widerrufen\n"
+
+#: src/dirmngr-client.c:327
+#, c-format
+msgid "certificate check failed: %s\n"
+msgstr "Zertifikatprüfung fehlgeschlagen: %s\n"
+
+#: src/dirmngr-client.c:338
+#, c-format
+msgid "got status: `%s'\n"
+msgstr "Erhielt Status: `%s'\n"
+
+#: src/dirmngr-client.c:353
+#, c-format
+msgid "error writing base64 encoding: %s\n"
+msgstr "Fehler beim Schreiben der Base-64 Darstellung: %s\n"
+
+#: src/dirmngr-client.c:385
+msgid "apparently no running dirmngr\n"
+msgstr "Offensichtlich ist kein Dirmngr vorhanden\n"
+
+#: src/dirmngr-client.c:390
+msgid "no running dirmngr - starting one\n"
+msgstr "Dirmngr läuft nicht - ein neuer wird gestartet\n"
+
+#: src/dirmngr-client.c:423
+msgid "malformed DIRMNGR_INFO environment variable\n"
+msgstr "Fehlerhafte DIRMNGR_INFO Variable\n"
+
+#: src/dirmngr-client.c:438
+#, c-format
+msgid "dirmngr protocol version %d is not supported\n"
+msgstr "Dirmngr Protocol Version %d wird nicht unterstützt\n"
+
+#: src/dirmngr-client.c:454
+msgid "can't connect to the dirmngr - trying fall back\n"
+msgstr "Verbindung zum Dirmngr nicht möglich - Rückfallmethode wird versucht\n"
+
+#: src/dirmngr-client.c:462
+#, c-format
+msgid "can't connect to the dirmngr: %s\n"
+msgstr "Verbindung zum Dirmngr nicht möglich: %s\n"
+
+#: src/dirmngr-client.c:545
+#, c-format
+msgid "unsupported inquiry `%s'\n"
+msgstr "Nicht unterstützte INQUIRY `%s'\n"
+
+#: src/dirmngr-client.c:626
+#, c-format
+msgid "looking up `%s'\n"
+msgstr "Auffinden von `%s'\n"
+
+#: src/no-libgcrypt.c:39
+#, c-format
+msgid "error allocating enough memory: %s\n"
+msgstr "Fehler beim Allozieren von genügend Speicher: %s\n"
+
+#: src/dirmngr_ldap.c:76
+msgid "return all values in a record oriented format"
+msgstr "Alle Werte in einem Record Format zurückgeben"
+
+#: src/dirmngr_ldap.c:79
+msgid "|NAME|ignore host part and connect through NAME"
+msgstr "|NAME|Host Teil ignorieren und über NAME verbinden"
+
+#: src/dirmngr_ldap.c:80
+msgid "|NAME|connect to host NAME"
+msgstr "|NAME|Verbinde mit dem Host NAME"
+
+#: src/dirmngr_ldap.c:81
+msgid "|N|connect to port N"
+msgstr "|N|Verbinde mit dem Port N"
+
+#: src/dirmngr_ldap.c:82
+msgid "|NAME|use user NAME for authentication"
+msgstr "|NAME|Benutze NAME zur Authentifizierung"
+
+#: src/dirmngr_ldap.c:83
+msgid "|PASS|use password PASS for authentication"
+msgstr "Benutze Passwort PASS zur Authentifizierung"
+
+#: src/dirmngr_ldap.c:85
+msgid "take password from $DIRMNGR_LDAP_PASS"
+msgstr "Nimm das Passwort von $DIRMNGR_LDAP_PASS"
+
+#: src/dirmngr_ldap.c:86
+msgid "|STRING|query DN STRING"
+msgstr "|STRING|Frage den DN STRING ab"
+
+#: src/dirmngr_ldap.c:87
+msgid "|STRING|use STRING as filter expression"
+msgstr "|STRING|Benutze STRING als Filterausdruck"
+
+#: src/dirmngr_ldap.c:88
+msgid "|STRING|return the attribute STRING"
+msgstr "|STRING|Gib das Attribut STRING zurück"
+
+#: src/dirmngr_ldap.c:138
+msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
+msgstr "Gebrauch: dirmngr_ldap [Optionen] [URL] (-h für Hilfe)\n"
+
+#: src/dirmngr_ldap.c:141
+msgid ""
+"Syntax: dirmngr_ldap [options] [URL]\n"
+"Internal LDAP helper for Dirmngr.\n"
+"Interface and options may change without notice.\n"
+msgstr ""
+"Gebrauch: dirmngr_ldap [Optionen] [URL] (-h für Hilfe)\n"
+"Internes LDAP Hilfprogramm für Drimngr.\n"
+"Interface und Optionen können sich mit jedem Release ändern.\n"
+
+#: src/dirmngr_ldap.c:230
+#, c-format
+msgid "invalid port number %d\n"
+msgstr "Ungültige Portnummer %d\n"
+
+#: src/dirmngr_ldap.c:261
+#, c-format
+msgid "scanning result for attribute `%s'\n"
+msgstr "Absuchen des Ergebnisses nach Attribut `%s'\n"
+
+#: src/dirmngr_ldap.c:268 src/dirmngr_ldap.c:328 src/dirmngr_ldap.c:352
+#: src/dirmngr_ldap.c:363 src/dirmngr_ldap.c:473
+#, c-format
+msgid "error writing to stdout: %s\n"
+msgstr "Fehler beim Schreiben auf Standardausgabe: %s\n"
+
+#: src/dirmngr_ldap.c:282
+#, c-format
+msgid "          available attribute `%s'\n"
+msgstr "        verfügbare Attribute `%s'\n"
+
+#: src/dirmngr_ldap.c:307
+#, c-format
+msgid "attribute `%s' not found\n"
+msgstr "Attribut `%s' nicht gefunden\n"
+
+#: src/dirmngr_ldap.c:313
+#, c-format
+msgid "found attribute `%s'\n"
+msgstr "Attribut `%s' gefunden\n"
+
+#: src/dirmngr_ldap.c:410
+#, c-format
+msgid "processing url `%s'\n"
+msgstr "Verarbeiten der URL `%s'\n"
+
+#: src/dirmngr_ldap.c:412
+#, c-format
+msgid "          user `%s'\n"
+msgstr "           Benutzer `%s'\n"
+
+#: src/dirmngr_ldap.c:414
+#, c-format
+msgid "          pass `%s'\n"
+msgstr "           Passwort `%s'\n"
+
+#: src/dirmngr_ldap.c:416
+#, c-format
+msgid "          host `%s'\n"
+msgstr "               Host `%s'\n"
+
+#: src/dirmngr_ldap.c:417
+#, c-format
+msgid "          port %d\n"
+msgstr "               Port %d\n"
+
+#: src/dirmngr_ldap.c:419
+#, c-format
+msgid "            DN `%s'\n"
+msgstr "                 DN `%s'\n"
+
+#: src/dirmngr_ldap.c:421
+#, c-format
+msgid "        filter `%s'\n"
+msgstr "             Filter `%s'\n"
+
+#: src/dirmngr_ldap.c:426 src/dirmngr_ldap.c:429
+#, c-format
+msgid "          attr `%s'\n"
+msgstr "           Attribut `%s'\n"
+
+#: src/dirmngr_ldap.c:435
+#, c-format
+msgid "no host name in `%s'\n"
+msgstr "Kein Hostname in `%s'\n"
+
+#: src/dirmngr_ldap.c:440
+#, c-format
+msgid "no attribute given for query `%s'\n"
+msgstr "Kein Attribut für Abfrage `%s' angegeben\n"
+
+#: src/dirmngr_ldap.c:446
+msgid "WARNING: using first attribute only\n"
+msgstr "WARNUNG: Es wird nur das erste Attribut benutzt\n"
+
+#: src/dirmngr_ldap.c:452
+#, c-format
+msgid "LDAP init to `%s:%d' failed: %s\n"
+msgstr "LDAP Initialisierung von `%s:%d' fehlgeschlagen: %s\n"
+
+#: src/dirmngr_ldap.c:458
+#, c-format
+msgid "binding to `%s:%d' failed: %s\n"
+msgstr "Anbindung an `%s:%d' fehlgeschlagen: %s\n"
+
+#: src/dirmngr_ldap.c:480
+#, c-format
+msgid "searching `%s' failed: %s\n"
+msgstr "Suche mit `%s' fehlgeschlagen: %s\n"
+
+#: src/dirmngr_ldap.c:508
+#, c-format
+msgid "`%s' is not an LDAP URL\n"
+msgstr "`%s' ist kein LDAP URL\n"
+
+#: src/dirmngr_ldap.c:514
+#, c-format
+msgid "`%s' is an invalid LDAP URL\n"
+msgstr "`%s' ist ein ungültiger LDAP URL\n"
+
+#~ msgid "can't open `/dev/null': %s\n"
+#~ msgstr "`/dev/null' kann nicht geöffnet werden: %s\n"
+
+#~ msgid "failed to find issuer certificate: %s\n"
+#~ msgstr "Herausgeberzertifikat nicht gefunden: %s\n"
+
+#~ msgid "Please report bugs to "
+#~ msgstr "Berichte über Bugs (Programmfehler) bitte an "
+
+#~ msgid "no issuer found in certificate"
+#~ msgstr "Im Zertifikat ist kein Herausgeber enthalten"
+
+#~ msgid "critical marked policy without configured policies"
+#~ msgstr "kritische Richtlinie ohne konfigurierte Richtlinien"
+
+#~ msgid "looking up issuer at external location\n"
+#~ msgstr "Der Herausgeber wird von einer externen Stelle gesucht\n"
+
+#~ msgid "number of issuers matching: %d\n"
+#~ msgstr "Anzahl der übereinstimmenden Heruasgeber: %d\n"
+
+#~ msgid "certificate has been revoked"
+#~ msgstr "Das Zertifikat wurde widerrufen"
+
+#~ msgid "no CRL found for certificate"
+#~ msgstr "Keine CRL für das Zertifikat gefunden"
+
+#~ msgid "the available CRL is too old"
+#~ msgstr "Die vorhandene CRL ist zu alt"
+
+#~ msgid "please make sure that the \"dirmngr\" is properly installed\n"
+#~ msgstr ""
+#~ "Bite vergewissern Sie sich das der \"dirmngr\" richtig installierrt ist\n"
 
-#~ msgid "End CRL dump (retrieved via %s)\n"
-#~ msgstr "Ende der CRL Ausgabe (erhalten via %s)\n"
+#~ msgid "checking the CRL failed: %s"
+#~ msgstr "Die CRL konnte nicht geprüft werden: %s"
 
-#~ msgid "WARNING: only one OCSP responder currently supported\n"
-#~ msgstr "WARNUNG: Zur Zeit wird nur ein OCSP Responder unterstützt\n"
+#~ msgid "root certificate has now been marked as trusted\n"
+#~ msgstr "Das Wurzelzertifikat wurde nun als vertrauenswürdig markiert\n"
 
-#~ msgid "ocsp_responder at `%s' status: %s\n"
-#~ msgstr "OCSP Responder `%s' Status: %s\n"
+#~ msgid "checking the trust list failed: %s\n"
+#~ msgstr "Fehler beim Prüfen der vertrauenswürdigen Zertifikate: %s\n"
Index: dirmngr/po/dirmngr.pot
diff -u dirmngr/po/dirmngr.pot:1.5 dirmngr/po/dirmngr.pot:1.6
--- dirmngr/po/dirmngr.pot:1.5	Wed Nov  3 18:48:03 2004
+++ dirmngr/po/dirmngr.pot	Wed Nov 24 13:25:53 2004
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: gpa-dev at gnupg.org\n"
-"POT-Creation-Date: 2004-10-04 13:52+0200\n"
+"POT-Creation-Date: 2004-11-24 13:16+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -16,1020 +16,1659 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: jnlib/logging.c:555
+#: jnlib/logging.c:624
 #, c-format
 msgid "you found a bug ... (%s:%d)\n"
 msgstr ""
 
-#: src/crlcache.c:177
+#: src/certcache.c:87
+#, c-format
+msgid "can't acquire read lock on the certificate cache: %s\n"
+msgstr ""
+
+#: src/certcache.c:95
+#, c-format
+msgid "can't acquire write lock on the certificate cache: %s\n"
+msgstr ""
+
+#: src/certcache.c:103
+#, c-format
+msgid "can't release lock on the certificate cache: %s\n"
+msgstr ""
+
+#: src/certcache.c:220
+#, c-format
+msgid "dropping %u certificates from the cache\n"
+msgstr ""
+
+#: src/certcache.c:304
+#, c-format
+msgid "can't access directory `%s': %s\n"
+msgstr ""
+
+#: src/certcache.c:323 src/crlcache.c:2142 src/ldap.c:605
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr ""
+
+#: src/certcache.c:332
+#, c-format
+msgid "can't setup KSBA reader: %s\n"
+msgstr ""
+
+#: src/certcache.c:345
+#, c-format
+msgid "can't parse certificate `%s': %s\n"
+msgstr ""
+
+#: src/certcache.c:354
+#, c-format
+msgid "certificate `%s' already cached\n"
+msgstr ""
+
+#: src/certcache.c:356
+#, c-format
+msgid "certificate `%s' loaded\n"
+msgstr ""
+
+#: src/certcache.c:358
+#, c-format
+msgid "error loading certificate `%s': %s\n"
+msgstr ""
+
+#: src/certcache.c:432
+#, c-format
+msgid "permanently loaded certificates: %u\n"
+msgstr ""
+
+#: src/certcache.c:434
+#, c-format
+msgid "    runtime cached certificates: %u\n"
+msgstr ""
+
+#: src/certcache.c:449 src/dirmngr-client.c:297
+msgid "certificate already cached\n"
+msgstr ""
+
+#: src/certcache.c:451
+msgid "certificate cached\n"
+msgstr ""
+
+#: src/certcache.c:453 src/dirmngr-client.c:301
+#, c-format
+msgid "error caching certificate: %s\n"
+msgstr ""
+
+#: src/certcache.c:563 src/crlcache.c:1396
+#, c-format
+msgid "error fetching certificate for issuer: %s\n"
+msgstr ""
+
+#: src/certcache.c:574 src/crlcache.c:1412
+#, c-format
+msgid "invalid issuer certificate: %s\n"
+msgstr ""
+
+#: src/certcache.c:655 src/validate.c:288
+msgid "no issuer found in certificate\n"
+msgstr ""
+
+#: src/certcache.c:665
+#, c-format
+msgid "error getting authorityKeyIdentifier: %s\n"
+msgstr ""
+
+#: src/crlcache.c:201
 #, c-format
 msgid "creating directory `%s'\n"
 msgstr ""
 
-#: src/crlcache.c:181
+#: src/crlcache.c:205
 #, c-format
 msgid "error creating directory `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:209
+#: src/crlcache.c:233
 #, c-format
 msgid "ignoring database dir `%s'\n"
 msgstr ""
 
-#: src/crlcache.c:218
+#: src/crlcache.c:242
 #, c-format
 msgid "error reading directory `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:239
+#: src/crlcache.c:263
 #, c-format
 msgid "removing cache file `%s'\n"
 msgstr ""
 
-#: src/crlcache.c:248
+#: src/crlcache.c:272
 #, c-format
 msgid "not removing file `%s'\n"
 msgstr ""
 
-#: src/crlcache.c:317 src/crlcache.c:962
+#: src/crlcache.c:341 src/crlcache.c:986
 #, c-format
 msgid "error closing cache file: %s\n"
 msgstr ""
 
-#: src/crlcache.c:354 src/crlcache.c:678
+#: src/crlcache.c:378 src/crlcache.c:702
 #, c-format
 msgid "failed to open cache dir file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:364
+#: src/crlcache.c:388
 #, c-format
 msgid "error creating new cache dir file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:371
+#: src/crlcache.c:395
 #, c-format
 msgid "error writing new cache dir file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:378
+#: src/crlcache.c:402
 #, c-format
 msgid "error closing new cache dir file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:383
+#: src/crlcache.c:407
 #, c-format
 msgid "new cache dir file `%s' created\n"
 msgstr ""
 
-#: src/crlcache.c:388
+#: src/crlcache.c:412
 #, c-format
 msgid "failed to re-open cache dir file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:415
+#: src/crlcache.c:439
 #, c-format
 msgid "first record of `%s' is not the version\n"
 msgstr ""
 
-#: src/crlcache.c:426
+#: src/crlcache.c:450
 msgid "old version of cache directory - cleaning up\n"
 msgstr ""
 
-#: src/crlcache.c:442
+#: src/crlcache.c:466
 msgid "old version of cache directory - giving up\n"
 msgstr ""
 
-#: src/crlcache.c:530
+#: src/crlcache.c:554
 #, c-format
 msgid "extra field detected in crl record of `%s' line %u\n"
 msgstr ""
 
-#: src/crlcache.c:542
+#: src/crlcache.c:566
 #, c-format
 msgid "unsupported record type in `%s' line %u skipped\n"
 msgstr ""
 
-#: src/crlcache.c:550 src/crlcache.c:779 src/dirmngr.c:810
+#: src/crlcache.c:574 src/crlcache.c:803 src/dirmngr.c:1191
 #, c-format
 msgid "error reading `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:562
+#: src/crlcache.c:586
 #, c-format
 msgid "invalid issuer hash in `%s' line %u\n"
 msgstr ""
 
-#: src/crlcache.c:568
+#: src/crlcache.c:592
 #, c-format
 msgid "no issuer DN in `%s' line %u\n"
 msgstr ""
 
-#: src/crlcache.c:575
+#: src/crlcache.c:599
 #, c-format
 msgid "invalid timestamp in `%s' line %u\n"
 msgstr ""
 
-#: src/crlcache.c:581
+#: src/crlcache.c:605
 #, c-format
 msgid "WARNING: invalid cache file hash in `%s' line %u\n"
 msgstr ""
 
-#: src/crlcache.c:587
+#: src/crlcache.c:611
 msgid "detected errors in cache dir file\n"
 msgstr ""
 
-#: src/crlcache.c:588
+#: src/crlcache.c:612
 msgid "please check the reason and manually delete that file\n"
 msgstr ""
 
-#: src/crlcache.c:711
+#: src/crlcache.c:735
 #, c-format
 msgid "failed to create temporary cache dir file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:784
+#: src/crlcache.c:808
 #, c-format
 msgid "error writing `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:795
+#: src/crlcache.c:819
 #, c-format
 msgid "error closing `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:803
+#: src/crlcache.c:827
 #, c-format
 msgid "error renaming `%s' to `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:858
+#: src/crlcache.c:882
 #, c-format
 msgid "can't hash `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:866
+#: src/crlcache.c:890
 #, c-format
 msgid "error setting up MD5 hash context: %s\n"
 msgstr ""
 
-#: src/crlcache.c:882
+#: src/crlcache.c:906
 #, c-format
 msgid "error hashing `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:910
+#: src/crlcache.c:934
 #, c-format
 msgid "invalid formatted checksum for `%s'\n"
 msgstr ""
 
-#: src/crlcache.c:953
+#: src/crlcache.c:977
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
 
-#: src/crlcache.c:970
+#: src/crlcache.c:994
 #, c-format
 msgid "opening cache file `%s'\n"
 msgstr ""
 
-#: src/crlcache.c:989
+#: src/crlcache.c:1013
 #, c-format
 msgid "error opening cache file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:998
+#: src/crlcache.c:1022
 #, c-format
 msgid "error initializing cache file `%s' for reading: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1020
+#: src/crlcache.c:1044
 msgid "calling unlock_db_file on a closed file\n"
 msgstr ""
 
-#: src/crlcache.c:1022
+#: src/crlcache.c:1046
 msgid "calling unlock_db_file on an unlocked file\n"
 msgstr ""
 
-#: src/crlcache.c:1070
+#: src/crlcache.c:1100
 #, c-format
 msgid "failed to create a new cache object: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1123
+#: src/crlcache.c:1153
 #, c-format
 msgid "no CRL available for issuer id %s\n"
 msgstr ""
 
-#: src/crlcache.c:1130
+#: src/crlcache.c:1160
 #, c-format
 msgid "cached CRL for issuer id %s too old; update required\n"
 msgstr ""
 
-#: src/crlcache.c:1144
+#: src/crlcache.c:1174
 #, c-format
 msgid ""
 "force-crl-refresh active and %d minutes passed for issuer id %s; update "
 "required\n"
 msgstr ""
 
-#: src/crlcache.c:1152
+#: src/crlcache.c:1182
 #, c-format
 msgid "force-crl-refresh active for issuer id %s; update required\n"
 msgstr ""
 
-#: src/crlcache.c:1161
+#: src/crlcache.c:1191
 #, c-format
 msgid "available CRL for issuer ID %s can't be used\n"
 msgstr ""
 
-#: src/crlcache.c:1172
+#: src/crlcache.c:1202
 #, c-format
 msgid "cached CRL for issuer id %s tampered; we need to update\n"
 msgstr ""
 
-#: src/crlcache.c:1190
-#, c-format
-msgid "WARNING: invalid cache record length for S/N %s\n"
+#: src/crlcache.c:1214
+msgid "WARNING: invalid cache record length for S/N "
 msgstr ""
 
-#: src/crlcache.c:1197
+#: src/crlcache.c:1223
 #, c-format
 msgid "problem reading cache record for S/N %s: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1200
+#: src/crlcache.c:1226
 #, c-format
 msgid "S/N %s is not valid; reason=%02X  date=%.15s\n"
 msgstr ""
 
-#: src/crlcache.c:1208
+#: src/crlcache.c:1237
 #, c-format
 msgid "S/N %s is valid, it is not listed in the CRL\n"
 msgstr ""
 
-#: src/crlcache.c:1214
+#: src/crlcache.c:1245
 #, c-format
 msgid "error getting data from cache file: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1252
-#, c-format
-msgid "error fetching certificate for issuer: %s\n"
-msgstr ""
-
-#: src/crlcache.c:1275
-#, c-format
-msgid "invalid issuer certificate: %s\n"
-msgstr ""
-
-#: src/crlcache.c:1295
+#: src/crlcache.c:1435 src/validate.c:636
 #, c-format
 msgid "unknown hash algorithm `%s'\n"
 msgstr ""
 
-#: src/crlcache.c:1302
+#: src/crlcache.c:1442
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1336 src/crlcache.c:1353
+#: src/crlcache.c:1476 src/crlcache.c:1493
 msgid "got an invalid S-expression from libksba\n"
 msgstr ""
 
-#: src/crlcache.c:1343 src/crlcache.c:1360 src/misc.c:430
+#: src/crlcache.c:1483 src/crlcache.c:1500 src/misc.c:432
 #, c-format
 msgid "converting S-expression failed: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1375 src/ocsp.c:325
+#: src/crlcache.c:1515 src/ocsp.c:343
 #, c-format
 msgid "creating S-expression failed: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1427
+#: src/crlcache.c:1567
 #, c-format
 msgid "ksba_crl_parse failed: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1443
+#: src/crlcache.c:1583
 #, c-format
 msgid "no issuer found in CRL: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1461
+#: src/crlcache.c:1601
 #, c-format
 msgid "error getting update times of CRL: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1468
+#: src/crlcache.c:1608
 #, c-format
 msgid "update times of this CRL: this=%s next=%s\n"
 msgstr ""
 
-#: src/crlcache.c:1487
+#: src/crlcache.c:1627
 #, c-format
 msgid "error getting CRL item: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1502
+#: src/crlcache.c:1642
 #, c-format
 msgid "error inserting item into temporary cache file: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1520
+#: src/crlcache.c:1660
 #, c-format
 msgid "CRL signature verification failed: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1639
+#: src/crlcache.c:1668
 #, c-format
-msgid "ksba_crl_new failed: %s\n"
+msgid "error checking validity of CRL signing certificate: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1648
+#: src/crlcache.c:1793
 #, c-format
-msgid "ksba_reader_set_file failed: %s\n"
+msgid "ksba_crl_new failed: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1654
+#: src/crlcache.c:1800
 #, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1677
+#: src/crlcache.c:1823
 #, c-format
 msgid "removed stale temporary cache file `%s'\n"
 msgstr ""
 
-#: src/crlcache.c:1680
+#: src/crlcache.c:1826
 #, c-format
 msgid "problem removing stale temporary cache file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:1690
+#: src/crlcache.c:1836
 #, c-format
 msgid "error creating temporary cache file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:1700
+#: src/crlcache.c:1846
 #, c-format
 msgid "crl_parse_insert failed: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1709
+#: src/crlcache.c:1855
 #, c-format
 msgid "error finishing temporary cache file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:1716
+#: src/crlcache.c:1862
 #, c-format
 msgid "error closing temporary cache file `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:1741
+#: src/crlcache.c:1887
 #, c-format
 msgid "WARNING: new CRL still too old; it expired on %s - loading anyway\n"
 msgstr ""
 
-#: src/crlcache.c:1745
+#: src/crlcache.c:1891
 #, c-format
 msgid "new CRL still too old; it expired on %s\n"
 msgstr ""
 
-#: src/crlcache.c:1761
+#: src/crlcache.c:1907
 #, c-format
 msgid "unknown crtical CRL extension %s\n"
 msgstr ""
 
-#: src/crlcache.c:1771
+#: src/crlcache.c:1917
 #, c-format
 msgid "error reading CRL extensions: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1805
+#: src/crlcache.c:1951
 #, c-format
 msgid "creating cache file `%s'\n"
 msgstr ""
 
-#: src/crlcache.c:1809
+#: src/crlcache.c:1955
 #, c-format
 msgid "problem renaming `%s' to `%s': %s\n"
 msgstr ""
 
-#: src/crlcache.c:1823
+#: src/crlcache.c:1969
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
 "program start\n"
 msgstr ""
 
-#: src/crlcache.c:1860
+#: src/crlcache.c:2005
 #, c-format
 msgid "Begin CRL dump (retrieved via %s)\n"
 msgstr ""
 
-#: src/crlcache.c:1880
+#: src/crlcache.c:2025
 #, c-format
 msgid ""
 " ERROR: The CRL will not be used because it was still too old after an "
 "update!\n"
 msgstr ""
 
-#: src/crlcache.c:1882
+#: src/crlcache.c:2027
 #, c-format
 msgid ""
 " ERROR: The CRL will not be used due to an unknown critical extension!\n"
 msgstr ""
 
-#: src/crlcache.c:1884
+#: src/crlcache.c:2029
 #, c-format
 msgid " ERROR: The CRL will not be used\n"
 msgstr ""
 
-#: src/crlcache.c:1891
+#: src/crlcache.c:2036
 #, c-format
 msgid " ERROR: This cached CRL may has been tampered with!\n"
 msgstr ""
 
-#: src/crlcache.c:1908
+#: src/crlcache.c:2053
 msgid " WARNING: invalid cache record length\n"
 msgstr ""
 
-#: src/crlcache.c:1915
+#: src/crlcache.c:2060
 #, c-format
 msgid "problem reading cache record: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1926
+#: src/crlcache.c:2071
 #, c-format
 msgid "problem reading cache key: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1957
+#: src/crlcache.c:2102
 #, c-format
 msgid "error reading cache entry from db: %s\n"
 msgstr ""
 
-#: src/crlcache.c:1960
+#: src/crlcache.c:2105
 #, c-format
 msgid "End CRL dump\n"
 msgstr ""
 
-#: src/crlcache.c:1996
+#: src/crlcache.c:2217
 #, c-format
-msgid "can't open `%s': %s\n"
+msgid "crl_fetch via DP failed: %s\n"
+msgstr ""
+
+#: src/crlcache.c:2224
+#, c-format
+msgid "crl_cache_insert via DP failed: %s\n"
+msgstr ""
+
+#: src/crlcache.c:2255
+#, c-format
+msgid "crl_fetch via issuer failed: %s\n"
 msgstr ""
 
-#: src/crlfetch.c:130
+#: src/crlcache.c:2263
+#, c-format
+msgid "crl_cache_insert via issuer failed: %s\n"
+msgstr ""
+
+#: src/crlfetch.c:61
 msgid "using \"http\" instead of \"https\"\n"
 msgstr ""
 
-#: src/crlfetch.c:141
+#: src/crlfetch.c:72 src/crlfetch.c:116 src/crlfetch.c:136 src/crlfetch.c:151
+#, c-format
+msgid "CRL access not possible due to disabled %s\n"
+msgstr ""
+
+#: src/crlfetch.c:82
 #, c-format
 msgid "error retrieving `%s': %s\n"
 msgstr ""
 
-#: src/crlfetch.c:144
+#: src/crlfetch.c:85
 #, c-format
 msgid "error retrieving `%s': http status %u\n"
 msgstr ""
 
-#: src/dirmngr.c:88
+#: src/crlfetch.c:97 src/ldap.c:673
+#, c-format
+msgid "error initializing reader object: %s\n"
+msgstr ""
+
+#: src/crlfetch.c:165
+#, c-format
+msgid "Certificate search not possible due to disabled %s\n"
+msgstr ""
+
+#: src/dirmngr.c:105
 msgid ""
 "@Commands:\n"
 " "
 msgstr ""
 
-#: src/dirmngr.c:90
-msgid "run in server mode"
+#: src/dirmngr.c:107
+msgid "run in server mode (foreground)"
+msgstr ""
+
+#: src/dirmngr.c:108
+msgid "run in daemon mode (background)"
 msgstr ""
 
-#: src/dirmngr.c:91
+#: src/dirmngr.c:109
 msgid "list the contents of the CRL cache"
 msgstr ""
 
-#: src/dirmngr.c:92
+#: src/dirmngr.c:110
 msgid "|FILE|load CRL from FILE into cache"
 msgstr ""
 
-#: src/dirmngr.c:93
+#: src/dirmngr.c:111
 msgid "|URL|fetch a CRL from URL"
 msgstr ""
 
-#: src/dirmngr.c:94
+#: src/dirmngr.c:112
 msgid "shutdown the dirmngr"
 msgstr ""
 
-#: src/dirmngr.c:95
+#: src/dirmngr.c:113
 msgid "flush the cache"
 msgstr ""
 
-#: src/dirmngr.c:98
+#: src/dirmngr.c:116
 msgid ""
 "@\n"
 "Options:\n"
 " "
 msgstr ""
 
-#: src/dirmngr.c:100
+#: src/dirmngr.c:118 src/dirmngr-client.c:64 src/dirmngr_ldap.c:73
 msgid "verbose"
 msgstr ""
 
-#: src/dirmngr.c:101
+#: src/dirmngr.c:119 src/dirmngr-client.c:65 src/dirmngr_ldap.c:74
 msgid "be somewhat more quiet"
 msgstr ""
 
-#: src/dirmngr.c:102
+#: src/dirmngr.c:120
 msgid "sh-style command output"
 msgstr ""
 
-#: src/dirmngr.c:103
+#: src/dirmngr.c:121
 msgid "csh-style command output"
 msgstr ""
 
-#: src/dirmngr.c:104
+#: src/dirmngr.c:122
 msgid "|FILE|read options from FILE"
 msgstr ""
 
-#: src/dirmngr.c:106
+#: src/dirmngr.c:124
 msgid "|LEVEL|set the debugging level to LEVEL"
 msgstr ""
 
-#: src/dirmngr.c:107
+#: src/dirmngr.c:125
 msgid "do not detach from the console"
 msgstr ""
 
-#: src/dirmngr.c:108
+#: src/dirmngr.c:126
 msgid "|FILE|write logs to FILE"
 msgstr ""
 
-#: src/dirmngr.c:109
+#: src/dirmngr.c:127
 msgid "run without asking a user"
 msgstr ""
 
-#: src/dirmngr.c:110
+#: src/dirmngr.c:128
 msgid "force loading of outdated CRLs"
 msgstr ""
 
-#: src/dirmngr.c:111
+#: src/dirmngr.c:129
 msgid "allow sending OCSP requests"
 msgstr ""
 
-#: src/dirmngr.c:114
+#: src/dirmngr.c:130
+msgid "inhibit the use of HTTP"
+msgstr ""
+
+#: src/dirmngr.c:131
+msgid "inhibit the use of LDAP"
+msgstr ""
+
+#: src/dirmngr.c:133
+msgid "ignore HTTP CRL distribution points"
+msgstr ""
+
+#: src/dirmngr.c:135
+msgid "ignore LDAP CRL distribution points"
+msgstr ""
+
+#: src/dirmngr.c:137
+msgid "|URL|redirect all HTTP requests to URL"
+msgstr ""
+
+#: src/dirmngr.c:139
+msgid "|HOST|use HOST for LDAP queries"
+msgstr ""
+
+#: src/dirmngr.c:141
+msgid "do not use fallback hosts with --ldap-proxy"
+msgstr ""
+
+#: src/dirmngr.c:144
 msgid "|FILE|read LDAP server list from FILE"
 msgstr ""
 
-#: src/dirmngr.c:116
+#: src/dirmngr.c:146
 msgid "add new servers discovered in CRL distribution points to serverlist"
 msgstr ""
 
-#: src/dirmngr.c:118
+#: src/dirmngr.c:148 src/dirmngr_ldap.c:75
 msgid "|N|set LDAP timeout to N seconds"
 msgstr ""
 
-#: src/dirmngr.c:120
+#: src/dirmngr.c:150
 msgid "|URL|use OCSP responder at URL"
 msgstr ""
 
-#: src/dirmngr.c:121
+#: src/dirmngr.c:151
 msgid "|FPR|OCSP response signed by FPR"
 msgstr ""
 
-#: src/dirmngr.c:124
+#: src/dirmngr.c:154
 msgid "|N|do not return more than N items in one query"
 msgstr ""
 
-#: src/dirmngr.c:153
+#: src/dirmngr.c:156
+msgid "|FILE|listen on socket FILE"
+msgstr ""
+
+#: src/dirmngr.c:211 src/dirmngr-client.c:126 src/dirmngr_ldap.c:134
 msgid "Please report bugs to <gpa-dev at gnupg.org>.\n"
 msgstr ""
 
-#: src/dirmngr.c:157
+#: src/dirmngr.c:215
 msgid "Usage: dirmngr [options] (-h for help)"
 msgstr ""
 
-#: src/dirmngr.c:160
+#: src/dirmngr.c:218
 msgid ""
 "Syntax: dirmngr [options] [command [args]]\n"
 "LDAP and OCSP access for GnuPG\n"
 msgstr ""
 
-#: src/dirmngr.c:231
+#: src/dirmngr.c:289
 #, c-format
 msgid "invalid debug-level `%s' given\n"
 msgstr ""
 
-#: src/dirmngr.c:232
+#: src/dirmngr.c:290
 #, c-format
 msgid "valid debug levels are: %s\n"
 msgstr ""
 
-#: src/dirmngr.c:269
+#: src/dirmngr.c:328
 msgid "usage: dirmngr [options] "
 msgstr ""
 
-#: src/dirmngr.c:310 src/dirmngr.c:320
+#: src/dirmngr.c:353
+#, c-format
+msgid "error spawning ldap wrapper ripper thread: %s\n"
+msgstr ""
+
+#: src/dirmngr.c:471 src/dirmngr.c:481
 #, c-format
 msgid "%s is too old (need %s, have %s)\n"
 msgstr ""
 
-#: src/dirmngr.c:399
+#: src/dirmngr.c:582
 #, c-format
 msgid "NOTE: no default option file `%s'\n"
 msgstr ""
 
-#: src/dirmngr.c:404
+#: src/dirmngr.c:587 src/dirmngr.c:1248
 #, c-format
 msgid "option file `%s': %s\n"
 msgstr ""
 
-#: src/dirmngr.c:412
+#: src/dirmngr.c:595
 #, c-format
 msgid "reading options from `%s'\n"
 msgstr ""
 
-#: src/dirmngr.c:507
+#: src/dirmngr.c:701
 #, c-format
 msgid "WARNING: running with faked system time %s\n"
 msgstr ""
 
-#: src/dirmngr.c:586
+#: src/dirmngr.c:777
+msgid "colons are not allowed in the socket name\n"
+msgstr ""
+
+#: src/dirmngr.c:782
+msgid "name of socket too long\n"
+msgstr ""
+
+#: src/dirmngr.c:789
+#, c-format
+msgid "can't create socket: %s\n"
+msgstr ""
+
+#: src/dirmngr.c:808
+#, c-format
+msgid "error binding socket to `%s': %s\n"
+msgstr ""
+
+#: src/dirmngr.c:817
+#, c-format
+msgid "listen() failed: %s\n"
+msgstr ""
+
+#: src/dirmngr.c:823
+#, c-format
+msgid "listening on socket `%s'\n"
+msgstr ""
+
+#: src/dirmngr.c:829
+#, c-format
+msgid "fork failed: %s\n"
+msgstr ""
+
+#: src/dirmngr.c:847
+msgid "out of core\n"
+msgstr ""
+
+#: src/dirmngr.c:886
+#, c-format
+msgid "setsid() failed: %s\n"
+msgstr ""
+
+#: src/dirmngr.c:896
+#, c-format
+msgid "chdir to / failed: %s\n"
+msgstr ""
+
+#: src/dirmngr.c:945
 #, c-format
 msgid "fetching CRL from `%s' failed: %s\n"
 msgstr ""
 
-#: src/dirmngr.c:592
+#: src/dirmngr.c:951
 #, c-format
 msgid "processing CRL from `%s' failed: %s\n"
 msgstr ""
 
-#: src/dirmngr.c:714
+#: src/dirmngr.c:1095
 #, c-format
 msgid "error opening `%s': %s\n"
 msgstr ""
 
-#: src/dirmngr.c:731
+#: src/dirmngr.c:1112
 #, c-format
 msgid "%s:%u: line too long - skipped\n"
 msgstr ""
 
-#: src/dirmngr.c:759
+#: src/dirmngr.c:1140
 #, c-format
 msgid "%s:%u: no hostname given\n"
 msgstr ""
 
-#: src/dirmngr.c:778
+#: src/dirmngr.c:1159
 #, c-format
 msgid "%s:%u: password given without user\n"
 msgstr ""
 
-#: src/dirmngr.c:799
+#: src/dirmngr.c:1180
 #, c-format
 msgid "%s:%u: skipping this line\n"
 msgstr ""
 
-#: src/http.c:467
+#: src/dirmngr.c:1280
+msgid "SIGHUP received - re-reading configuration and flushing caches\n"
+msgstr ""
+
+#: src/dirmngr.c:1294
+msgid "SIGUSR2 received - no action defined\n"
+msgstr ""
+
+#: src/dirmngr.c:1299
+msgid "SIGTERM received - shutting down ...\n"
+msgstr ""
+
+#: src/dirmngr.c:1301
 #, c-format
-msgid "invalid %s: %s\n"
+msgid "SIGTERM received - still %d active connections\n"
+msgstr ""
+
+#: src/dirmngr.c:1306
+msgid "shutdown forced\n"
+msgstr ""
+
+#: src/dirmngr.c:1314
+msgid "SIGINT received - immediate shutdown\n"
 msgstr ""
 
-#: src/http.c:820 src/http.c:856
+#: src/dirmngr.c:1321
 #, c-format
-msgid "error resolving `%s': host not found\n"
+msgid "signal %d received - no action defined\n"
 msgstr ""
 
-#: src/http.c:833 src/http.c:864
+#: src/dirmngr.c:1335
 #, c-format
-msgid "error creating socket: %s\n"
+msgid "handler for fd %d started\n"
 msgstr ""
 
-#: src/http.c:919
+#: src/dirmngr.c:1340
 #, c-format
-msgid "network write failed: %s\n"
+msgid "handler for fd %d terminated\n"
 msgstr ""
 
-#: src/ldap.c:72 src/ldap.c:183
+#: src/dirmngr.c:1396
 #, c-format
-msgid "found attribute `%s'\n"
+msgid "accept failed: %s - waiting 1s\n"
 msgstr ""
 
-#: src/ldap.c:95 src/ldap.c:206
+#: src/dirmngr.c:1403
 #, c-format
-msgid "found attributes `%s' at second try\n"
+msgid "error spawning connection handler: %s\n"
 msgstr ""
 
-#: src/ldap.c:247
-msgid "timeout while waiting for ldap_search result\n"
+#: src/http.c:475
+#, c-format
+msgid "invalid HTTP proxy (%s): %s\n"
 msgstr ""
 
-#: src/ldap.c:254
+#: src/http.c:827 src/http.c:863
 #, c-format
-msgid "ldap_result for an ldap_search failed: %s\n"
+msgid "error resolving `%s': host not found\n"
 msgstr ""
 
-#: src/ldap.c:269
-msgid "ldap_parse_result failed\n"
+#: src/http.c:840 src/http.c:871
+#, c-format
+msgid "error creating socket: %s\n"
 msgstr ""
 
-#: src/ldap.c:273
+#: src/http.c:926
 #, c-format
-msgid "ldap search result is: %s\n"
+msgid "network write failed: %s\n"
 msgstr ""
 
-#: src/ldap.c:281
+#: src/ldap.c:125
 #, c-format
-msgid "unexpected message type %d returned for ldap_search\n"
+msgid "invalid char 0x%02x in host name - not added\n"
 msgstr ""
 
-#: src/ldap.c:342
+#: src/ldap.c:129
 #, c-format
-msgid "ldap_init failed for '%s:%d': %s\n"
+msgid "adding `%s:%d' to the ldap server list\n"
 msgstr ""
 
-#: src/ldap.c:352
+#: src/ldap.c:132 src/misc.c:652
 #, c-format
-msgid "ldap_simple_bind failed for user '%s': %s\n"
+msgid "malloc failed: %s\n"
 msgstr ""
 
-#: src/ldap.c:353 src/ldap.c:761 src/ldap.c:776
-msgid "[none]"
+#: src/ldap.c:207
+#, c-format
+msgid "error printing log line: %s\n"
+msgstr ""
+
+#: src/ldap.c:253
+#, c-format
+msgid "select failed: %s\n"
 msgstr ""
 
-#: src/ldap.c:368
+#: src/ldap.c:279
 #, c-format
-msgid "ldap_result for bind failed: %s\n"
+msgid "error reading log from ldap wrapper %d: %s\n"
 msgstr ""
 
-#: src/ldap.c:370
-msgid "timeout while waiting for ldap_bind to complete\n"
+#: src/ldap.c:306
+#, c-format
+msgid "waiting for ldap wrapper %d failed: %s\n"
 msgstr ""
 
-#: src/ldap.c:373 src/ldap.c:780
+#: src/ldap.c:311
 #, c-format
-msgid "unexpected message type %d returned for ldap_bind\n"
+msgid "ldap wrapper %d ready: terminated\n"
 msgstr ""
 
-#: src/ldap.c:389 src/ldap.c:931
+#: src/ldap.c:314
 #, c-format
-msgid "ldap_search failed: %s\n"
+msgid "ldap wrapper %d ready: exit status %d\n"
 msgstr ""
 
-#: src/ldap.c:454 src/ldap.c:461 src/ldap.c:472 src/ldap.c:747 src/ldap.c:758
-#: src/ldap.c:773
+#: src/ldap.c:327
 #, c-format
-msgid "%s failed for `"
+msgid "ldap wrapper %d stalled - killing\n"
 msgstr ""
 
-#: src/ldap.c:510
+#: src/ldap.c:380 src/ldap.c:401
 #, c-format
-msgid "invalid char 0x%02x in host name - not added\n"
+msgid "reading from ldap wrapper %d failed: %s\n"
 msgstr ""
 
-#: src/ldap.c:515
+#: src/ldap.c:546 src/ldap.c:552
 #, c-format
-msgid "adding `%s:%d' to the ldap server list\n"
+msgid "error creating a pipe: %s\n"
 msgstr ""
 
-#: src/ldap.c:547
-msgid "' is not an LDAP URL\n"
+#: src/ldap.c:562
+#, c-format
+msgid "error forking process: %s\n"
 msgstr ""
 
-#: src/ldap.c:555
-msgid "' is an invalid LDAP URL\n"
+#: src/ldap.c:610 src/ldap.c:617 src/ldap.c:624
+#, c-format
+msgid "dup2 failed in child: %s\n"
 msgstr ""
 
-#: src/ldap.c:733
+#: src/ldap.c:642
+#, c-format
+msgid "error running `%s': %s\n"
+msgstr ""
+
+#: src/ldap.c:654
+#, c-format
+msgid "error allocating memory: %s\n"
+msgstr ""
+
+#: src/ldap.c:1101
 #, c-format
 msgid "start_cert_fetch: invalid pattern `%s'\n"
 msgstr ""
 
-#: src/ldap.c:919
+#: src/ldap.c:1239
 msgid "ldap_search hit the size limit of the server\n"
 msgstr ""
 
-#: src/misc.c:426
+#: src/misc.c:428
 msgid "invalid canonical S-expression found\n"
 msgstr ""
 
-#: src/misc.c:450
+#: src/misc.c:452
 #, c-format
 msgid "gcry_md_open failed: %s\n"
 msgstr ""
 
-#: src/misc.c:455
+#: src/misc.c:457
 #, c-format
 msgid "oops: ksba_cert_hash failed: %s\n"
 msgstr ""
 
-#: src/ocsp.c:65
+#: src/misc.c:491
+msgid "[none]"
+msgstr ""
+
+#: src/misc.c:668
+msgid "bad URL encoding detected\n"
+msgstr ""
+
+#: src/ocsp.c:67
 #, c-format
 msgid "error reading from responder: %s\n"
 msgstr ""
 
-#: src/ocsp.c:83
+#: src/ocsp.c:85
 #, c-format
 msgid "response from server too large; limit is %d bytes\n"
 msgstr ""
 
 #: src/ocsp.c:120
+msgid "OCSP request not possible due to disabled HTTP\n"
+msgstr ""
+
+#: src/ocsp.c:127
 #, c-format
 msgid "error setting OCSP target: %s\n"
 msgstr ""
 
-#: src/ocsp.c:138
+#: src/ocsp.c:145
 #, c-format
 msgid "error building OCSP request: %s\n"
 msgstr ""
 
-#: src/ocsp.c:145
+#: src/ocsp.c:154
 #, c-format
 msgid "error connecting to `%s': %s\n"
 msgstr ""
 
-#: src/ocsp.c:169 src/ocsp.c:185
+#: src/ocsp.c:178 src/ocsp.c:194
 #, c-format
 msgid "error reading HTTP response for `%s': %s\n"
 msgstr ""
 
-#: src/ocsp.c:173
+#: src/ocsp.c:182
 #, c-format
 msgid "error accessing `%s': http status %u\n"
 msgstr ""
 
-#: src/ocsp.c:194
+#: src/ocsp.c:203
 #, c-format
 msgid "error parsing OCSP response for `%s': %s\n"
 msgstr ""
 
-#: src/ocsp.c:216 src/ocsp.c:226
+#: src/ocsp.c:225 src/ocsp.c:235
 #, c-format
 msgid "OCSP responder at `%s' status: %s\n"
 msgstr ""
 
-#: src/ocsp.c:221
+#: src/ocsp.c:230
 #, c-format
 msgid "hashing the OCSP response for `%s' failed: %s\n"
 msgstr ""
 
-#: src/ocsp.c:317
+#: src/ocsp.c:335
 msgid "only SHA-1 is supported for OCSP responses\n"
 msgstr ""
 
-#: src/ocsp.c:367
+#: src/ocsp.c:385
 msgid "no suitable certificate found to verify the OCSP response\n"
 msgstr ""
 
-#: src/ocsp.c:396
+#: src/ocsp.c:421 src/validate.c:419
 #, c-format
-msgid "failed to allocate OCSP context: %s\n"
+msgid "issuer certificate not found: %s\n"
 msgstr ""
 
-#: src/ocsp.c:406
+#: src/ocsp.c:431
 msgid "caller did not return the target certificate\n"
 msgstr ""
 
-#: src/ocsp.c:413
+#: src/ocsp.c:438
 msgid "caller did not return the issuing certificate\n"
 msgstr ""
 
-#: src/ocsp.c:445
+#: src/ocsp.c:448
+#, c-format
+msgid "failed to allocate OCSP context: %s\n"
+msgstr ""
+
+#: src/ocsp.c:482
 #, c-format
 msgid "can't get authorityInfoAccess: %s\n"
 msgstr ""
 
-#: src/ocsp.c:452
+#: src/ocsp.c:489
 msgid "no default OCSP responder defined\n"
 msgstr ""
 
-#: src/ocsp.c:458
+#: src/ocsp.c:495
 msgid "no default OCSP signer defined\n"
 msgstr ""
 
-#: src/ocsp.c:465
+#: src/ocsp.c:502
 #, c-format
 msgid "using default OCSP responder `%s'\n"
 msgstr ""
 
-#: src/ocsp.c:470
+#: src/ocsp.c:507
 #, c-format
 msgid "using OCSP responder `%s'\n"
 msgstr ""
 
-#: src/ocsp.c:477
+#: src/ocsp.c:514
 #, c-format
 msgid "failed to establish a hashing context for OCSP: %s\n"
 msgstr ""
 
-#: src/ocsp.c:507
+#: src/ocsp.c:544
 #, c-format
 msgid "error getting OCSP status for target certificate: %s\n"
 msgstr ""
 
-#: src/ocsp.c:514
+#: src/ocsp.c:551
 #, c-format
 msgid "certificate status is: %s  (this=%s  next=%s)\n"
 msgstr ""
 
-#: src/ocsp.c:515
+#: src/ocsp.c:552
 msgid "good"
 msgstr ""
 
-#: src/ocsp.c:516
+#: src/ocsp.c:553
 msgid "revoked"
 msgstr ""
 
-#: src/ocsp.c:517
+#: src/ocsp.c:554
 msgid "unknown"
 msgstr ""
 
-#: src/ocsp.c:518
+#: src/ocsp.c:555
 msgid "none"
 msgstr ""
 
-#: src/ocsp.c:521
+#: src/ocsp.c:558
 #, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
 msgstr ""
 
-#: src/ocsp.c:554
+#: src/ocsp.c:591
 msgid "OCSP responder returned an too old status\n"
 msgstr ""
 
-#: src/ocsp.c:564
+#: src/ocsp.c:601
 msgid "OCSP responder returned a non-current status\n"
 msgstr ""
 
-#: src/server.c:183
+#: src/server.c:131 src/server.c:438 src/server.c:520 src/server.c:771
+#: src/server.c:824
 #, c-format
 msgid "assuan_inquire failed: %s\n"
 msgstr ""
 
-#: src/server.c:318
+#: src/server.c:301
+msgid "serialno missing in cert ID"
+msgstr ""
+
+#: src/server.c:352 src/server.c:468 src/server.c:547 src/server.c:687
+#: src/server.c:715 src/server.c:739 src/server.c:792 src/server.c:845
 #, c-format
-msgid "crl_fetch via DP failed: %s\n"
+msgid "command %s failed: %s\n"
 msgstr ""
 
-#: src/server.c:326
+#: src/server.c:615
 #, c-format
-msgid "crl_cache_insert via DP failed: %s\n"
+msgid "start_cert_fetch failed: %s\n"
 msgstr ""
 
-#: src/server.c:349
+#: src/server.c:642
 #, c-format
-msgid "crl_fetch via issuer failed: %s\n"
+msgid "fetch_next_cert failed: %s\n"
 msgstr ""
 
-#: src/server.c:358
+#: src/server.c:661
 #, c-format
-msgid "crl_cache_insert via issuer failed: %s\n"
+msgid "error sending data: %s\n"
 msgstr ""
 
-#: src/server.c:439
-msgid "serialno missing in cert ID"
+#: src/server.c:670
+#, c-format
+msgid "max_replies %d exceeded\n"
 msgstr ""
 
-#: src/server.c:490 src/server.c:628 src/server.c:656 src/server.c:681
+#: src/server.c:735
+msgid "no data stream"
+msgstr ""
+
+#: src/server.c:898
 #, c-format
-msgid "command %s failed: %s\n"
+msgid "can't allocate control structure: %s\n"
 msgstr ""
 
-#: src/server.c:557
+#: src/server.c:921
 #, c-format
-msgid "start_cert_fetch failed: %s\n"
+msgid "failed to initialize the server: %s\n"
 msgstr ""
 
-#: src/server.c:583
+#: src/server.c:929
 #, c-format
-msgid "fetch_next_cert failed: %s\n"
+msgid "failed to the register commands with Assuan: %s\n"
 msgstr ""
 
-#: src/server.c:602
+#: src/server.c:949
 #, c-format
-msgid "error sending data: %s\n"
+msgid "Assuan accept problem: %s\n"
 msgstr ""
 
-#: src/server.c:611
+#: src/server.c:956
 #, c-format
-msgid "max_replies %d exceeded\n"
+msgid "Assuan processing failed: %s\n"
 msgstr ""
 
-#: src/server.c:677
-msgid "no data stream"
+#: src/validate.c:92
+#, c-format
+msgid "critical certificate extension %s is not supported"
 msgstr ""
 
-#: src/server.c:735
+#: src/validate.c:152
+msgid "note: non-critical certificate policy not allowed"
+msgstr ""
+
+#: src/validate.c:157
+msgid "certificate policy not allowed"
+msgstr ""
+
+#: src/validate.c:177
+msgid "issuer certificate is not marked as a CA"
+msgstr ""
+
+#: src/validate.c:302
 #, c-format
-msgid "failed to initialize the server: %s\n"
+msgid "certificate with invalid validity: %s"
+msgstr ""
+
+#: src/validate.c:320
+msgid "certificate not yet valid"
 msgstr ""
 
-#: src/server.c:743
+#: src/validate.c:331
+msgid "certificate has expired"
+msgstr ""
+
+#: src/validate.c:360
+msgid "selfsigned certificate has a BAD signature"
+msgstr ""
+
+#: src/validate.c:378
+msgid "root certificate is not marked trusted"
+msgstr ""
+
+#: src/validate.c:380
 #, c-format
-msgid "failed to the register commands with Assuan: %s\n"
+msgid "fingerprint=%s\n"
 msgstr ""
 
-#: src/server.c:769
+#: src/validate.c:386
 #, c-format
-msgid "Assuan accept problem: %s\n"
+msgid "checking trustworthiness of root certificate failed: %s\n"
+msgstr ""
+
+#: src/validate.c:401
+msgid "certificate chain too long\n"
+msgstr ""
+
+#: src/validate.c:413
+msgid "issuer certificate not found"
+msgstr ""
+
+#: src/validate.c:439
+msgid "certificate has a BAD signature"
 msgstr ""
 
-#: src/server.c:776
+#: src/validate.c:463
+msgid "found another possible matching CA certificate - trying again"
+msgstr ""
+
+#: src/validate.c:488
 #, c-format
-msgid "Assuan processing failed: %s\n"
+msgid "certificate chain longer than allowed by CA (%d)"
+msgstr ""
+
+#: src/validate.c:725
+msgid "DSA requires the use of a 160 bit hash algorithm\n"
+msgstr ""
+
+#: src/validate.c:832
+msgid "no key usage specified - assuming all usages\n"
+msgstr ""
+
+#: src/validate.c:842
+#, c-format
+msgid "error getting key usage information: %s\n"
+msgstr ""
+
+#: src/validate.c:852
+msgid "certificate should have not been used for certification\n"
+msgstr ""
+
+#: src/validate.c:864
+msgid "certificate should have not been used for OCSP response signing\n"
+msgstr ""
+
+#: src/validate.c:875
+msgid "certificate should have not been used for encryption\n"
+msgstr ""
+
+#: src/validate.c:877
+msgid "certificate should have not been used for signing\n"
+msgstr ""
+
+#: src/validate.c:878
+msgid "certificate is not usable for encryption\n"
+msgstr ""
+
+#: src/validate.c:879
+msgid "certificate is not usable for signing\n"
+msgstr ""
+
+#: src/dirmngr-client.c:66
+msgid "use OCSP instead of CRLs"
+msgstr ""
+
+#: src/dirmngr-client.c:67
+msgid "check whether a dirmngr is running"
+msgstr ""
+
+#: src/dirmngr-client.c:68
+msgid "add a certificate to the cache"
+msgstr ""
+
+#: src/dirmngr-client.c:69
+msgid "validate a certificate"
+msgstr ""
+
+#: src/dirmngr-client.c:70
+msgid "lookup a certificate"
+msgstr ""
+
+#: src/dirmngr-client.c:130
+msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
+msgstr ""
+
+#: src/dirmngr-client.c:134
+msgid ""
+"Syntax: dirmngr-client [options] [certfile|pattern]\n"
+"Test an X.509 certificate against a CRL or do an OCSP check\n"
+"The process returns 0 if the certificate is valid, 1 if it is\n"
+"not valid and other error codes for general failures\n"
+msgstr ""
+
+#: src/dirmngr-client.c:220
+#, c-format
+msgid "error reading certificate from stdin: %s\n"
+msgstr ""
+
+#: src/dirmngr-client.c:227
+#, c-format
+msgid "error reading certificate from `%s': %s\n"
+msgstr ""
+
+#: src/dirmngr-client.c:241
+msgid "certificate too large to make any sense\n"
+msgstr ""
+
+#: src/dirmngr-client.c:260
+#, c-format
+msgid "lookup failed: %s\n"
+msgstr ""
+
+#: src/dirmngr-client.c:287
+msgid "a dirmngr daemon is up and running\n"
+msgstr ""
+
+#: src/dirmngr-client.c:309
+#, c-format
+msgid "validation of certificate failed: %s\n"
+msgstr ""
+
+#: src/dirmngr-client.c:316
+msgid "certificate is valid\n"
+msgstr ""
+
+#: src/dirmngr-client.c:322
+msgid "certificate has been revoked\n"
+msgstr ""
+
+#: src/dirmngr-client.c:327
+#, c-format
+msgid "certificate check failed: %s\n"
+msgstr ""
+
+#: src/dirmngr-client.c:338
+#, c-format
+msgid "got status: `%s'\n"
+msgstr ""
+
+#: src/dirmngr-client.c:353
+#, c-format
+msgid "error writing base64 encoding: %s\n"
+msgstr ""
+
+#: src/dirmngr-client.c:385
+msgid "apparently no running dirmngr\n"
+msgstr ""
+
+#: src/dirmngr-client.c:390
+msgid "no running dirmngr - starting one\n"
+msgstr ""
+
+#: src/dirmngr-client.c:423
+msgid "malformed DIRMNGR_INFO environment variable\n"
+msgstr ""
+
+#: src/dirmngr-client.c:438
+#, c-format
+msgid "dirmngr protocol version %d is not supported\n"
+msgstr ""
+
+#: src/dirmngr-client.c:454
+msgid "can't connect to the dirmngr - trying fall back\n"
+msgstr ""
+
+#: src/dirmngr-client.c:462
+#, c-format
+msgid "can't connect to the dirmngr: %s\n"
+msgstr ""
+
+#: src/dirmngr-client.c:545
+#, c-format
+msgid "unsupported inquiry `%s'\n"
+msgstr ""
+
+#: src/dirmngr-client.c:626
+#, c-format
+msgid "looking up `%s'\n"
+msgstr ""
+
+#: src/no-libgcrypt.c:39
+#, c-format
+msgid "error allocating enough memory: %s\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:76
+msgid "return all values in a record oriented format"
+msgstr ""
+
+#: src/dirmngr_ldap.c:79
+msgid "|NAME|ignore host part and connect through NAME"
+msgstr ""
+
+#: src/dirmngr_ldap.c:80
+msgid "|NAME|connect to host NAME"
+msgstr ""
+
+#: src/dirmngr_ldap.c:81
+msgid "|N|connect to port N"
+msgstr ""
+
+#: src/dirmngr_ldap.c:82
+msgid "|NAME|use user NAME for authentication"
+msgstr ""
+
+#: src/dirmngr_ldap.c:83
+msgid "|PASS|use password PASS for authentication"
+msgstr ""
+
+#: src/dirmngr_ldap.c:85
+msgid "take password from $DIRMNGR_LDAP_PASS"
+msgstr ""
+
+#: src/dirmngr_ldap.c:86
+msgid "|STRING|query DN STRING"
+msgstr ""
+
+#: src/dirmngr_ldap.c:87
+msgid "|STRING|use STRING as filter expression"
+msgstr ""
+
+#: src/dirmngr_ldap.c:88
+msgid "|STRING|return the attribute STRING"
+msgstr ""
+
+#: src/dirmngr_ldap.c:138
+msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:141
+msgid ""
+"Syntax: dirmngr_ldap [options] [URL]\n"
+"Internal LDAP helper for Dirmngr.\n"
+"Interface and options may change without notice.\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:230
+#, c-format
+msgid "invalid port number %d\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:261
+#, c-format
+msgid "scanning result for attribute `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:268 src/dirmngr_ldap.c:328 src/dirmngr_ldap.c:352
+#: src/dirmngr_ldap.c:363 src/dirmngr_ldap.c:473
+#, c-format
+msgid "error writing to stdout: %s\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:282
+#, c-format
+msgid "          available attribute `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:307
+#, c-format
+msgid "attribute `%s' not found\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:313
+#, c-format
+msgid "found attribute `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:410
+#, c-format
+msgid "processing url `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:412
+#, c-format
+msgid "          user `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:414
+#, c-format
+msgid "          pass `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:416
+#, c-format
+msgid "          host `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:417
+#, c-format
+msgid "          port %d\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:419
+#, c-format
+msgid "            DN `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:421
+#, c-format
+msgid "        filter `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:426 src/dirmngr_ldap.c:429
+#, c-format
+msgid "          attr `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:435
+#, c-format
+msgid "no host name in `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:440
+#, c-format
+msgid "no attribute given for query `%s'\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:446
+msgid "WARNING: using first attribute only\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:452
+#, c-format
+msgid "LDAP init to `%s:%d' failed: %s\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:458
+#, c-format
+msgid "binding to `%s:%d' failed: %s\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:480
+#, c-format
+msgid "searching `%s' failed: %s\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:508
+#, c-format
+msgid "`%s' is not an LDAP URL\n"
+msgstr ""
+
+#: src/dirmngr_ldap.c:514
+#, c-format
+msgid "`%s' is an invalid LDAP URL\n"
 msgstr ""
Index: dirmngr/src/ChangeLog
diff -u dirmngr/src/ChangeLog:1.26 dirmngr/src/ChangeLog:1.27
--- dirmngr/src/ChangeLog:1.26	Tue Nov 23 14:20:44 2004
+++ dirmngr/src/ChangeLog	Wed Nov 24 13:25:53 2004
@@ -1,5 +1,14 @@
+2004-11-24  Werner Koch  <wk at g10code.com>
+
+	* dirmngr.c: New options --ignore-http-dp and --ignore-ldap-dp.
+	* crlcache.c (crl_cache_reload_crl): Implement them.
+
 2004-11-23  Werner Koch  <wk at g10code.com>
 
+	* ldap.c (ldap_wrapper_thread, reader_callback, ldap_wrapper):
+	Keep a timestamp and terminate the wrapper after some time of
+	inactivity.
+
 	* dirmngr-client.c (do_lookup): New.
 	(main): New option --lookup.
 	(data_cb): New.
@@ -19,7 +28,6 @@
 	(url_fetch_ldap): Call it here and try all configured servers in
 	case of a a failed lookup.
 	(fetch_next_cert_ldap): Detect the truncation error flag.
-
 	* misc.c (host_and_port_from_url, remove_percent_escapes): New.
 
 2004-11-22  Werner Koch  <wk at g10code.com>
Index: dirmngr/src/certcache.c
diff -u dirmngr/src/certcache.c:1.6 dirmngr/src/certcache.c:1.7
--- dirmngr/src/certcache.c:1.6	Tue Nov 23 14:20:44 2004
+++ dirmngr/src/certcache.c	Wed Nov 24 13:25:53 2004
@@ -652,7 +652,7 @@
   issuer_dn = ksba_cert_get_issuer (cert, 0);
   if (!issuer_dn)
     {
-      log_error (_("no issuer found in certificate"));
+      log_error (_("no issuer found in certificate\n"));
       err = gpg_error (GPG_ERR_BAD_CERT);
       goto leave;
     }
Index: dirmngr/src/crlcache.c
diff -u dirmngr/src/crlcache.c:1.49 dirmngr/src/crlcache.c:1.50
--- dirmngr/src/crlcache.c:1.49	Mon Nov 22 22:30:50 2004
+++ dirmngr/src/crlcache.c	Wed Nov 24 13:25:53 2004
@@ -2190,6 +2190,25 @@
       issuername_uri = ksba_name_get_uri (issuername, 0); 
       ksba_name_release (distpoint); distpoint = NULL;
       ksba_name_release (issuername); issuername = NULL;
+
+      if (!distpoint_uri)
+        continue;
+
+      if (!strncmp (distpoint_uri, "ldap:", 5)
+          || !strncmp (distpoint_uri, "ldaps:", 6))
+        {
+          if (opt.ignore_ldap_dp)
+            continue;
+        }
+      else if (!strncmp (distpoint_uri, "http:", 5)
+               || !strncmp (distpoint_uri, "https:", 6))
+        {
+          if (opt.ignore_http_dp)
+            continue;
+        }
+      else
+        continue; /* Skip unknown schemes. */
+
       any_dist_point = 1;
       
       err = crl_fetch (ctrl, distpoint_uri, &reader);
Index: dirmngr/src/dirmngr-client.c
diff -u dirmngr/src/dirmngr-client.c:1.4 dirmngr/src/dirmngr-client.c:1.5
--- dirmngr/src/dirmngr-client.c:1.4	Tue Nov 23 14:20:44 2004
+++ dirmngr/src/dirmngr-client.c	Wed Nov 24 13:25:53 2004
@@ -55,7 +55,6 @@
     oCacheCert,
     oValidate,
     oLookup,
-    oUseDaemon,
     oDummy
   };
 
@@ -64,7 +63,6 @@
 static ARGPARSE_OPTS opts[] = {
   { oVerbose,  "verbose",   0, N_("verbose") },
   { oQuiet,    "quiet",     0, N_("be somewhat more quiet") },
-  { oUseDaemon,"use-daemon",0, N_("force use of the daemon")},
   { oOCSP,     "ocsp",      0, N_("use OCSP instead of CRLs") },
   { oPing,     "ping",      0, N_("check whether a dirmngr is running")},
   { oCacheCert,"cache-cert",0, N_("add a certificate to the cache")},
Index: dirmngr/src/dirmngr.c
diff -u dirmngr/src/dirmngr.c:1.45 dirmngr/src/dirmngr.c:1.46
--- dirmngr/src/dirmngr.c:1.45	Mon Nov 22 22:30:50 2004
+++ dirmngr/src/dirmngr.c	Wed Nov 24 13:25:53 2004
@@ -78,6 +78,8 @@
   oBatch,
   oDisableHTTP,
   oDisableLDAP,
+  oIgnoreLDAPDP,
+  oIgnoreHTTPDP,
   oHonorHTTPProxy,
   oHTTPProxy,
   oLDAPProxy,
@@ -127,6 +129,10 @@
   { oAllowOCSP, "allow-ocsp",0,N_("allow sending OCSP requests")},
   { oDisableHTTP, "disable-http", 0, N_("inhibit the use of HTTP")},
   { oDisableLDAP, "disable-ldap", 0, N_("inhibit the use of LDAP")},
+  { oIgnoreHTTPDP,"ignore-http-dp",0,
+    N_("ignore HTTP CRL distribution points")},
+  { oIgnoreLDAPDP,"ignore-ldap-dp",0,
+    N_("ignore LDAP CRL distribution points")},
   { oHTTPProxy,  "http-proxy", 2,
     N_("|URL|redirect all HTTP requests to URL")},
   { oLDAPProxy,  "ldap-proxy", 2,
@@ -372,6 +378,8 @@
       opt.http_proxy = NULL; 
       opt.ldap_proxy = NULL; 
       opt.only_ldap_proxy = 0;
+      opt.ignore_http_dp = 0;
+      opt.ignore_ldap_dp = 0;
       return 1;
     }
 
@@ -408,6 +416,8 @@
     case oHTTPProxy: opt.http_proxy = pargs->r.ret_str; break;
     case oLDAPProxy: opt.ldap_proxy = pargs->r.ret_str; break;
     case oOnlyLDAPProxy: opt.only_ldap_proxy = 1; break;
+    case oIgnoreHTTPDP: opt.ignore_http_dp = 1; break;
+    case oIgnoreLDAPDP: opt.ignore_ldap_dp = 1; break;
 
     default:
       return 0; /* Not handled. */
@@ -1012,6 +1022,8 @@
       printf ("http-proxy:%lu:\n", GC_OPT_FLAG_NONE);
       printf ("ldap-proxy:%lu:\n", GC_OPT_FLAG_NONE);
       printf ("only-ldap-proxy:%lu:\n", GC_OPT_FLAG_NONE);
+      printf ("ignore-ldap-dp:%lu:\n", GC_OPT_FLAG_NONE);
+      printf ("ignore-http-dp:%lu:\n", GC_OPT_FLAG_NONE);
 
     }
   cleanup ();
Index: dirmngr/src/dirmngr.h
diff -u dirmngr/src/dirmngr.h:1.21 dirmngr/src/dirmngr.h:1.22
--- dirmngr/src/dirmngr.h:1.21	Mon Nov 22 22:30:50 2004
+++ dirmngr/src/dirmngr.h	Wed Nov 24 13:25:53 2004
@@ -87,6 +87,8 @@
   const char *http_proxy; /* Use given HTTP proxy.  */
   const char *ldap_proxy; /* Use given LDAP proxy.  */
   int only_ldap_proxy;    /* Only use the LDAP proxy; no fallback.  */
+  int ignore_http_dp;     /* Ignore HTTP CRL distribution points.  */
+  int ignore_ldap_dp;     /* Ignore LDAP CRL distribution points.  */
 
   int allow_ocsp;     /* Allow using OCSP. */
 
Index: dirmngr/src/dirmngr_ldap.c
diff -u dirmngr/src/dirmngr_ldap.c:1.4 dirmngr/src/dirmngr_ldap.c:1.5
--- dirmngr/src/dirmngr_ldap.c:1.4	Tue Nov 23 14:20:44 2004
+++ dirmngr/src/dirmngr_ldap.c	Wed Nov 24 13:25:53 2004
@@ -131,7 +131,7 @@
     case 14: p = "Copyright (C) 2004 g10 Code GmbH"; break;
     case 17: p = PRINTABLE_OS_NAME; break;
     case 19: p =
-               _("Please report bugs to " PACKAGE_BUGREPORT ".\n");
+               _("Please report bugs to <gpa-dev at gnupg.org>.\n");
       break;
     case 1:
     case 40: p =
@@ -484,7 +484,6 @@
       return -1;
     }
 
-
   rc = print_ldap_entries (ld, msg, opt.multi? NULL:attr);
 
   ldap_msgfree (msg);
Index: dirmngr/src/ldap.c
diff -u dirmngr/src/ldap.c:1.37 dirmngr/src/ldap.c:1.38
--- dirmngr/src/ldap.c:1.37	Tue Nov 23 14:20:44 2004
+++ dirmngr/src/ldap.c	Wed Nov 24 13:25:53 2004
@@ -43,6 +43,7 @@
 #define MAX_OPEN_FDS 20
 #endif
 
+#define INACTIVITY_TIMEOUT (60*5)  /* seconds */
 
 #define UNENCODED_URL_CHARS "abcdefghijklmnopqrstuvwxyz"   \
                             "ABCDEFGHIJKLMNOPQRSTUVWXYZ"   \
@@ -80,6 +81,7 @@
   char *line;     /* Used to print the log lines (malloced). */
   size_t linesize;/* Allocated size of LINE.  */
   size_t linelen; /* Use size of LINE.  */
+  time_t stamp;   /* The last time we noticed ativity.  */
 };
 
 
@@ -226,6 +228,7 @@
   struct timeval tv;
   struct wrapper_context_s *ctx, *ctx_prev;
   char line[256];
+  time_t current_time;
 
   for (;;)
     {
@@ -251,6 +254,11 @@
           pth_sleep (10);
           continue;
         }
+
+      current_time = time (NULL);
+      if (current_time > INACTIVITY_TIMEOUT)
+        current_time -= INACTIVITY_TIMEOUT;
+
       /* Note that there is no need to lock the list because we always
          add entries at the head and thus traversing the list will
          even work if we have a context switch in waitpid (which should
@@ -281,6 +289,8 @@
                 {
                   line[n] = 0;
                   print_log_line (ctx, line);
+                  if (ctx->stamp != (time_t)(-1))
+                    ctx->stamp = time (NULL);
                 }
             }
 
@@ -309,6 +319,14 @@
             }
 
           /* Check whether we should terminate the process. */
+          if (ctx->pid != (pid_t)(-1)
+              && ctx->stamp != (time_t)(-1) && ctx->stamp < current_time)
+            {
+              if (!kill (ctx->pid, SIGTERM))
+                ctx->stamp = (time_t)(-1);
+              log_info (_("ldap wrapper %d stalled - killing\n"),
+                        (int)ctx->pid);
+            }
         }
 
       /* Use a separate loop to check whether ready marked wrappers
@@ -459,6 +477,8 @@
       buffer += n;
       if (evt)
         pth_event_free (evt, PTH_FREE_THIS);
+      if (n > 0 && ctx->stamp != (time_t)(-1))
+        ctx->stamp = time (NULL);
     }
   *nread = count - nleft;
 
@@ -582,7 +602,7 @@
       fd = open ("/dev/null", O_RDONLY);
       if (fd == -1)
         {
-          log_error (_("can't open `/dev/null': %s\n"), strerror (errno));
+          log_error (_("can't open `%s': %s\n"), "/dev/null",strerror (errno));
           _exit (4);
         }
       if (fd != STDIN_FILENO && dup2 (fd, STDIN_FILENO) == -1)
@@ -643,6 +663,7 @@
   ctx->log_fd = rp2[0];
   ctx->ctrl = ctrl;
   ctrl->refcount++;
+  ctx->stamp = time (NULL);
 
   err = ksba_reader_new (reader);
   if (!err)
Index: dirmngr/src/validate.c
diff -u dirmngr/src/validate.c:1.4 dirmngr/src/validate.c:1.5
--- dirmngr/src/validate.c:1.4	Mon Nov 22 22:30:50 2004
+++ dirmngr/src/validate.c	Wed Nov 24 13:25:53 2004
@@ -285,7 +285,7 @@
 
       if (!issuer)
         {
-          log_error (_("no issuer found in certificate"));
+          log_error (_("no issuer found in certificate\n"));
           err = gpg_error (GPG_ERR_BAD_CERT);
           goto leave;
         }
@@ -416,7 +416,7 @@
               log_printf ("\n");
             }
           else
-            log_error (_("failed to find issuer certificate: %s\n"),
+            log_error (_("issuer certificate not found: %s\n"),
                          gpg_strerror (err));
           /* Use a better understandable error code.  */
           err = gpg_error (GPG_ERR_MISSING_CERT);




More information about the Gnupg-commits mailing list