gnupg/dirmngr
Werner Koch a5e33618f4
dirmngr: Fix handling of the HTTP Content-Length
* dirmngr/http.c (cookie_s): Add fields pending, up_to_empty_line,
last_was_lf, and last_was_lfcr.
(http_context_s): Add field keep-alive.
(http_wait_response): Set up_to_empty_line.  Take care of keep_alive
flag.
(coookie_read): Implement detection of empty lines.
(cookie_write): Free the pending buffer.
--

The problem we fix here is that we already buffered stuff beyond the
empty line which marks the start of the content-length counting.  Thus
we tried to wait for more bytes despite that everything had already
been read.  This bug might have showed up more often in the real world
since the we changed the BUFSIZ on Windows from 512 byte to 8k.  It
also depends on the length of the headers and whether the server
closed the connection so that we ignored the Content-Length.

The bug was introduced earlier than 2010 and could have the effect
that a connection got stuck until the network layer timed out.

Note that the keep-alive parts of the patch are not yet used.
2023-09-26 14:19:26 +02:00
..
ChangeLog-2011 delete redundant characters 2023-06-20 09:08:14 +09:00
ChangeLog-2011-ks Remove the obsolete keyserver directory from the repo. 2015-04-20 18:20:45 +02:00
Makefile.am dirmngr: Implement automatic proxy detection on Windows. 2023-09-26 14:10:13 +02:00
OAUTHORS Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
ONEWS Nuked almost all trailing white space. 2011-02-04 12:57:53 +01:00
cdb.h headers: fix spelling 2018-10-25 16:53:05 -04:00
cdblib.c dirmngr: Clean up for not supporting WindowsCE. 2022-03-29 13:41:04 +09:00
certcache.c dirmngr: Add command "GETINFO stats". 2023-03-10 11:24:48 +01:00
certcache.h dirmngr: Add command "GETINFO stats". 2023-03-10 11:24:48 +01:00
crlcache.c dirmngr: New option --ignore-crl-extensions. 2023-06-19 14:25:47 +02:00
crlcache.h dirmngr: Fix API of functions wrt their error type. 2023-05-01 11:39:24 +09:00
crlfetch.c dirmngr: Distinguish between "no crl" and "crl not trusted". 2023-03-09 18:28:39 +01:00
crlfetch.h dirmngr: Rewrite the LDAP wrapper tool 2021-06-16 12:58:32 +02:00
dirmngr-client-w32info.rc w32: Add missing manifests and set a requestedExecutionLevel. 2023-05-24 12:06:37 +02:00
dirmngr-client.c dirmngr: Suppress error message on trial reading as PEM format. 2022-03-25 08:41:51 +09:00
dirmngr-client.w32-manifest.in w32: Add missing supportedOS Ids for Windows-10 2023-05-24 14:16:10 +02:00
dirmngr-err.h Some work on porting dirmngr (unfinished) 2010-07-16 13:19:45 +00:00
dirmngr-status.h dirmngr: Print a WARNING status for DNS config problems. 2018-07-25 14:35:04 +02:00
dirmngr-w32info.rc w32: Add missing manifests and set a requestedExecutionLevel. 2023-05-24 12:06:37 +02:00
dirmngr.c dirmngr: Implement automatic proxy detection on Windows. 2023-09-26 14:10:13 +02:00
dirmngr.h dirmngr: New option --ignore-crl-extensions. 2023-06-19 14:25:47 +02:00
dirmngr.w32-manifest.in w32: Add missing manifests and set a requestedExecutionLevel. 2023-05-24 12:06:37 +02:00
dirmngr_ldap-w32info.rc w32: Add missing manifests and set a requestedExecutionLevel. 2023-05-24 12:06:37 +02:00
dirmngr_ldap.c dirmngr: New command AD_QUERY. 2023-03-20 19:24:49 +01:00
dirmngr_ldap.w32-manifest.in w32: Add missing supportedOS Ids for Windows-10 2023-05-24 14:16:10 +02:00
dns-stuff.c Require Libgcrypt 1.9 2021-01-19 10:33:03 +01:00
dns-stuff.h dirmngr: Use IPv4 or IPv6 interface only if available. 2019-11-12 20:35:12 +01:00
dns.c dirmngr:dns,doc,gpg: Fix for noreturn for C11. 2022-09-16 14:33:50 +09:00
dns.h dirmngr: dns: Fix allocation of string buffer in stack. 2020-05-20 19:44:38 +09:00
domaininfo.c dirmngr: Add command "GETINFO stats". 2023-03-10 11:24:48 +01:00
fakecrl.c dirmngr: Add framework to implement a fake CRL feature. 2023-03-16 14:52:28 +01:00
http-common.c dirmngr: Fix commit de6d8313 2017-03-03 17:17:26 +01:00
http-common.h dirmngr: Implement automatic proxy detection on Windows. 2023-09-26 14:10:13 +02:00
http-ntbtls.c dirmngr: Change the default keyserver. 2021-08-24 18:09:56 +02:00
http.c dirmngr: Fix handling of the HTTP Content-Length 2023-09-26 14:19:26 +02:00
http.h dirmngr: Cleanup the http module. 2023-09-26 13:58:31 +02:00
ks-action.c dirmngr: Return modifyTimestamp and add server option --newer. 2023-04-04 08:49:55 +02:00
ks-action.h dirmngr: Return modifyTimestamp and add server option --newer. 2023-04-04 08:49:55 +02:00
ks-engine-finger.c dirmngr: Print a WARNING status for DNS config problems. 2018-07-25 14:35:04 +02:00
ks-engine-hkp.c dirmngr: Improve error codes returned from http fetching. 2023-09-26 14:10:42 +02:00
ks-engine-http.c dirmngr: Improve error codes returned from http fetching. 2023-09-26 14:10:42 +02:00
ks-engine-kdns.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
ks-engine-ldap.c dirmngr: Extend the AD_QUERY command. 2023-06-07 10:03:48 +02:00
ks-engine.h dirmngr: Extend the AD_QUERY command. 2023-06-07 10:03:48 +02:00
ldap-misc.c dirmngr: Fix LDAP time parser. 2023-08-24 11:25:30 +02:00
ldap-misc.h dirmngr: Return modifyTimestamp and add server option --newer. 2023-04-04 08:49:55 +02:00
ldap-parse-uri.c dirmngr: Support new gpgNtds parameter in LDAP keyserver URLs. 2021-02-17 17:40:02 +01:00
ldap-parse-uri.h Remove -I option to common. 2017-03-07 20:25:54 +09:00
ldap-url.c dirmngr: Fix ldap-url.c. 2021-12-17 13:33:40 +09:00
ldap-url.h Merged Dirmngr with GnuPG. 2010-06-09 16:53:51 +00:00
ldap-wrapper.c agent,common,dirmngr,tests,tools: Remove spawn PREEXEC argument. 2022-10-20 14:19:19 +09:00
ldap-wrapper.h dirmngr: Remove cruft from dirmngr_ldap 2019-11-11 20:49:04 +01:00
ldap.c doc: Typo fixes and new notes in DETAILS 2023-03-03 08:50:08 +01:00
ldapserver.c dirmngr: Fix lost flags during LDAP upload 2022-09-28 15:43:48 +02:00
ldapserver.h dirmngr: Fix lost flags during LDAP upload 2022-09-28 15:43:48 +02:00
loadswdb.c common,agent,dirmngr,g10,tools: Fix split_fields API. 2020-09-18 10:20:23 +09:00
misc.c dirmngr: Fix LDAP port parsing. 2018-11-05 09:00:02 +01:00
misc.h dirmngr: Rearrange files to fix de6d831. 2017-03-02 18:35:03 +01:00
ocsp.c gpgsm: Print revocation date and reason in cert listings. 2022-12-05 16:42:08 +01:00
ocsp.h gpgsm: Print revocation date and reason in cert listings. 2022-12-05 16:42:08 +01:00
server.c dirmngr: Relax the detection of the "none" keyserver. 2023-09-11 11:24:00 +02:00
sks-keyservers.netCA.pem dirmngr: Add support for hkps keyservers. 2014-05-05 16:23:37 +02:00
t-dns-stuff.c dirmngr: Print a WARNING status for DNS config problems. 2018-07-25 14:35:04 +02:00
t-http-basic.c dirmngr: Disable the HTTP redirect rewriting. 2023-06-15 15:06:21 +02:00
t-http.c dirmngr: Improve error codes returned from http fetching. 2023-09-26 14:10:42 +02:00
t-ldap-misc.c dirmngr: Rewrite the LDAP wrapper tool 2021-06-16 12:58:32 +02:00
t-ldap-parse-uri.c dirmngr: Rework of the LDAP code, part 1. 2019-11-26 13:09:35 +01:00
t-support.c dirmngr: Print a WARNING status for DNS config problems. 2018-07-25 14:35:04 +02:00
t-support.h dirmngr: Rewrite the LDAP wrapper tool 2021-06-16 12:58:32 +02:00
tls-ca.pem Move http module from common/ to dirmngr/. 2015-10-18 20:08:26 +02:00
validate.c dirmngr: Distinguish between "no crl" and "crl not trusted". 2023-03-09 18:28:39 +01:00
validate.h dirmngr: Support ECDSA for OCSP. 2022-02-27 12:26:38 +01:00
workqueue.c dirmngr: Add command "GETINFO stats". 2023-03-10 11:24:48 +01:00