From 9050328d9451169246bfa5a6a30e346e2784426c Mon Sep 17 00:00:00 2001 From: James Fuller Date: Mon, 19 Jun 2023 11:06:57 +0200 Subject: [PATCH] example/maxconnects: set maxconnect example Closes #11343 --- docs/examples/Makefile.inc | 1 + docs/examples/maxconnects.c | 66 +++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 docs/examples/maxconnects.c diff --git a/docs/examples/Makefile.inc b/docs/examples/Makefile.inc index e9afb8b507eeb9..68313659f8ddee 100644 --- a/docs/examples/Makefile.inc +++ b/docs/examples/Makefile.inc @@ -77,6 +77,7 @@ check_PROGRAMS = \ imap-store \ imap-tls \ ipv6 \ + maxconnects \ multi-app \ multi-debugcallback \ multi-double \ diff --git a/docs/examples/maxconnects.c b/docs/examples/maxconnects.c new file mode 100644 index 00000000000000..84fefd7bc867e4 --- /dev/null +++ b/docs/examples/maxconnects.c @@ -0,0 +1,66 @@ +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) James Fuller, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ +/* + * Set maximum number of persistent connections to 1. + * + */ +#include +#include + +int main(void) +{ + CURL *curl; + CURLcode res; + + curl = curl_easy_init(); + if(curl) { + const char *urls[] = { "https://example.com", + "https://curl.se", + "https://www.example/", + NULL /* end of list */ + }; + int i = 0; + + /* Change the maximum number of persistent connection */ + curl_easy_setopt(curl, CURLOPT_MAXCONNECTS, 1L); + + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); + + /* loop over the URLs */ + while(urls[i]) { + curl_easy_setopt(curl, CURLOPT_URL, urls[i]); + + /* Perform the request, res will get the return code */ + res = curl_easy_perform(curl); + /* Check for errors */ + if(res != CURLE_OK) + fprintf(stderr, "curl_easy_perform() failed: %s\n", + curl_easy_strerror(res)); + i++; + } + /* always cleanup */ + curl_easy_cleanup(curl); + } + return 0; +}