Go to file
Daniel Gustafsson 12246eddc5 lib: avoid fallthrough cases in switch statements
Commit b5a434f7f0 inhibits the warning
on implicit fallthrough cases, since the current coding of indicating
fallthrough with comments is falling out of fashion with new compilers.
This attempts to make the issue smaller by rewriting fallthroughs to no
longer fallthrough, via either breaking the cases or turning switch
statements into if statements.

  lib/content_encoding.c: the fallthrough codepath is simply copied
    into the case as it's a single line.
  lib/http_ntlm.c: the fallthrough case skips a state in the state-
    machine and fast-forwards to NTLMSTATE_LAST. Do this before the
    switch statement instead to set up the states that we actually
    want.
  lib/http_proxy.c: the fallthrough is just falling into exiting the
    switch statement which can be done easily enough in the case.
  lib/mime.c: switch statement rewritten as if statement.
  lib/pop3.c: the fallthrough case skips to the next state in the
    statemachine, do this explicitly instead.
  lib/urlapi.c: switch statement rewritten as if statement.
  lib/vssh/wolfssh.c: the fallthrough cases fast-forwards the state
    machine, do this by running another iteration of the switch
    statement instead.
  lib/vtls/gtls.c: switch statement rewritten as if statement.
  lib/vtls/nss.c: the fallthrough codepath is simply copied into the
    case as it's a single line. Also twiddle a comment to not be
    inside a non-brace if statement.

Closes: #7322
See-also: #7295
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2021-09-29 10:00:52 +02:00
.circleci copyright: add boiler-plate headers to CI config files 2021-06-29 17:44:03 +02:00
.github codeql: fix error "Resource not accessible by integration" 2021-08-17 03:32:10 -04:00
.lift ci: update Lift config to match requirements of curl build 2021-09-23 12:57:04 +02:00
CMake build: remove checks for WinSock 1 2021-09-28 19:29:27 +02:00
docs externalsocket: use WinSock 2.2 2021-09-28 19:29:29 +02:00
include CURLOPT_PREREQFUNCTION: add new callback 2021-09-27 17:16:43 +02:00
lib lib: avoid fallthrough cases in switch statements 2021-09-29 10:00:52 +02:00
m4 build: remove checks for WinSock 1 2021-09-28 19:29:27 +02:00
packages urlapi: add curl_url_strerror() 2021-09-27 08:28:46 +02:00
plan9 copyright: fix year ranges 2020-11-05 08:22:10 +01:00
projects docs: Fix typos 2021-07-03 22:11:26 +02:00
scripts scripts/copyright: .muse is .lift now 2021-09-28 16:42:18 +02:00
src tool_cb_prg: make resumed upload progress bar show better 2021-09-27 23:17:44 +02:00
tests scripts/copyright: .muse is .lift now 2021-09-28 16:42:18 +02:00
winbuild winbuild/README.md: clarify GEN_PDB option 2021-08-09 13:02:52 -04:00
zuul.d zuul.d/jobs: disable three tests for *-openssl-disable-proxy 2021-09-13 17:28:41 +02:00
.azure-pipelines.yml CI: align make and test flags in various config files 2021-09-27 20:59:29 +02:00
.cirrus.yml CI: align make and test flags in various config files 2021-09-27 20:59:29 +02:00
.dcignore .dcignore: ignore tests and docs directories 2020-06-27 00:07:37 +02:00
.dir-locals.el curl.se: new home 2020-11-04 23:59:47 +01:00
.gitattributes gitattributes: Set batch files to CRLF line endings on checkout 2021-01-14 15:59:56 -05:00
.gitignore .gitignore: add directory containing the stats repo 2020-06-05 19:54:34 +02:00
.lgtm.yml metalink: remove 2021-06-07 08:14:25 +02:00
.mailmap mailmap: unify Max! 2021-09-27 17:22:00 +02:00
acinclude.m4 build: remove checks for WinSock 1 2021-09-28 19:29:27 +02:00
appveyor.yml CI: align make and test flags in various config files 2021-09-27 20:59:29 +02:00
buildconf buildconf: exec autoreconf to avoid additional process 2020-08-29 21:43:49 +02:00
buildconf.bat curl.se: new home 2020-11-04 23:59:47 +01:00
CHANGES curl.se: new home 2020-11-04 23:59:47 +01:00
CMakeLists.txt build: remove checks for WinSock 1 2021-09-28 19:29:27 +02:00
configure.ac build: remove checks for WinSock 1 2021-09-28 19:29:27 +02:00
COPYING COPYING/configure: bump copyright year range 2021-01-01 00:52:28 +01:00
curl-config.in curl.se: new home 2020-11-04 23:59:47 +01:00
GIT-INFO GIT-INFO: rephrase to adapt to s/buildconf/autoreconf 2021-09-24 13:14:52 +02:00
libcurl.pc.in Revert "libcurl.pc: make it relocatable" 2020-11-09 09:13:06 +01:00
MacOSX-Framework copyrights: update copyright year ranges 2021-09-08 09:36:49 +02:00
Makefile.am Revert "libcurl.pc: make it relocatable" 2020-11-09 09:13:06 +01:00
Makefile.dist configure: provide --with-openssl, deprecate --with-ssl 2021-04-15 09:08:34 +02:00
maketgz copyright: fix year ranges 2020-11-05 08:22:10 +01:00
README curl.se: new home 2020-11-04 23:59:47 +01:00
README.md CI: remove travis details 2021-06-29 17:42:57 +02:00
RELEASE-NOTES RELEASE-NOTES: synced 2021-09-28 08:27:24 +02:00
SECURITY.md SECURITY.md: minor rephrase 2020-03-30 08:53:25 +02:00

curl logo

CII Best Practices Coverity passed AppVeyor Build Status Azure DevOps Build Status Cirrus Build Status Backers on Open Collective Sponsors on Open Collective Language Grade: C/C++ Codacy Badge Fuzzing Status

Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. 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.3 man page to learn how!

You can find answers to the most frequent questions we get in the FAQ document.

Study the COPYING file for distribution terms.

Contact

If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list.

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: https://curl.se/support.html

Website

Visit the curl website for the latest news and downloads.

Git

To download the very latest source from the Git server do this:

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

(you'll get a directory named curl created, filled with the source code)

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. Your logo will show up here with a link to your website. [Become a sponsor]