2
0
mirror of https://github.com/curl/curl.git synced 2025-03-31 16:00:35 +08:00

1177 Commits

Author SHA1 Message Date
Viktor Szakats
2c4c780472
curl.h: delete Symbian OS references
curl deprecated Symbian OS in 3d64031fa7a80ac4ae3fd09a5939196268b92f81
via . Delete references to it from public headers, because there
is no fresh release to use those headers with.

Reviewed-by: Dan Fandrich
Reviewed-by: Jay Satiro
Closes 
2023-11-22 15:43:10 +00:00
Viktor Szakats
e9a7d4a1c8
windows: use built-in _WIN32 macro to detect Windows
Windows compilers define `_WIN32` automatically. Windows SDK headers
or build env defines `WIN32`, or we have to take care of it. The
agreement seems to be that `_WIN32` is the preferred practice here.
Make the source code rely on that to detect we're building for Windows.

Public `curl.h` was using `WIN32`, `__WIN32__` and `CURL_WIN32` for
Windows detection, next to the official `_WIN32`. After this patch it
only uses `_WIN32` for this. Also, make it stop defining `CURL_WIN32`.

There is a slight chance these break compatibility with Windows
compilers that fail to define `_WIN32`. I'm not aware of any obsolete
or modern compiler affected, but in case there is one, one possible
solution is to define this macro manually.

grepping for `WIN32` remains useful to discover Windows-specific code.

Also:

- extend `checksrc` to ensure we're not using `WIN32` anymore.

- apply minor formatting here and there.

- delete unnecessary checks for `!MSDOS` when `_WIN32` is present.

Co-authored-by: Jay Satiro
Reviewed-by: Daniel Stenberg

Closes 
2023-11-22 15:42:25 +00:00
Viktor Szakats
413a0fedd0
autotools: stop setting -std=gnu89 with --enable-warnings
Do not alter the C standard when building with `--enable-warnings` when
building with gcc.

On one hand this alters warning results compared to a default build.
On the other, it may produce different binaries, which is unexpected.

Also fix new warnings that appeared after removing `-std=gnu89`:

- include: fix public curl headers to use the correct printf mask for
  `CURL_FORMAT_CURL_OFF_T` and `CURL_FORMAT_CURL_OFF_TU` with mingw-w64
  and Visual Studio 2013 and newer. This fixes the printf mask warnings
  in examples and tests. E.g. [1]

- conncache: fix printf format string [2].

- http2: fix potential null pointer dereference [3].
  (seen on Slackware with gcc 11.)

- libssh: fix printf format string in SFTP code [4].
  Also make MSVC builds compatible with old CRT versions.

- libssh2: fix printf format string in SFTP code for MSVC.
  Applying the same fix as for libssh above.

- unit1395: fix `argument is null` and related issues [5]:
  - stop calling `strcmp()` with NULL to avoid undefined behaviour.
  - fix checking results if some of them were NULL.
  - do not pass NULL to printf `%s`.

- ci: keep a build job with `-std=gnu89` to continue testing for
  C89-compliance. We can apply this to other gcc jobs as needed.
  Ref: b23ce2cee7329bbf425f18b49973b7a5f23dfcb4 (2022-09-23) 

[1] https://dev.azure.com/daniel0244/curl/_build/results?buildId=18581&view=logs&jobId=ccf9cc6d-2ef1-5cf2-2c09-30f0c14f923b
[2] https://github.com/curl/curl/actions/runs/6896854263/job/18763831142?pr=12346#step:6:67
[3] https://github.com/curl/curl/actions/runs/6896854253/job/18763839238?pr=12346#step:30:214
[4] https://github.com/curl/curl/actions/runs/6896854253/job/18763838007?pr=12346#step:29:895
[5] https://github.com/curl/curl/actions/runs/6896854253/job/18763836775?pr=12346#step:33:1689

Closes 
2023-11-20 22:28:17 +00:00
Daniel Stenberg
0bd9164b85
RELEASE-NOTES: synced
bump to 8.5.0 for pending release
2023-10-22 10:58:08 +02:00
Daniel Stenberg
0b6d9ac8d9
curl.h: on FreeBSD include sys/param.h instead of osreldate.h
Should things build on Playstation as well

Fixes 
Reported-by: Faraz Fallahi
Closes 
2023-10-16 19:40:02 +02:00
Daniel Stenberg
a20d7bd974
RELEASE-NOTES: synced
Bumped to 8.4.1
2023-10-12 09:09:49 +02:00
Viktor Szakats
3b6d18bbf6
spelling: fix codespell 2.2.6 typos
Closes 
2023-10-03 21:37:56 +00:00
Daniel Stenberg
9ffd411735
curl_multi_get_handles: get easy handles from a multi handle
Closes 
2023-09-25 20:16:58 +02:00
Daniel Stenberg
cb5ca39874
curl.h: mark CURLSSLBACKEND_NSS as deprecated since 8.3.0
Closes 
2023-09-21 14:19:56 +02:00
Daniel Stenberg
6f17656c20
RELEASE-NOTES: synced
Bumped to 8.4.0, the next presumed version
2023-09-15 09:03:34 +02:00
Daniel Stenberg
a43511bff2
multi.h: the 'revents' field of curl_waitfd is supported
Since 6d30f8ebed34e7276

Reported-by: Nicolás Ojeda Bär
Ref: 
Closes 
2023-08-28 11:05:05 +02:00
Michael Osipov
1a14f2179b
system.h: add CURL_OFF_T definitions on HP-UX with HP aCC
HP-UX on IA64 provides two modes: 32 and 64 bit while 32 bit being the
default one. Use "long long" in 32 bit mode and just "long" in 64 bit
mode.

Closes 
2023-08-23 23:19:28 +02:00
Jay Satiro
8843bef318 CURLINFO_CERTINFO.3: better explain curl_certinfo struct
Closes https://github.com/curl/curl/pull/11666
2023-08-16 03:21:49 -04:00
Daniel Stenberg
c350069f64
urlapi: CURLU_PUNY2IDN - convert from punycode to IDN name
Asssisted-by: Jay Satiro
Closes 
2023-08-13 15:34:38 +02:00
Daniel Stenberg
e1356f4c45
curl/urlapi.h: tiny typo 2023-08-11 09:17:11 +02:00
Daniel Stenberg
78d6232f1f
gskit: remove
We remove support for building curl with gskit.

 - This is a niche TLS library, only running on some IBM systems
 - no regular curl contributors use this backend
 - no CI builds use or verify this backend
 - gskit, or the curl adaption for it, lacks many modern TLS features
   making it an inferior solution
 - build breakages in this code take weeks or more to get detected
 - fixing gskit code is mostly done "flying blind"

This removal has been advertized in DEPRECATED in Jan 2, 2023 and it has
been mentioned on the curl-library mailing list.

It could be brought back, this is not a ban. Given proper effort and
will, gskit support is welcome back into the curl TLS backend family.

Closes 
2023-08-07 20:57:48 +02:00
Daniel Stenberg
cfe85ca562
include/curl/mprintf.h: add __attribute__ for the prototypes
- if gcc or clang is used
- if __STDC_VERSION__ >= 199901L, which means greater than C90
- if not using mingw
- if CURL_NO_FMT_CHECKS is not defined

Closes 
2023-08-07 10:46:14 +02:00
Stefan Eissing
e12b39e133
trace: make tracing available in non-debug builds
Add --trace-config to curl

Add curl_global_trace() to libcurl

Closes 
2023-08-03 17:32:25 +02:00
Daniel Stenberg
d6d5c46769
RELEASE-NOTES: synced
Bump working version to 8.3.0
2023-07-27 23:58:57 +02:00
bch
bc642cb333
websocket: rename arguments/variables to match docs
Pedantry/semantic-alignment between functions, docs, comments with
respect to websocket protocol code; No functional change intended.

* "totalsize", "framesize" becomes "fragsize" (we deal in frame fragments).

* "sendflags" becomes "flags"

* use canonical CURL *handle

Closes 
2023-07-22 00:31:31 +02:00
Daniel Stenberg
8edfdf9cf1
RELEASE-NOTES: synced
bump to 8.2.1
2023-07-19 09:26:46 +02:00
Sheshadri.V
891e25edb8
curl.h: include <sys/select.h> for vxworks
Closes 
2023-06-25 10:42:47 +02:00
Stefan Eissing
e024d5665d
lib: add CURLINFO_CONN_ID and CURLINFO_XFER_ID
- add an `id` long to Curl_easy, -1 on init
- once added to a multi (or its own multi), it gets
  a non-negative number assigned by the connection cache
- `id` is unique among all transfers using the same
  cache until reaching LONG_MAX where it will wrap
  around. So, not unique eternally.
- CURLINFO_CONN_ID returns the connection id attached to
  data or, if none present, data->state.lastconnect_id
- variables and type declared in tool for write out

Closes 
2023-06-12 23:53:00 +02:00
Daniel Stenberg
78886afb50
ws: make the curl_ws_meta() return pointer a const
The returned info is read-only for the user.

Closes 
2023-06-07 23:37:21 +02:00
Raito Bezarius
0a75964d0d
haproxy: add --haproxy-clientip flag to spoof client IPs
CURLOPT_HAPROXY_CLIENT_IP in the library

Closes 
2023-06-05 20:08:37 +02:00
Daniel Stenberg
fff65550bc
CURLOPT_MAIL_RCPT_ALLOWFAILS: replace CURLOPT_MAIL_RCPT_ALLLOWFAILS
Deprecate the name using three Ls and prefer the name with two.

Replaces 
Closes 
2023-06-03 23:29:04 +02:00
Igor Todorovski
310eb47168
system.h: remove __IBMC__/__IBMCPP__ guards and apply to all z/OS compiles
Closes 
2023-06-02 22:55:58 +02:00
Daniel Stenberg
10413994d6
RELEASE-NOTES: synced
bump to 8.2.0
2023-05-31 08:59:48 +02:00
Daniel Stenberg
3df6693787
RELEASE-NOTES: synced
Taken down to 8.1.2 now for pending patch release
2023-05-25 13:36:49 +02:00
Daniel Stenberg
1fe8de85d3
RELEASE-NOTES: synced
bump to 8.2.0
2023-05-23 11:12:50 +02:00
Hind Montassif
de522c55ba
curl_easy_getinfo: clarify on return data types
Closes 
2023-05-18 20:46:36 +02:00
Daniel Stenberg
88ba931daa
RELEASE-NOTES: synced
bumped to 8.1.1
2023-05-18 13:45:54 +02:00
Daniel Stenberg
712e5f1e7f
CURLPROXY_HTTPS2: for HTTPS proxy that may speak HTTP/2
Setting this proxy type allows curl to negotiate and use HTTP/2 with
HTTPS proxies.

Closes 
2023-04-08 00:27:53 +02:00
Jim King
34ef4fab22
openssl: interop with AWS-LC
* Configure changes to detect AWS-LC
* CMakeLists.txt changes to detect AWS-LC
* Compile-time branches needed to support AWS-LC
* Correctly set OSSL_VERSION and report AWS-LC release number
* GitHub Actions script to build with autoconf and cmake against AWS-LC

AWS-LC is a BoringSSL/OpenSSL derivative
For more information see https://github.com/awslabs/aws-lc/

Closes 
2023-03-30 10:56:14 +02:00
Daniel Stenberg
01114f6efd
ftplistparser: move out private data from public struct
The public 'curl_fileinfo' struct contained three fields that are for
internal purposes only. This change makes them unused in the public
struct.

The new private struct fields are also renamed to make this separation
more obvious internally.

Closes 
2023-03-28 10:11:33 +02:00
Daniel Stenberg
fe55a63c83
RELEASE-NOTES: synced
Bumped version-in-progress to 8.1.0
2023-03-24 16:42:09 +01:00
Daniel Stenberg
a2f569c5c6
include/curl/curlver.h: bump to 8.0.1 2023-03-20 13:45:57 +01:00
Daniel Stenberg
c3f3c2557c
curl.h: require gcc 12.1 for the deprecation magic
Reported-by: kchow-FTNT on github
Fixes 
Closes 
2023-03-17 17:52:48 +01:00
rcombs
b1d735956f
urlapi: take const args in _dup and _get functions
Closes 
2023-03-08 15:38:26 +01:00
Daniel Stenberg
0cafff2e5f
RELEASE-NOTES: synced
Starting the journey towards 8.0.0
2023-02-20 23:54:13 +01:00
Daniel Stenberg
8161b8fb79
RELEASE-NOTES: synced
bumped to 7.88.1
2023-02-15 23:49:01 +01:00
Daniel Stenberg
2aed8e179f
curl/websockets.h: extend the websocket frame struct 2023-02-10 08:28:58 +01:00
Jay Satiro
3feb6b46a2 system.h: assume OS400 is always built with ILEC compiler
Prior to this change the OS400 types were only defined when __ILEC400__.
That symbol is only defined by IBM's C compiler and not their C++
compiler, which led to missing types when users on OS400 would compile a
C++ application that included curl.

The IBM C and C++ compilers are the only native compilers on the
platform.

Assisted-by: Jon Rumsey
Reported-by: John Sherrill

Fixes https://github.com/curl/curl/issues/10305
Closes https://github.com/curl/curl/pull/10329
2023-01-21 15:08:23 -05:00
Daniel Stenberg
a56d2b0b94
curl.h: add CURL_HTTP_VERSION_3ONLY
As the previous CURL_HTTP_VERSION_3 option gets a slightly altered meaning.

Closes 
2023-01-12 16:17:55 +01:00
Daniel Stenberg
5cb63da771
curl.h: allow up to 10M buffer size
Bump the limit from 512K. There might be reasons for applications using
h3 to set larger buffers and there is no strong reason for curl to have
a very small maximum.

Ref: https://curl.se/mail/lib-2023-01/0026.html

Closes 
2023-01-08 20:54:48 +01:00
Daniel Stenberg
2bc1d775f5
copyright: update all copyright lines and remove year ranges
- they are mostly pointless in all major jurisdictions
- many big corporations and projects already don't use them
- saves us from pointless churn
- git keeps history for us
- the year range is kept in COPYING

checksrc is updated to allow non-year using copyright statements

Closes 
2023-01-03 09:19:21 +01:00
Daniel Stenberg
fc9f22b46e
curl.h: mark CURLSSLBACKEND_MESALINK as deprecated
Follow-up since 223f26c28a340b36

Deprecated since 7.82.0

Closes 
2023-01-01 15:42:20 +01:00
Daniel Stenberg
076a2f6291
share: add sharing of HSTS cache among handles
Closes 
2022-12-27 15:22:01 +01:00
Daniel Stenberg
901392cbb7
urlapi: add CURLU_PUNYCODE
Allows curl_url_get() get the punycode version of host names for the
host name and URL parts.

Extend test 1560 to verify.

Closes 
2022-12-26 23:29:23 +01:00
Patrick Monnerat
e2aed00430
typecheck: accept expressions for option/info parameters
As expressions can have side effects, evaluate only once.

To enable deprecation reporting only once, get rid of the __typeof__
use to define the local temporary variable and use the target type
(CURLoption/CURLINFO). This also avoids multiple reports on type
conflicts (if some) by the curlcheck_* macros.

Note that CURLOPT_* and CURLINFO_* symbols may be deprecated, but not
their values: a curl_easy_setopt call with an integer constant as option
will never report a deprecation.

Reported-by: Thomas Klausner
Fixes 
Closes 
2022-12-26 10:04:55 +01:00