GNURLOPT_DEFAULT_PROTOCOL(3)

πŸ“¦ version 7.72.0, in nixos 26.05, nixpkgs unstable

✨ NAME ✨

Okay bestie, welcome to GNURLOPT_DEFAULT_PROTOCOL(3) β€” the page for CURLOPT_DEFAULT_PROTOCOL, aka the default protocol to use if the URL is missing a scheme name. πŸ’…βœ¨

πŸŽ€ SYNOPSIS πŸŽ€

#include <gnurl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEFAULT_PROTOCOL, char
*protocol);

πŸ’– DESCRIPTION πŸ’–

Bestie, this option tells libcurl to use protocol if the URL is missing a scheme name. 🫢

Use one of these protocol (scheme) names:

dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps,
pop3, pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp

An unknown or unsupported protocol causes error CURLE_UNSUPPORTED_PROTOCOL when libcurl parses a schemeless URL. Parsing happens when curl_easy_perform(3) or curl_multi_perform(3) is called. The protocols supported by libcurl will vary depending on how it was built. Use curl_version_info(3) if you need a list of protocol names supported by the build of libcurl that you are using. πŸ“‹

This option does not change the default proxy protocol (http). Nope, proxy stays http. πŸ™ˆ

Without this option libcurl would make a guess based on the host, see CURLOPT_URL(3) for details. πŸ”

The application does not have to keep the string around after setting this option. πŸŽ€

🌈 DEFAULT 🌈

NULL (make a guess based on the host) β€” that's the default, bestie. No stress. πŸ’œ

πŸ¦‹ PROTOCOLS πŸ¦‹

All β€” yes bestie, all of them. ✨

πŸ”₯ EXAMPLE πŸ”₯

Here's the exact example, no cap:

       curl = curl_easy_init();
       if(curl) {
         /* set a URL without a scheme */
         curl_easy_setopt(curl, CURLOPT_URL, "example.com");

         /* set the default protocol (scheme) for schemeless URLs */
         curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");

         /* Perform the request */
         curl_easy_perform(curl);
       }

⭐ AVAILABILITY ⭐

Added in 7.45.0 β€” a classic. ⭐

πŸ‘‘ RETURN VALUE πŸ‘‘

  • CURLE_OK β€” if the option is supported. Slay. πŸ’–
  • CURLE_OUT_OF_MEMORY β€” if there was insufficient heap space. 😭
  • CURLE_UNKNOWN_OPTION β€” if the option is not supported. πŸ’€

🫢 SEE ALSO 🫢

Mwah πŸ’‹ β€” source/version libcurl 7.45.0, dated 18 Aug 2015, footer tag GNURLOPT_D...LT_PROTOCOL(3). Bye bestie! πŸŽ€

πŸ“¦ where this page comes from