Watch
1
0
Fork
You've already forked curl
0
mirror of https://github.com/curl/curl.git synced 2026-10-31 02:29:32 +01:00
A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, (T/S)FTP(S), GOPHER(S), HTTP(S), IMAP(S), LDAP(S), MQTT, POP3(S), RTMP(S), RTSP, SCP, SMB(S), SMTP(S) and TELNET. libcurl offers a myriad of powerful features
  • C 75.2%
  • Perl 7.8%
  • Python 5.8%
  • M4 4.2%
  • CMake 2.6%
  • Other 4.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Victor Hugo 31c911efe5 peer: use the given proxy port, fall back to the documented default
Since bc40e09f63 the proxy port is read with CURLU_NO_DEFAULT_PORT,
which drops an explicit port when it matches the default port of the
proxy URL's scheme. A proxy string without a scheme is guessed as http,
so "--socks5 host:80" ended up connecting to port 1080, and an explicit
port lost against CURLOPT_PROXYPORT when it happened to be the scheme
default.

The fallback also became the scheme's default port, so a plain HTTP
proxy without a port used 80 instead of the documented 1080.

Use the port as given, otherwise CURLOPT_PROXYPORT, or 443 for https
default, or 1080 for all others as default, like before.

Extend unit test 2413 to verify.

Follow-up to bc40e09f63.

Fixes https://github.com/curl/curl/issues/23681
Closes https://github.com/curl/curl/pull/23682
2026-10-30 13:21:51 -04:00
.github GHA: update dependency reuse to v6.3.0 2026-10-30 17:57:28 +01:00
CMake lib: drop using linux/tcp.h kernel header for the FastOpen feature 2026-10-27 08:34:16 +01:00
docs docs/cmdline-opts/retry.md: mention duplicate data with redirected output 2026-10-29 21:51:11 +01:00
include RELEASE-NOTES: synced 2026-10-14 23:25:43 +02:00
lib peer: use the given proxy port, fall back to the documented default 2026-10-30 13:21:51 -04:00
LICENSES spacecheck: check long lines and repeat spaces, fix fallouts 2026-03-25 11:02:08 +01:00
m4 cmake: verify OpenSSL 3+ version early 2026-10-29 23:52:37 +01:00
projects NTLM: drop support 2026-10-29 11:23:11 +01:00
scripts scripts: don't insist on all executable bits on scripts 2026-10-29 08:30:31 -07:00
src test 1623: add test data 2026-10-28 14:02:00 +01:00
tests peer: use the given proxy port, fall back to the documented default 2026-10-30 13:21:51 -04:00
.clang-tidy.yml clang-tidy: merge nested if()s 2026-09-03 10:04:56 +02:00
.dir-locals.el copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.editorconfig .editorconfig: add 2025-09-02 08:36:40 +02:00
.git-blame-ignore-revs copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
.gitattributes buildconf: remove 2026-04-04 11:35:24 +02:00
.gitignore gitignore: maintenance updates 2026-07-30 12:00:22 +02:00
.mailmap tool_progress: count retried transfers once 2026-10-26 14:31:25 +01:00
acinclude.m4 apple: shorten versions in __builtin_available() calls 2026-09-29 00:37:16 +02:00
appveyor.sh CI: drop ineffective workaround for MSYS2 runtime 2026-10-22 18:56:42 +02:00
appveyor.yml GHA/linux: move CircleCI jobs to GHA, to see logs and run them on all PRs 2026-10-28 14:10:15 +01:00
CHANGES.md CHANGES: fix typo in filename 2026-01-01 12:20:10 +01:00
CMakeLists.txt cmake: verify OpenSSL 3+ version early 2026-10-29 23:52:37 +01:00
configure.ac NTLM: drop support 2026-10-29 11:23:11 +01:00
COPYING COPYING: bump copyright year range to 1996 - 2026 2026-01-08 23:19:44 +01:00
curl-config.in autotools: tidy-up if expressions 2025-12-10 22:29:19 +01:00
Dockerfile Dockerfile: update debian:bookworm-slim Docker digest to 99c0b25 2026-10-28 08:54:46 +01:00
GIT-INFO.md docs/INTERNALS.md -> docs/DEPENDENCIES.md 2026-07-29 14:20:36 +02:00
libcurl.pc.in libcurl.pc: Add Copyright tag to the pkgconf file 2026-08-13 10:11:41 -07:00
Makefile.am autotools: alpha-sort ETAGS_ARGS list 2026-09-01 02:27:26 +02:00
README tidy-up: comments, messages, formatting 2026-07-30 11:26:22 +02:00
README.md SMB: drop support 2026-09-12 15:58:30 +02:00
RELEASE-NOTES RELEASE-NOTES: synced 2026-10-28 13:20:44 +01:00
REUSE.toml renovate: move configuration file to .github subdir 2026-10-02 12:26:00 +02:00
SECURITY.md SECURITY: remove a dupe link, drop "confidentiality" mention 2026-10-26 13:28:22 +01:00

curl logo

curl is a command-line tool for transferring data from or to a server using URLs. It supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET, TFTP, WS and WSS.

Learn how to use curl by reading the man page 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 man page 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

Security problems

Report suspected security problems privately and not in public.

Backers

Thank you to all our backers 🙏 Become a backer.

Sponsors

Support this project by becoming a sponsor.