]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmdline-opts/interface.md: expand the documentation
authorDaniel Stenberg <daniel@haxx.se>
Tue, 4 Jun 2024 22:06:28 +0000 (00:06 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 5 Jun 2024 06:36:34 +0000 (08:36 +0200)
Explain the syntax it supports.

Closes #13882

.github/scripts/spellcheck.words
docs/cmdline-opts/interface.md
src/tool_listhelp.c

index 9d96c35782d7c4532c6a90b661ae2f3cf8753f87..87b010ad7beb0fc8a8f94352febebbcfc22c22cf 100644 (file)
@@ -119,10 +119,10 @@ CMake
 cmake
 CMake's
 cmake's
-CNAME
-CNAMEs
 CMakeLists
 CNA
+CNAME
+CNAMEs
 CodeQL
 codeql
 CODESET
@@ -209,9 +209,9 @@ EBCDIC
 ECC
 ECDHE
 ECH
-ecl
 ECHConfig
 ECHConfigList
+ecl
 ECONNREFUSED
 eCOS
 EFnet
@@ -358,6 +358,7 @@ ifdef
 ifdefed
 Ifdefs
 ifdefs
+ifhost
 IIS
 ILE
 Illumos
index c938fd2717b6c7cd4f11ac22716f33070b99868f..539e39272b0368419eaba0e41014037529a26bd2 100644 (file)
@@ -3,7 +3,7 @@ c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
 SPDX-License-Identifier: curl
 Long: interface
 Arg: <name>
-Help: Use network INTERFACE (or address)
+Help: Use network interface
 Category: connection
 Added: 7.3
 Multi: single
@@ -11,15 +11,41 @@ See-also:
   - dns-interface
 Example:
   - --interface eth0 $URL
+  - --interface "host!10.0.0.1" $URL
+  - --interface "if!enp3s0" $URL
 ---
 
 # `--interface`
 
-Perform an operation using a specified interface. You can enter interface
-name, IP address or hostname. An example could look like:
+Perform the operation using a specified interface. You can enter interface
+name, IP address or hostname. If you prefer to be specific, you can use the
+following special syntax:
 
-    curl --interface eth0:1 https://www.example.com/
+## if!<name>
 
-On Linux it can be used to specify a **VRF**, but the binary needs to either
-have **CAP_NET_RAW** or to be run as root. More information about Linux
-**VRF**: https://www.kernel.org/doc/Documentation/networking/vrf.txt
+Interface name. If the provided name does not match an existing interface,
+curl returns with error 45.
+
+## host!<name>
+
+IP address or hostname.
+
+## ifhost!<interface>!<host>
+
+Interface name and IP address or hostname. This syntax requires libcurl 8.9.0
+or later.
+
+If the provided name does not match an existing interface, curl returns with
+error 45.
+
+##
+
+curl does not support using network interface names for this option on
+Windows.
+
+That name resolve operation if a hostname is provided does **not** use
+DNS-over-HTTPS even if --doh-url is set.
+
+On Linux this option can be used to specify a **VRF** (Virtual Routing and
+Forwarding) device, but the binary then needs to either have the
+**CAP_NET_RAW** capability set or to be run as root.
index 8429322045fa79fc96db3f39aed20accc01e57d9..593ae031af41af0dc93af048a0039127834ba8d3 100644 (file)
@@ -304,7 +304,7 @@ const struct helptxt helptext[] = {
    "Allow insecure server connections",
    CURLHELP_TLS | CURLHELP_SFTP | CURLHELP_SCP},
   {"    --interface <name>",
-   "Use network INTERFACE (or address)",
+   "Use network interface",
    CURLHELP_CONNECTION},
   {"    --ipfs-gateway <URL>",
    "Gateway for IPFS",