#
0a582757 |
| 16-Jan-2021 |
Erik Olsson |
lib: save a bit of space with some structure packing - Reorder some internal struct members so that less padding is used. This is an attempt at saving a bit of space by packing some
lib: save a bit of space with some structure packing - Reorder some internal struct members so that less padding is used. This is an attempt at saving a bit of space by packing some structs (using pahole to find the holes) where it might make sense to do so without losing readability. I.e., I tried to avoid separating fields that seem grouped together (like the cwd... fields in struct ftp_conn for instance). Also abstained from touching fields behind conditional macros as that quickly can get complicated. Closes https://github.com/curl/curl/pull/6483
show more ...
|
#
6246a1d8 |
| 19-Jan-2021 |
Daniel Stenberg |
doh: allocate state struct on demand ... instead of having it static within the Curl_easy struct. This takes away 1176 bytes (18%) from the Curl_easy struct that aren't used very oft
doh: allocate state struct on demand ... instead of having it static within the Curl_easy struct. This takes away 1176 bytes (18%) from the Curl_easy struct that aren't used very often and instead makes the code allocate it when needed. Closes #6492
show more ...
|
#
d0688dcb |
| 19-Jan-2021 |
Daniel Stenberg |
socks: use the download buffer instead The SOCKS code now uses the generic download buffer for temporary storage during the connection procedure, instead of having its own private 60
socks: use the download buffer instead The SOCKS code now uses the generic download buffer for temporary storage during the connection procedure, instead of having its own private 600 byte buffer that adds to the connectdata struct size. This works fine because this point the buffer is allocated but is not use for download yet since the connection hasn't completed. This reduces the connection struct size by 22% on a 64bit arch! The SOCKS buffer needs to be at least 600 bytes, and the download buffer is guaranteed to never be smaller than 1000 bytes. Closes #6491
show more ...
|
#
942cf12c |
| 19-Jan-2021 |
Daniel Stenberg |
urldata: make magic be the first struct field By making the `magic` identifier the same size and at the same place within the structs (easy, multi, share), libcurl will be able to more
urldata: make magic be the first struct field By making the `magic` identifier the same size and at the same place within the structs (easy, multi, share), libcurl will be able to more reliably detect and safely error out if an application passes in the wrong handle to APIs. Easier to detect and less likely to cause crashes if done. Such mixups can't be detected at compile-time due to them being typedefed void pointers - unless `CURL_STRICTER` is defined. Closes #6484
show more ...
|
#
215db086 |
| 08-Jan-2021 |
Daniel Stenberg |
lib: pass in 'struct Curl_easy *' to most functions ... in most cases instead of 'struct connectdata *' but in some cases in addition to. - We mostly operate on transfers and no
lib: pass in 'struct Curl_easy *' to most functions ... in most cases instead of 'struct connectdata *' but in some cases in addition to. - We mostly operate on transfers and not connections. - We need the transfer handle to log, store data and more. Everything in libcurl is driven by a transfer (the CURL * in the public API). - This work clarifies and separates the transfers from the connections better. - We should avoid "conn->data". Since individual connections can be used by many transfers when multiplexing, making sure that conn->data points to the current and correct transfer at all times is difficult and has been notoriously error-prone over the years. The goal is to ultimately remove the conn->data pointer for this reason. Closes #6425
show more ...
|
#
08e8455d |
| 09-Jul-2020 |
Matthias Gatto |
http: introduce AWS HTTP v4 Signature It is a security process for HTTP. It doesn't seems to be standard, but it is used by some cloud providers. Aws: https://docs.aws.
http: introduce AWS HTTP v4 Signature It is a security process for HTTP. It doesn't seems to be standard, but it is used by some cloud providers. Aws: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Outscale: https://wiki.outscale.net/display/EN/Creating+a+Canonical+Request GCP (I didn't test that this code work with GCP though): https://cloud.google.com/storage/docs/access-control/signing-urls-manually most of the code is in lib/http_v4_signature.c Information require by the algorithm: - The URL - Current time - some prefix that are append to some of the signature parameters. The data extracted from the URL are: the URI, the region, the host and the API type example: https://api.eu-west-2.outscale.com/api/latest/ReadNets ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ^ ^ ^ / \ URI API type region Small description of the algorithm: - make canonical header using content type, the host, and the date - hash the post data - make canonical_request using custom request, the URI, the get data, the canonical header, the signed header and post data hash - hash canonical_request - make str_to_sign using one of the prefix pass in parameter, the date, the credential scope and the canonical_request hash - compute hmac from date, using secret key as key. - compute hmac from region, using above hmac as key - compute hmac from api_type, using above hmac as key - compute hmac from request_type, using above hmac as key - compute hmac from str_to_sign using above hmac as key - create Authorization header using above hmac, prefix pass in parameter, the date, and above hash Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com> Closes #5703
show more ...
|
#
abb68c19 |
| 18-Dec-2020 |
Daniel Stenberg |
build: repair http disabled but mqtt enabled build ... as the mqtt code reuses the "method" originally used for HTTP. Closes #6344
|
#
58974d25 |
| 14-Dec-2020 |
Daniel Stenberg |
lib: introduce c-hyper for using Hyper ... as an alternative HTTP backend within libcurl.
|
#
a5bc2722 |
| 15-Dec-2020 |
Daniel Stenberg |
http: show the request as headers even when split-sending When the initial request isn't possible to send in its entirety, the remainder of request would be delivered to the debug callba
http: show the request as headers even when split-sending When the initial request isn't possible to send in its entirety, the remainder of request would be delivered to the debug callback as data and would wrongly be counted internally as body-bytes sent. Extended test 1295 to verify. Closes #6328
show more ...
|
#
6d338a87 |
| 07-Dec-2020 |
Jacob Hoffman-Andrews |
urldata: restore comment on ssl_connect_data.use This comment was originally on the `use` field, but was separated from its field in 62a2534. Closes https://github.com/curl/curl
urldata: restore comment on ssl_connect_data.use This comment was originally on the `use` field, but was separated from its field in 62a2534. Closes https://github.com/curl/curl/pull/6287
show more ...
|
#
37cdc2a0 |
| 23-Nov-2020 |
Daniel Stenberg |
asyn: use 'struct thread_data *' instead of 'void *' To reduce use of types that can't be checked at compile time. Also removes several typecasts. ... and rename the struct fiel
asyn: use 'struct thread_data *' instead of 'void *' To reduce use of types that can't be checked at compile time. Also removes several typecasts. ... and rename the struct field from 'os_specific' to 'tdata'. Closes #6239 Reviewed-by: Jay Satiro
show more ...
|
#
a95a6ce6 |
| 23-Nov-2020 |
Daniel Stenberg |
urldata: remove 'void *protop' and create the union 'p' ... to avoid the use of 'void *' for the protocol specific structs done per transfer. Closes #6238
|
#
c49d205a |
| 09-Nov-2020 |
Daniel Stenberg |
http_proxy: use enum with state names for 'keepon' To make the code clearer, change the 'keepon' from an int to an enum with better state names. Reported-by: Niranjan Hasabnis
http_proxy: use enum with state names for 'keepon' To make the code clearer, change the 'keepon' from an int to an enum with better state names. Reported-by: Niranjan Hasabnis Bug: https://curl.se/mail/lib-2020-11/0026.html Closes #6193
show more ...
|
#
4d2f8006 |
| 04-Nov-2020 |
Daniel Stenberg |
curl.se: new home Closes #6172
|
#
2cfc4ed9 |
| 02-Nov-2020 |
Daniel Stenberg |
hsts: add read/write callbacks - read/write callback options - man pages for the 4 new setopts - test 1915 verifies the callbacks Closes #5896
|
#
7385610d |
| 02-Nov-2020 |
Daniel Stenberg |
hsts: add support for Strict-Transport-Security - enable in the build (configure) - header parsing - host name lookup - unit tests for the above - CI build - CURL_VERSION
hsts: add support for Strict-Transport-Security - enable in the build (configure) - header parsing - host name lookup - unit tests for the above - CI build - CURL_VERSION_HSTS bit - curl_version_info support - curl -V output - curl-config --features - CURLOPT_HSTS_CTRL - man page for CURLOPT_HSTS_CTRL - curl --hsts (sets CURLOPT_HSTS_CTRL and works with --libcurl) - man page for --hsts - save cache to disk - load cache from disk - CURLOPT_HSTS - man page for CURLOPT_HSTS - added docs/HSTS.md - fixed --version docs - adjusted curl_easy_duphandle Closes #5896
show more ...
|
#
96450a1a |
| 25-Oct-2020 |
Daniel Stenberg |
alt-svc: enable by default Remove CURLALTSVC_IMMEDIATELY, which was never implemented/supported. alt-svc support in curl is no longer considered experimental Closes #5868
|
#
1397a7de |
| 21-Sep-2020 |
Daniel Stenberg |
ftp: separate FTPS from FTP over "HTTPS proxy" When using HTTPS proxy, SSL is used but not in the view of the FTP protocol handler itself so separate the connection's use of SSL from the
ftp: separate FTPS from FTP over "HTTPS proxy" When using HTTPS proxy, SSL is used but not in the view of the FTP protocol handler itself so separate the connection's use of SSL from the FTP control connection's sue. Reported-by: Mingtao Yang Fixes #5523 Closes #6006
show more ...
|
#
3d64031f |
| 21-Sep-2020 |
Daniel Stenberg |
symbian: drop support The OS is deprecated. I see no traces of anyone having actually built curl for Symbian after 2012. The public headers are unmodified. Closes #5989
|
#
6434a739 |
| 21-Sep-2020 |
Daniel Stenberg |
Curl_handler: add 'family' to each protocol Makes get_protocol_family() faster and it moves the knowledge about the "families" to each protocol handler, where it belongs. Closes
Curl_handler: add 'family' to each protocol Makes get_protocol_family() faster and it moves the knowledge about the "families" to each protocol handler, where it belongs. Closes #5986
show more ...
|
Revision tags: curl-7_71_1 |
|
#
182ff2d6 |
| 29-Jun-2020 |
Gergely Nagy |
vtls: deduplicate client certificates in ssl_config_data Closes #5629
|
#
3acb2abd |
| 02-Sep-2020 |
Daniel Stenberg |
vtls: make it 'struct Curl_ssl_session' Use uppercase C for internal symbols. Closes #5906
|
#
9e90ff08 |
| 02-Sep-2020 |
Daniel Stenberg |
hash: make it 'struct Curl_hash' As internal global names should use captical C. Closes #5906
|
#
9b3f888a |
| 02-Sep-2020 |
Daniel Stenberg |
llist: make it "struct Curl_llist" As internal global names should use captical C. Closes #5906
|
#
ede125b7 |
| 29-Aug-2020 |
Michael Baentsch <57787676+baentsch@users.noreply.github.com> |
tls: add CURLOPT_SSL_EC_CURVES and --curves Closes #5892
|