Skip to content

Commit

Permalink
backend: switch over from the hyphenated spelling
Browse files Browse the repository at this point in the history
On popular demand.

Closes #191
  • Loading branch information
bagder committed Mar 26, 2022
1 parent a24c95e commit 17d9359
Show file tree
Hide file tree
Showing 19 changed files with 45 additions and 45 deletions.
4 changes: 2 additions & 2 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@
* [OCSP stapling](usingcurl/tls/stapling.md)
* [Client certificates](usingcurl/tls/clientcert.md)
* [TLS auth](usingcurl/tls/auth.md)
* [TLS back-ends](usingcurl/tls/backends.md)
* [TLS backends](usingcurl/tls/backends.md)
* [SSLKEYLOGFILE](usingcurl/tls/sslkeylogfile.md)
* [Copy as curl](usingcurl/copyas.md)
* [HTTP with curl](http.md)
Expand Down Expand Up @@ -241,7 +241,7 @@
* [Everything is multi](internals/multi.md)
* [State machines](internals/statemachines.md)
* [Protocol handler](internals/handler.md)
* [Back-ends](internals/backends.md)
* [Backends](internals/backends.md)
* [Windows vs Unix](internals/windows-vs-unix.md)
* [Memory debugging](internals/memory-debugging.md)
* [Content Encoding](internals/content-encoding.md)
Expand Down
2 changes: 1 addition & 1 deletion badwords.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
backend
back-end
e-mail
runtime
set-up
Expand Down
2 changes: 1 addition & 1 deletion get/linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ libcurl is then also installed as an individual package.

If you want to build applications against libcurl, you need a development
package installed to get the include headers and some additional
documentation, etc. You can then select a libcurl with the TLS back-end you
documentation, etc. You can then select a libcurl with the TLS backend you
prefer:

apt install libcurl4-openssl-dev
Expand Down
2 changes: 1 addition & 1 deletion get/win-msys2.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Current information about the [`mingw-w64-curl`](https://github.com/msys2/MINGW-

pacman -Sy mingw-w64-x86_64-curl

This package contains both the `curl` command line tool as well as libcurl headers and shared libraries. The default `curl` packages are built with the OpenSSL back-end and hence depend on `mingw-w64-x86_64-openssl`. There are also `mingw-w64-x86_64-curl-gnutls` and `mingw-w64-x86_64-curl-gnutls` packages, refer to the [msys2 website](https://packages.msys2.org/base/mingw-w64-curl) for more details.
This package contains both the `curl` command line tool as well as libcurl headers and shared libraries. The default `curl` packages are built with the OpenSSL backend and hence depend on `mingw-w64-x86_64-openssl`. There are also `mingw-w64-x86_64-curl-gnutls` and `mingw-w64-x86_64-curl-gnutls` packages, refer to the [msys2 website](https://packages.msys2.org/base/mingw-w64-curl) for more details.


Just like on Linux, we can use `pkg-config` to query the flags needed to build against libcurl. Start msys2 using the mingw64 shell (which automatically sets the path to include `/mingw64`) and run:
Expand Down
2 changes: 1 addition & 1 deletion internals.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ library do something new.
* [Everything is multi](internals/multi.md)
* [State machines](internals/statemachines.md)
* [Protocol handler](internals/handler.md)
* [Back-ends](internals/backends.md)
* [Backends](internals/backends.md)
* [Windows vs Unix](internals/windows-vs-unix.md)
* [Memory debugging](internals/memory-debugging.md)
* [Content Encoding](internals/content-encoding.md)
Expand Down
14 changes: 7 additions & 7 deletions internals/backends.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Back-ends
# Backends

A back-end in curl is a **build-time selectable alternative implementation**.
A backend in curl is a **build-time selectable alternative implementation**.

When you build curl, you can select alternative implementations for several
different things. Different providers of the same feature set. You select
which back-end or back-ends (plural) to use when you build curl.
which backend or backends (plural) to use when you build curl.

- Back-ends are selectable and deselectable
- Backends are selectable and deselectable
- Often platform dependent
- Can differ in features
- Can differ in 3rd party licenses
- Can differ in maturity
- The internal APIs are never exposed externally

## Different back-ends
## Different backends

In the libcurl source code, there are internal APIs for providing
functionality. In these different areas there are multiple different providers:
Expand All @@ -26,9 +26,9 @@ functionality. In these different areas there are multiple different providers:
6. HTTP/3
7. HTTP content encoding

## Back-ends visualized
## Backends visualized

![libcurl back-ends](slide-libcurl-backends.jpg)
![libcurl backends](slide-libcurl-backends.jpg)

Applications (in the upper yellow cloud) access libcurl through the public
API. The API is fixed and stable.
Expand Down
2 changes: 1 addition & 1 deletion libcurl/callbacks/sslcontext.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
libcurl offers a special TLS related callback called
`CURLOPT_SSL_CTX_FUNCTION`. This option only works for libcurl powered by
OpenSSL, wolfSSL or mbedTLS and it does nothing if libcurl is built with
another TLS back-end.
another TLS backend.

This callback gets called by libcurl just before the initialization of a TLS
connection after having processed all other TLS related options to give a last
Expand Down
8 changes: 4 additions & 4 deletions libcurl/names.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ only use IPv6 addresses:

curl_easy_setopt(easy, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);

## Name resolver back-ends
## Name resolver backends

libcurl can be built to do name resolves in one out of these three different
ways and depending on which back-end way that is used, it gets a slightly
ways and depending on which backend way that is used, it gets a slightly
different feature set and sometimes modified behavior.

1. The default back-end is invoking the "normal" libc resolver functions in a
1. The default backend is invoking the "normal" libc resolver functions in a
new helper-thread, so that it can still do fine-grained timeouts if wanted and
there will be no blocking calls involved.

Expand All @@ -44,7 +44,7 @@ compatible with the native name resolver functionality.

### DNS over HTTPS

Independently of what resolver back-end that libcurl is built to use, since
Independently of what resolver backend that libcurl is built to use, since
7.62.0 it also provides a way for the user to ask a specific DoH (DNS over
HTTPS) server for the address of a name. This will avoid using the normal,
native resolver method and server and instead asks a dedicated separate one.
Expand Down
4 changes: 2 additions & 2 deletions project/users.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ game consoles.

![different devices, tool, applications and services that all run curl](curl-runs-in-all-your-devices.jpg)

### In website back-ends
### In website backends

The libcurl binding for PHP was one of, if not the, first bindings for libcurl
to really catch on and get used widely. It quickly got adopted as a default
Expand All @@ -73,7 +73,7 @@ Internet (recent numbers indicated that something like a quarter of all sites on
the Internet uses PHP).

A few really high-demand sites are using PHP and are using libcurl in the
back-end. Facebook and Yahoo are two such sites.
backend. Facebook and Yahoo are two such sites.

## Famous users

Expand Down
2 changes: 1 addition & 1 deletion source/build/deps.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ https://c-ares.org/

curl can be built with c-ares to be able to do asynchronous name resolution.
Another option to enable asynchronous name resolution is to build curl with the
threaded name resolver back-end, which will then instead create a separate
threaded name resolver backend, which will then instead create a separate
helper thread for each name resolve. c-ares does it all within the
same thread.

Expand Down
8 changes: 4 additions & 4 deletions source/build/fromsource.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ keep up with or know all possible dependencies for all the libraries it can be
made to build with, so users wanting to build with static libs mostly need to
provide that list of libraries to link with.

### Select TLS back-end
### Select TLS backend

The configure-based build offers the user to select from a wide variety of
different TLS libraries when building. You select them by using the correct
Expand Down Expand Up @@ -142,13 +142,13 @@ this:

You can opt to build with support for **multiple** TLS libraries by specifying
multiple `--with-*` options on the configure command line. Pick which one to
make the default TLS back-end with `--with-default-ssl-backend=[NAME]`. For
make the default TLS backend with `--with-default-ssl-backend=[NAME]`. For
example, build with support for both GnuTLS and OpenSSL and default to
OpenSSL:

./configure --with-openssl --with-gnutls --with-default-ssl-backend=openssl

### Select SSH back-end
### Select SSH backend

The configure-based build offers the user to select from a variety of
different SSH libraries when building. You select them by using the
Expand All @@ -164,7 +164,7 @@ this:

./configure --with-libssh2=/home/user/custom-libssh2

### Select HTTP/3 back-end
### Select HTTP/3 backend

The configure-based build offers the user to select different HTTP/3 libraries
when building. You select them by using the correct command-line options.
Expand Down
2 changes: 1 addition & 1 deletion source/layout.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ source files may contain code that is not used in your particular build.

### lib/vtls

The VTLS sub section within libcurl is the home of all the TLS back-ends
The VTLS sub section within libcurl is the home of all the TLS backends
libcurl can be built to support. The "virtual" TLS internal API is a backend
agnostic API used internally to access TLS and crypto functions without the
main code knowing which specific TLS library is used. This allows the person
Expand Down
4 changes: 2 additions & 2 deletions usingcurl/connections/name.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,9 @@ connect, but in all other ways still assume it is talking to
## Name resolve tricks with c-ares

As should be detailed elsewhere in this book, curl may be built with several
different name resolving back-ends. One of those back-ends is powered by the
different name resolving backends. One of those backends is powered by the
c-ares library and when curl is built to use c-ares, it gets a few extra
superpowers that curl built to use other name resolve back-ends do not get.
superpowers that curl built to use other name resolve backends do not get.
Namely, it gains the ability to more specifically instruct what DNS servers to
use and how that DNS traffic is using the network.

Expand Down
2 changes: 1 addition & 1 deletion usingcurl/tls.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ cryptography and digital signatures.
* [OCSP stapling](tls/stapling.md)
* [Client certificates](tls/clientcert.md)
* [TLS auth](tls/auth.md)
* [TLS back-ends](tls/backends.md)
* [TLS backends](tls/backends.md)
* [SSLKEYLOGFILE](tls/sslkeylogfile.md)
16 changes: 8 additions & 8 deletions usingcurl/tls/backends.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
# TLS back-ends
# TLS backends

When curl is built, it gets told to use a specific TLS library. That TLS
library is the engine that provides curl with the powers to speak TLS over the
wire. We often refer to them as different "back-ends" as they can be seen as
wire. We often refer to them as different "backends" as they can be seen as
different pluggable pieces into the curl machine. curl can be built to be able
to use one or more of these back-ends.
to use one or more of these backends.

Sometimes features and behaviors differ slightly when curl is built with
different TLS back-ends, but the developers work hard on making those
different TLS backends, but the developers work hard on making those
differences as small and unnoticeable as possible.

Showing the curl version information with [curl --version](../version.md) will
always include the TLS library and version in the first line of output.

## Multiple TLS back-ends
## Multiple TLS backends

When curl is built with *multiple* TLS back-ends, it can be told which one to
When curl is built with *multiple* TLS backends, it can be told which one to
use each time it is started. It is always built to use a specific one by
default unless one is asked for.

If you invoke `curl --version` for a curl with multiple back-ends it will
If you invoke `curl --version` for a curl with multiple backends it will
mention `MultiSSL` as a feature in the last line. The first line will then
include all the supported TLS back-ends with the non-default ones within
include all the supported TLS backends with the non-default ones within
parentheses.

To set a specific one to get used, set the environment variable
Expand Down
2 changes: 1 addition & 1 deletion usingcurl/tls/clientcert.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ specify the key file independently with `--key`:
curl --cert mycert:mypassword https://example.com
curl --cert mycert:mypassword --key mykey https://example.com

For some TLS back-ends you can also pass in the key and certificate using
For some TLS backends you can also pass in the key and certificate using
different types:

curl --cert mycert:mypassword --cert-type PEM \
Expand Down
2 changes: 1 addition & 1 deletion usingcurl/tls/pinning.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ can specify one or more hashes like that, separated with semicolons (;).

curl --pinnedpubkey "sha256//83d34tasd3rt…" https://example.com/

This feature is not supported by all TLS back-ends.
This feature is not supported by all TLS backends.
2 changes: 1 addition & 1 deletion usingcurl/tls/stapling.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ Ask for the handshake to use the status request like this:

curl --cert-status https://example.com/

This feature is only supported by the OpenSSL, GnuTLS and NSS back-ends.
This feature is only supported by the OpenSSL, GnuTLS and NSS backends.
10 changes: 5 additions & 5 deletions usingcurl/version.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ released and "blessed" version.
The rest of this line contains names of third party components this build of
curl uses, often with their individual version number next to it with a slash
separator. Like `OpenSSL/1.1.1g` and `nghttp2/1.41.0`. This can for example
tell you which TLS back-ends this curl uses.
tell you which TLS backends this curl uses.

### Line 1: TLS versions

Line 1 may contain one or more TLS libraries. curl can be built to support
more than one TLS library which then makes curl - at start-up - select which
particular back-end to use for this invoke.
particular backend to use for this invoke.

If curl supports more than one TLS library like this, the ones that are *not*
selected by default will be listed within parentheses. Thus, if you do not
specify which back-end to use use (with the `CURL_SSL_BACKEND` environment
specify which backend to use use (with the `CURL_SSL_BACKEND` environment
variable) the one listed without parentheses will be used.

## Line 2: Release-Date
Expand Down Expand Up @@ -85,7 +85,7 @@ Features that can be present there:
- **alt-svc** - Support for the alt-svc: header
- **AsynchDNS** - This curl uses asynchronous name resolves. Asynchronous
name resolves can be done using either the c-ares or the threaded resolver
back-ends.
backends.
- **brotli** - support for automatic brotli compression over HTTP(S)
- **CharConv** - curl was built with support for character set conversions
(like EBCDIC)
Expand All @@ -104,7 +104,7 @@ Features that can be present there:
supported.
- **Metalink** - This curl supports Metalink. In modern curl versions this
option is never available.
- **MultiSSL** - This curl supports multiple TLS back-ends. The first line
- **MultiSSL** - This curl supports multiple TLS backends. The first line
will detail exactly which TLS libraries.
- **NTLM** - NTLM authentication is supported.
- **NTLM_WB** - NTLM authentication is supported.
Expand Down

0 comments on commit 17d9359

Please sign in to comment.