A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
Go to file
Viktor Szakats 250d613763
binmode: convert to macro and use it from tests
And use it from src and tests.

Syncing this functionality between platforms and build targets.

Also: Stop redefining `O_BINARY` in src, and use a local macro with
the same effect. `O_BINARY` is used in `CURL_SET_BINMODE()` to decide
if this functionality is supported, and redefining it makes this check
pass always in unity builds. The check is required for Apple OS, because
it offers a `setmode()` function, successfully detected by both CMake
and autotools, but that function has a different functionality and
signature than that expected by `CURL_SET_BINMODE()`.

Also:
- drop MetaWare High C (MS-DOS) support for set binmode.
- tests/libtest/Makefile.inc: dedupe comments.
- lib/curl_setup_once.h: tidy up feature guards for `io.h`, `fcntl.h`.

Ref: #15652
Closes #15787
2024-12-21 13:29:24 +01:00
.circleci ci: update dependency wolfSSL/wolfssh to v1.4.19 2024-11-04 08:44:33 +01:00
.github hyper: drop support 2024-12-21 11:33:05 +01:00
CMake cmake: drop redundant opening/closing .* from MATCH expressions 2024-12-20 11:38:59 +01:00
docs TODO: sending only part of --data is now possible 2024-12-21 12:30:39 +01:00
include system.h: add 64-bit curl_off_t definitions for NonStop 2024-12-12 14:27:40 +01:00
lib binmode: convert to macro and use it from tests 2024-12-21 13:29:24 +01:00
LICENSES copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
m4 Makefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3) 2024-12-16 23:20:55 +01:00
packages binmode: convert to macro and use it from tests 2024-12-21 13:29:24 +01:00
plan9 copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
projects misc: general C style cleanups 2024-08-22 23:43:45 +02:00
scripts cd2nroff: support "none" as a TLS backend 2024-12-18 08:13:47 +01:00
src binmode: convert to macro and use it from tests 2024-12-21 13:29:24 +01:00
tests binmode: convert to macro and use it from tests 2024-12-21 13:29:24 +01:00
winbuild winbuild: drop gen_resp_file.bat 2024-11-01 11:36:54 +01:00
.dir-locals.el copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.git-blame-ignore-revs copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.gitattributes winbuild: MS-DOS batch tidy-ups 2024-07-02 19:26:15 +02:00
.gitignore build: buildinfo.txt improvements 2024-09-19 15:56:30 +02:00
.mailmap dmaketgz: use --no-cache when building docker image 2024-12-05 15:41:53 +01:00
acinclude.m4 Makefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3) 2024-12-16 23:20:55 +01:00
appveyor.sh build: fix clang-cl builds, add CI job 2024-10-30 23:15:32 +01:00
appveyor.yml build: fix clang-cl builds, add CI job 2024-10-30 23:15:32 +01:00
buildconf copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
buildconf.bat buildconf.bat: remove outdated groff/nroff use 2024-03-07 22:38:16 +01:00
CHANGES.md CHANGES: rename to CHANGES.md, no longer generated 2024-08-01 13:37:12 +02:00
CMakeLists.txt cmake: drop redundant opening/closing .* from MATCH expressions 2024-12-20 11:38:59 +01:00
configure.ac hyper: drop support 2024-12-21 11:33:05 +01:00
COPYING COPYING: update copyright year 2024-01-08 18:40:06 +01:00
curl-config.in configure: do not echo most inherited LDFLAGS to config files 2024-11-14 09:55:45 +01:00
Dockerfile Dockerfile: Update debian:bookworm-slim Docker digest to b73bf02 2024-12-03 09:25:09 +01:00
GIT-INFO.md GIT-INFO.md: remove version requirements 2024-07-08 23:06:05 +02:00
libcurl.pc.in configure: do not echo most inherited LDFLAGS to config files 2024-11-14 09:55:45 +01:00
Makefile.am cmake: add LDAP Find module 2024-12-16 19:36:43 +01:00
Makefile.dist Makefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3) 2024-12-16 23:20:55 +01:00
README docs: minor grammar fixes 2022-09-29 10:44:12 +02:00
README.md GHA: silence proselint warnings and an error 2024-10-15 16:44:17 +02:00
RELEASE-NOTES RELEASE-NOTES: synced 2024-12-20 10:08:08 +01:00
renovate.json GHA: drop "3" from openssl names and keys 2024-10-23 19:36:03 +02:00
REUSE.toml tests/server/util.c: remove use of strncpy 2024-10-10 07:47:01 +02:00
SECURITY.md docs: Clarify OpenSSF Best Practices vs Scorecard 2024-08-22 11:50:20 +02:00

curl logo

Curl is a command-line tool for transferring data specified with URL syntax. Learn how to use curl by reading the manpage or everything curl.

Find out how to install curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl manpage to learn how.

Open Source

curl is Open Source and is distributed under an MIT-like license.

Contact

Contact us on a suitable mailing list or use GitHub issues/ pull requests/ discussions.

All contributors to the project are listed in the THANKS document.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.

Website

Visit the curl website for the latest news and downloads.

Source code

Download the latest source from the Git server:

git clone https://github.com/curl/curl.git

Security problems

Report suspected security problems via our HackerOne page and not in public.

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.

Backers

Thank you to all our backers 🙏 Become a backer.

Sponsors

Support this project by becoming a sponsor.