GNURLMOPT_..._SERVER_BL(3)

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

okay bestie, welcome to GNURLMOPT_..._SERVER_BL(3) from the curl_multi_setopt options manual β€” this is the CURLMOPT_PIPELINING_SERVER_BL page, aka the pipelining server block list, and we're gonna get into it πŸ’…βœ¨

🌸 NAME 🌸

CURLMOPT_PIPELINING_SERVER_BL β€” pipelining server block list. No cap, that's the whole name.

πŸ¦‹ SYNOPSIS πŸ¦‹

#include <gnurl/curl.h>

CURLMcode curl_multi_setopt(CURLM *handle,
CURLMOPT_PIPELINING_SERVER_BL, char **servers);

πŸ’– DESCRIPTION πŸ’–

okay so real talk: no function since pipelining was removed in 7.62.0 😭. That's the tea. But here's what the option is about anyway:

You pass a servers array of char *, ending with a NULL entry. This is a list of server types prefixes (in the Server: HTTP header) that are blocked from pipelining β€” i.e. server types that are known to not support HTTP pipelining. The array is copied by libcurl. 🫢

Note that the comparison matches if the Server: header begins with the string in the block list, i.e. "Server: Ninja 1.2.3" and "Server: Ninja 1.4.0" can both be blocked by having "Ninja" in the list. iykyk πŸ‘‘

Pass a NULL pointer to clear the block list. periodt.

πŸŽ€ DEFAULT πŸŽ€

The default value is NULL, which means that there is no block list. literally no list, no drama 🌈.

🧚 PROTOCOLS 🧚

This section is blank on the original page β€” no protocols listed, no extra lore. 🫢

✨ EXAMPLE ✨

char *server_block_list[] =
{
  "Microsoft-IIS/6.0",
  "nginx/0.8.54",
  NULL
};

curl_multi_setopt(m, CURLMOPT_PIPELINING_SERVER_BL, server_block_list);

πŸ’œ AVAILABILITY πŸ’œ

Added in 7.30.0 β€” vintage but still iconic ⭐.

πŸ‘‘ RETURN VALUE πŸ‘‘

Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. That's it, that's the vibe check πŸ’….

πŸ”₯ SEE ALSO πŸ”₯

mwah πŸ’‹ β€” this page is sourced from libcurl 7.39.0 and dated 4 Nov 2014. byeee πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from