* rndunix.c (start_gatherer) [ENABLE_SELINUX_HACKS]: Don't allow
[gnupg.git] / keyserver / ChangeLog
1 2004-10-14  Werner Koch  <wk@g10code.com>
2
3         * gpgkeys_finger.c (get_key): s/unsigned char/byte/ due
4         to a strange typedef for RISC OS.  Noted by Stefan.
5
6 2004-10-13  David Shaw  <dshaw@jabberwocky.com>
7
8         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main), gpgkeys_http.c
9         (main), gpgkeys_finger.c (main): Call timeout functions before
10         performing an action that could block for a long time.
11
12         * ksutil.h, ksutil.c: New.  Right now just contains timeout
13         functions.
14
15 2004-10-11  David Shaw  <dshaw@jabberwocky.com>
16
17         * gpgkeys_finger.c, gpgkeys_hkp.c, gpgkeys_http.c, gpgkeys_ldap.c:
18         Fix a few occurances of "filename" to `filename'.
19
20 2004-10-11  Werner Koch  <wk@g10code.com>
21
22         * gpgkeys_finger.c: New.
23
24 2004-08-27  Stefan Bellon  <sbellon@sbellon.de>
25
26         * gpgkeys_hkp.c (search_key): Fix the prior faulty fix by
27         introducing a cast but leaving skey unsigned.
28
29         * gpgkeys_hkp.c (search_key): Change type of variable skey from
30         unsigned char* to char* to fix type incompatibility.
31
32 2004-08-23  David Shaw  <dshaw@jabberwocky.com>
33
34         * gpgkeys_ldap.c (get_key, search_key), gpgkeys_hkp.c (get_key,
35         search_key), gpgkeys_http.c (get_key): Do not give informational
36         logs since this is now done inside gpg.
37
38         * gpgkeys_hkp.c (dehtmlize): Understand the quote character
39         (i.e. "&quot;") in HTML responses.
40         (search_key): Search key must be unsigned for url encoder to work
41         properly for 8-bit values.
42
43         * gpgkeys_ldap.c (get_key): Factor out informational display into
44         new function build_info().
45
46         * gpgkeys_ldap.c (build_attrs): Properly terminate user ID strings
47         that got shrunk due to encoding.
48
49 2004-08-22  David Shaw  <dshaw@jabberwocky.com>
50
51         * gpgkeys_ldap.c (find_basekeyspacedn): Use LDAP_SCOPE_BASE along
52         with a full DN rather than LDAP_SCOPE_ONELEVEL plus a filter to
53         find the pgpServerInfo object.  Some LDAP setups don't like the
54         search.
55         (main): Stop binding to the server since it seems no server really
56         requires it, and some require it not be there.
57
58 2004-07-29  David Shaw  <dshaw@jabberwocky.com>
59
60         * gpgkeys_ldap.c (main): Add "debug" option.  This is only really
61         useful with OpenLDAP, but it's practically vital to debug SSL and
62         TLS setups.  Add "basedn" option.  This allows users to override
63         the autodetection for base DN.  SSL overrides TLS, so TLS will not
64         be started on SSL connections (starting an already started car).
65
66 2004-07-28  David Shaw  <dshaw@jabberwocky.com>
67
68         * gpgkeys_ldap.c (build_attrs): Add "pgpKeySize" and "pgpSubKeyID"
69         attributes so we can do subkey searches.
70
71         * gpgkeys_ldap.c (main): Under certain error conditions, we might
72         try and unbind twice.  Don't.
73
74         * gpgkeys_ldap.c (join_two_modlists): New.
75         (send_key): Use new function so we can try a modify operation
76         first, and fail over to an add if that fails.  Add cannot cope
77         with the NULLs at the head of the modify request, so we jump into
78         the list in the middle.
79
80 2004-07-27  David Shaw  <dshaw@jabberwocky.com>
81
82         * gpgkeys_ldap.c (main): Don't try and error out before making a
83         ldaps connection to the NAI keyserver since we cannot tell if it
84         is a NAI keyserver until we connect.  Fail if we cannot find a
85         base keyspace DN.  Fix a false success message for TLS being
86         enabled.
87
88 2004-07-20  Werner Koch  <wk@gnupg.org>
89
90         * gpgkeys_ldap.c [_WIN32]: Include Windows specific header files.
91         Suggested by Brian Gladman.
92
93 2004-05-26  David Shaw  <dshaw@jabberwocky.com>
94
95         * gpgkeys_http.c: General polish and removal of leftover stuff
96         from gpgkeys_hkp.c.
97
98 2004-05-21  David Shaw  <dshaw@jabberwocky.com>
99
100         * gpgkeys_http.c (get_key): Cosmetic fix - make sure that URLs
101         with no path use a path of "/".
102
103         * gpgkeys_ldap.c (ldap2epochtime): We can always rely on timegm()
104         being available now, since it's a replacement function.
105
106 2004-05-20  David Shaw  <dshaw@jabberwocky.com>
107
108         * gpgkeys_http.c: New program to do a simple HTTP file fetch using
109         the keyserver interface.
110
111         * Makefile.am: Build it.
112
113 2004-02-28  David Shaw  <dshaw@jabberwocky.com>
114
115         * Makefile.am: Don't split LDADD across two lines since some make
116         programs can't handle blank lines after a \ continuation.  Noted
117         by Christoph Moench-Tegeder.
118
119 2004-02-25  David Shaw  <dshaw@jabberwocky.com>
120
121         * gpgkeys_ldap.c (send_key): List pgpCertID as one of the deleted
122         attributes.  This guarantees that if something goes wrong, we
123         won't be able to complete the transaction, thus leaving any key
124         already existing on the server intact.
125
126 2004-02-23  David Shaw  <dshaw@jabberwocky.com>
127
128         * gpgkeys_ldap.c (delete_one_attr): Removed.
129         (make_one_attr): Delete functionality added.  Optional deduping
130         functionality added (currently only used for pgpSignerID).
131         (build_attrs): Translate sig entries into pgpSignerID.  Properly
132         build the timestamp for pgpKeyCreateTime and pgpKeyExpireTime.
133
134 2004-02-22  David Shaw  <dshaw@jabberwocky.com>
135
136         * gpgkeys_ldap.c (delete_one_attr): New function to replace
137         attributes with NULL (a "delete" that works even for nonexistant
138         attributes).
139         (send_key): Use it here to remove attributes so a modify operation
140         starts with a clean playing field.  Bias sends to modify before
141         add, since (I suspect) people update their existing keys more
142         often than they make and send new keys to the server.
143
144 2004-02-21  David Shaw  <dshaw@jabberwocky.com>
145
146         * gpgkeys_ldap.c (epoch2ldaptime): New.  Converse of
147         ldap2epochtime.
148         (make_one_attr): New. Build a modification list in memory to send
149         to the LDAP server.
150         (build_attrs): New. Parse INFO lines sent over by gpg.
151         (free_mod_values): New.  Unwinds a modification list.
152         (send_key_keyserver): Renamed from old send_key().
153         (send_key): New function to send a key to a LDAP server.
154         (main): Use send_key() for real LDAP servers, send_key_keyserver()
155         otherwise.
156
157 2004-02-20  David Shaw  <dshaw@jabberwocky.com>
158
159         * gpgkeys_ldap.c: Replacement prototypes for setenv and unsetenv.
160         (search_key): Catch a SIZELIMIT_EXCEEDED error and show the user
161         whatever the server did give us.
162         (find_basekeyspacedn): There is no guarantee that namingContexts
163         will be readable.
164
165         * Makefile.am: Link gpgkeys_ldap with libutil.a to get the
166         replacement functions (and eventually translations, etc).
167
168 2004-02-19  David Shaw  <dshaw@jabberwocky.com>
169
170         * gpgkeys_ldap.c (ldap2epochtime): LDAP timestamps are UTC, so do
171         not correct for timezones.
172         (main): Find the basekeyspacedn before we try to start TLS, so we
173         can give a better error message when a user tries to use TLS with
174         a LDAP keyserver.
175
176         * Makefile.am: Add automake conditionals to symlink gpgkeys_ldaps
177         to gpgkeys_ldap when needed.
178
179         * gpgkeys_ldap.c (main): Add support for LDAPS and TLS
180         connections.  These are only useful and usable when talking to
181         real LDAP keyservers.  Add new "tls" option to tune TLS use from
182         off, to try quietly, to try loudly, or to require TLS.
183
184         * gpgkeys_ldap.c (find_basekeyspacedn): New function to figure out
185         what kind of LDAP server we're talking to (either real LDAP or the
186         LDAP keyserver), and return the baseKeySpaceDN to find keys under.
187         (main): Call it from here, and remove the old code that only
188         handled the LDAP keyserver.
189
190 2004-02-18  David Shaw  <dshaw@jabberwocky.com>
191
192         * gpgkeys_ldap.c (ldap_to_gpg_err): Make sure that
193         LDAP_OPT_ERROR_NUMBER is defined before we use it.
194
195         * gpgkeys_mailto.in: Fix VERSION number.
196
197 2004-01-13  Werner Koch  <wk@gnupg.org>
198
199         * gpgkeys_hkp.c (send_key): Add a content type.
200
201 2004-01-11  David Shaw  <dshaw@jabberwocky.com>
202
203         * gpgkeys_hkp.c (search_key): Catch a mangled input file (useful
204         if something other than GnuPG is calling the program).
205         (main): Avoid possible pre-string write.  Noted by Christian
206         Biere.
207
208         * gpgkeys_ldap.c (main): Avoid possible pre-string write.
209
210 2003-12-28  David Shaw  <dshaw@jabberwocky.com>
211
212         * gpgkeys_hkp.c (send_key, get_key, main): Work with new HTTP code
213         that passes the proxy in from the outside.  If the command file
214         sends a proxy, use it.  If it sends "http-proxy" with no
215         arguments, use $http_proxy from the environment.  Suggested by
216         Christian Biere.
217
218 2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
219
220         * gpgkeys_hkp.c, gpgkeys_ldap.c [__riscos__]: Removal of
221         unnecessary #ifdef __riscos__ sections.
222
223 2003-11-27  Werner Koch  <wk@gnupg.org>
224
225         * gpgkeys_hkp.c (get_key): Fixed invalid use of fprintf without
226         format string.
227
228 2003-10-25  Werner Koch  <wk@gnupg.org>
229
230         * Makefile.am (gpgkeys_hkp_LDADD): Replaced INTLLIBS by LIBINTL.
231
232 2003-07-10  David Shaw  <dshaw@jabberwocky.com>
233
234         * Makefile.am: Use W32LIBS where appropriate.
235
236 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
237
238         * gpgkeys_hkp.c, gpgkeys_ldap.c: #include <getopt.h> if it is
239         available.  Also include extern references for optarg and optind
240         since there is no guarantee that any header file will include
241         them.  Standards?  We don't need no stinkin' standards.
242
243         * Makefile.am: Use @GETOPT@ to pull in libiberty on those
244         platforms that need it.
245
246 2003-04-08  David Shaw  <dshaw@jabberwocky.com>
247
248         * gpgkeys_hkp.c (dehtmlize, parse_hkp_index): Fix memory
249         corruption bug on some platforms.
250
251 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
252
253         * gpgkeys_hkp.c (get_key): Properly handle CRLF line endings in
254         the armored key.
255         (main): Accept "try-dns-srv" option.
256
257         * Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using
258         capabilities.  Use @SRVLIBS@ to link in the resolver if we are
259         using DNS SRV.
260
261 2003-02-11  David Shaw  <dshaw@jabberwocky.com>
262
263         * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
264         so it can be easily overridden at make time.
265
266 2003-01-29  David Shaw  <dshaw@jabberwocky.com>
267
268         * gpgkeys_mailto.in: Fix regexp to work properly if the "keyid" is
269         not a keyid, but rather a text string from the user ID.
270
271 2003-01-06  David Shaw  <dshaw@jabberwocky.com>
272
273         * gpgkeys_hkp.c (get_key): Use options=mr when getting a key so
274         keyserver doesn't attach the HTML header which we will just have
275         to discard.
276
277 2002-11-17  David Shaw  <dshaw@jabberwocky.com>
278
279         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main): Use new keyserver
280         protocol version.
281
282 2002-11-14  David Shaw  <dshaw@jabberwocky.com>
283
284         * gpgkeys_ldap.c (get_key): The deduping code requires
285         "pgpcertid", but that was not available when running without
286         verbose on.  Noted by Stefan.
287
288 2002-11-10  David Shaw  <dshaw@jabberwocky.com>
289
290         * gpgkeys_ldap.c (get_key): Fix typo in deduping code.
291
292 2002-11-05  David Shaw  <dshaw@jabberwocky.com>
293
294         * gpgkeys_ldap.c (key_in_keylist, add_key_to_keylist,
295         free_keylist, get_key, search_key): The LDAP keyserver doesn't
296         remove duplicates, so remove them locally.  Do not include the key
297         modification time in the search response.
298
299 2002-11-04  David Shaw  <dshaw@jabberwocky.com>
300
301         * gpgkeys_hkp.c (send_key), gpgkeys_ldap.c (send_key): Properly
302         handle an input file that does not include any key data at all.
303
304 2002-10-24  David Shaw  <dshaw@jabberwocky.com>
305
306         * gpgkeys_hkp.c (main), gpgkeys_ldap.c (main): Add -V flag to
307         output protocol and program version.
308
309 2002-10-21  David Shaw  <dshaw@jabberwocky.com>
310
311         * Makefile.am: Anything linking with libutil.a needs INTLLIBS as
312         well on platforms where INTLLIBS is set.
313
314 2002-10-14  David Shaw  <dshaw@jabberwocky.com>
315
316         * gpgkeys_hkp.c (write_quoted): Use %-encoding instead of
317         \-encoding.
318         (parse_hkp_index): Use new keyserver key listing format, and add
319         support for disabled keys via include-disabled.
320
321         * gpgkeys_ldap.c (get_key): Don't print keysize unless it's >0.
322         (printquoted): Use %-encoding instead of \-encoding.
323         (search_key): Use new keyserver key listing format.
324
325 2002-10-08  David Shaw  <dshaw@jabberwocky.com>
326
327         * gpgkeys_ldap.c (search_key, main): Make sure LDAP values are
328         freed in case of error.
329
330         * gpgkeys_ldap.c (fail_all): New function to unwind a keylist and
331         error each item.
332         (main): Call fail_all from here, as needed.  Also add a NO_MEMORY
333         error in an appropriate place and fix error return code.
334         (ldap_err_to_gpg_err): Add KEYSERVER_UNREACHABLE.
335
336         * gpgkeys_hkp.c (fail_all): New function to unwind a keylist and
337         error each item.
338         (main): Call fail_all from here.  Also add a NO_MEMORY error in an
339         appropriate place.
340         (get_key): Use new UNREACHABLE error for network errors.
341
342 2002-09-26  Werner Koch  <wk@gnupg.org>
343
344         * gpgkeys_ldap.c (send_key): Removed non-constant initializers.
345
346 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
347
348         * gpgkeys_ldap.c (ldap_err_to_gpg_err, ldap_to_gpg_err, send_key,
349         get_key, search_key, main): Some minor error reporting
350         enhancements for use with GPA (show reasons for KEY FAILED).
351
352         * gpgkeys_hkp.c (send_key, get_key, search_key, main): Some minor
353         error reporting enhancements for use with GPA (show reasons for
354         KEY FAILED).
355
356 2002-09-20  Werner Koch  <wk@gnupg.org>
357
358         * gpgkeys_hkp.c (handle_old_hkp_index): s/input/inp/ to avoid
359         shadowing warning.
360
361 2002-09-19  David Shaw  <dshaw@jabberwocky.com>
362
363         * gpgkeys_hkp.c (get_key, handle_old_hkp_index, search_key):
364         Properly handle line truncation.
365
366 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
367
368         * gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from=
369         syntax so people can set their own email address to respond to.
370
371         * gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to
372         gpg) and "key not found" (to user) on failure.
373
374 2002-09-13  David Shaw  <dshaw@jabberwocky.com>
375
376         * gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and
377         request a machine-readable key index.  If the server supports
378         this, pass it through.  If the server does not support it, parse
379         the "index" page.
380
381 2002-09-12  Stefan Bellon  <sbellon@sbellon.de>
382
383         * gpgkeys_hkp.c: Tidied up RISC OS initializations.
384
385 2002-09-12  David Shaw  <dshaw@jabberwocky.com>
386
387         * gpgkeys_hkp.c (main): Remove warning - this is no longer
388         experimental code.
389
390 2002-09-09  Werner Koch  <wk@gnupg.org>
391
392         * gpgkeys_hkp.c (send_key, get_key, search_key): Check return
393         value of malloc.
394         (dehtmlize): Use ascii_tolower to protect against weird locales.
395         Cast the argument for isspace for the sake of broken HP/UXes.
396         (search_key): Check return value of realloc.
397
398 2002-09-09  David Shaw  <dshaw@jabberwocky.com>
399
400         * gpgkeys_ldap.c (get_key): Some compilers (RISC OS, HPUX c89)
401         don't like using variables as array initializers.
402
403         * gpgkeys_hkp.c (send_key): Use CRLF in headers.
404
405 2002-08-28  David Shaw  <dshaw@jabberwocky.com>
406
407         * gpgkeys_hkp.c (parse_hkp_index): Use same types on all
408         platforms.  This was probably leftover from earlier code where the
409         typing mattered.
410
411         * gpgkeys_hkp.c: Overall cleanup from iobuf conversion.  Be
412         consistent in m_alloc and malloc usage.  Remove include-disabled
413         (meaningless on HKP).  RISC OS tweak.
414
415 2002-08-27  David Shaw  <dshaw@jabberwocky.com>
416
417         * gpgkeys_hkp.c, Makefile.am: Convert over to using iobufs.
418
419         * gpgkeys_hkp.c (http_get, http_post): Use CRLF for line endings.
420
421         * gpgkeys_hkp.c: Include util.h on RISC OS as per Stefan.  Include
422         a replacement for hstrerror() for those platforms (such as RISC
423         OS) that don't have it.
424
425 2002-08-26  David Shaw  <dshaw@jabberwocky.com>
426
427         * Makefile.am: May as well include gpgkeys_hkp.c in the
428         distribution now.  It works well enough without proxies, and isn't
429         built by default.  It would be good to get some test experience
430         with it.
431
432         * gpgkeys_hkp.c (main): Don't warn about include-subkeys - it
433         isn't unsupported, it's actually non-meaningful in the context of
434         HKP (yet).
435
436         * gpgkeys_hkp.c (parse_hkp_index, dehtmlize): Move HTML
437         functionality into new "dehtmlize" function.  Remove HTML before
438         trying to parse each line from the keyserver.  If the keyserver
439         provides key type information in the listing, use it.  (Copy over
440         from g10/hkp.c).
441
442 2002-08-19  David Shaw  <dshaw@jabberwocky.com>
443
444         * gpgkeys_hkp.c (get_key, parse_hkp_index): Bring over latest code
445         from g10/hkp.c.
446
447         * gpgkeys_ldap.c (get_key): Fix cosmetic URL display problem
448         (extra ":" at the end).
449
450 2002-08-03  Stefan Bellon  <sbellon@sbellon.de>
451
452         * gpgkeys_ldap.c: Tidied up RISC OS initializations.
453
454 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
455
456         * gpgkeys_hkp.c: "Warning" -> "WARNING"
457
458 2002-07-24  David Shaw  <dshaw@jabberwocky.com>
459
460         * Makefile.am: Install keyserver helpers in @GNUPG_LIBEXECDIR@
461
462 2002-07-15  David Shaw  <dshaw@jabberwocky.com>
463
464         * gpgkeys_ldap.c (send_key, get_key, main): Consult the server
465         version string to determine whether to use pgpKey or pgpKeyV2.
466
467 2002-07-09  David Shaw  <dshaw@jabberwocky.com>
468
469         * gpgkeys_mailto.in: Use new OPAQUE tag for non net-path URIs.
470         Fail more elegantly if there is no email address to send to.  Show
471         the GnuPG version in the message body.
472
473 2002-07-04  David Shaw  <dshaw@jabberwocky.com>
474
475         * gpgkeys_ldap.c (get_key), gpgkeys_hkp.c (get_key): Display
476         keyserver URI as a URI, but only if verbose.
477
478 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
479
480         * gpgkeys_hkp.c (parse_hkp_index): Error if the keyserver returns
481         an unparseable HKP response.
482
483         * gpgkeys_hkp.c (main): Warn on honor-http-proxy,
484         broken-http-proxy, and include-subkeys (not supported yet).
485
486         * gpgkeys_ldap.c (main), gpgkeys_hkp.c (http_connect, main): Fix
487         some shadowing warnings.
488
489 2002-06-11  David Shaw  <dshaw@jabberwocky.com>
490
491         * Makefile.am: Don't hard-code the LDAP libraries - get them from
492         LDAPLIBS via configure.  Also, gpgkeys_hkp is a program, not a
493         script.
494
495 2002-06-10  David Shaw  <dshaw@jabberwocky.com>
496
497         * gpgkeys_ldap.c (include_subkeys): Default "include-subkeys" to
498         off, since GnuPG now defaults it to on.
499
500 2002-06-06  David Shaw  <dshaw@jabberwocky.com>
501
502         * gpgkeys_hkp.c (parse_hkp_index): Type tweaks.
503
504         * gpgkeys_hkp.c (main): Add experimental code warning.
505
506 2002-06-05  David Shaw  <dshaw@jabberwocky.com>
507
508         * Makefile.am, gpgkeys_hkp.c (new): Experimental HKP keyserver
509         interface.
510
511 2002-05-08  David Shaw  <dshaw@jabberwocky.com>
512
513         * gpgkeys_ldap.c: Include <lber.h> if we absolutely must.  This
514         helps when compiling against a very old OpenLDAP.
515
516 2002-04-29  David Shaw  <dshaw@jabberwocky.com>
517
518         * gpgkeys_mailto.in: Properly handle key requests in full
519         fingerprint form.
520
521 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
522
523         * gpgkeys_ldap.c (printquoted): Quote backslashes within keyserver
524         search responses.
525
526 2002-02-25  David Shaw  <dshaw@jabberwocky.com>
527
528         * gpgkeys_ldap (get_key): LDAP keyservers do not support v3
529         fingerprints, so error out if someone tries.  Actually, they don't
530         support any fingerprints, but at least we can calculate a keyid
531         from a v4 fingerprint.
532
533 2002-02-23  David Shaw  <dshaw@jabberwocky.com>
534
535         * gpgkeys_ldap: Clarify the notion of a partial failure.  This is
536         possible if more than one key is being handled in a batch, and one
537         fails while the other succeeds.  Note that a search that comes up
538         with no results is not a failure - that is a valid response of "no
539         answer".
540
541         * gpgkeys_ldap.c (get_key): Allow GnuPG to send us full v4
542         fingerprints, long key ids, or short key ids while fetching.
543         Since the LDAP server doesn't actually handle fingerprints, chop
544         them down to long key ids for actual use.
545
546         * gpgkeys_ldap.c (main, get_key): When searching for a keyid,
547         search for subkeys as well as primary keys.  This is mostly
548         significant when automatically fetching the key based on the id in
549         a header (i.e. "signature made by....").  "no-include-subkeys"
550         disables.
551
552 2002-02-14  David Shaw  <dshaw@jabberwocky.com>
553
554         * gpgkeys_ldap.c: Fix compiler warning.
555
556         * gpgkeys_ldap.c: Be much more robust with mangled input files.
557
558 2001-12-28  David Shaw  <dshaw@jabberwocky.com>
559
560         * gpgkeys_mailto.in: Use the new OUTOFBAND indicator so gpg knows
561         not to try and import anything.  Also turn on perl -w for
562         warnings.
563
564         * gpgkeys_ldap.c (main): If we're using temp files (rather than
565         stdin/stdout), make sure the file is closed when we're done.
566
567 2001-12-20  David Shaw  <dshaw@jabberwocky.com>
568
569         * Properly free the LDAP response when we're done with it.
570
571         * Now that we handle multiple keys, we must remove duplicates as
572         the LDAP keyserver returns keys with multiple user IDs multiple
573         times.
574
575         * Properly handle multiple keys with the same key ID (it's really
576         rare, so fetch "0xDEADBEEF" to test this).
577
578 2001-12-17  David Shaw  <dshaw@jabberwocky.com>
579
580         * gpgkeys_ldap.c, gpgkeys_mailto.in: Fix GNU capitalization
581         issues.  Prefix log messages with "gpgkeys" to clarify which
582         program is generating them.
583
584 2001-12-14  David Shaw  <dshaw@jabberwocky.com>
585
586         * gpgkeys_ldap.c (search_key): Use unsigned int rather than uint
587         for portability.
588
589 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
590
591         * Initial version of gpgkeys_ldap (LDAP keyserver helper) and
592         gpgkeys_mailto (email keyserver helper)
593
594
595  Copyright 1998, 1999, 2000, 2001, 2002, 2003,
596            2004 Free Software Foundation, Inc.
597
598  This file is free software; as a special exception the author gives
599  unlimited permission to copy and/or distribute it, with or without
600  modifications, as long as this notice is preserved.
601
602  This file is distributed in the hope that it will be useful, but
603  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
604  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.