auditor_api_curl_defaults.c (2285B)
1 /* 2 This file is part of TALER 3 Copyright (C) 2014-2018 Taler Systems SA 4 5 TALER is free software; you can redistribute it and/or modify it under the 6 terms of the GNU General Public License as published by the Free Software 7 Foundation; either version 3, or (at your option) any later version. 8 9 TALER is distributed in the hope that it will be useful, but WITHOUT ANY 10 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 11 A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 13 You should have received a copy of the GNU General Public License along with 14 TALER; see the file COPYING. If not, see 15 <http://www.gnu.org/licenses/> 16 */ 17 /** 18 * @file lib/auditor_api_curl_defaults.c 19 * @brief curl easy handle defaults 20 * @author Florian Dold 21 */ 22 #include "taler/taler_curl_lib.h" 23 #include "taler/taler_auditor_service.h" 24 #include "auditor_api_curl_defaults.h" 25 26 /** 27 * Global options for HTTP requests. 28 */ 29 static enum TALER_AUDITOR_GlobalOptions aglobal_options; 30 31 32 void 33 TALER_AUDITOR_setup (enum TALER_AUDITOR_GlobalOptions go) 34 { 35 aglobal_options = go; 36 } 37 38 39 CURL * 40 TALER_AUDITOR_curl_easy_get_ (const char *url) 41 { 42 CURL *eh; 43 struct GNUNET_AsyncScopeSave scope; 44 45 GNUNET_async_scope_get (&scope); 46 47 eh = curl_easy_init (); 48 if (NULL == eh) 49 return NULL; 50 GNUNET_assert (CURLE_OK == 51 curl_easy_setopt (eh, 52 CURLOPT_URL, 53 url)); 54 TALER_curl_set_secure_redirect_policy (eh, 55 url); 56 /* Enable compression (using whatever curl likes), see 57 https://curl.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html */ 58 GNUNET_break (CURLE_OK == 59 curl_easy_setopt (eh, 60 CURLOPT_ACCEPT_ENCODING, 61 "")); 62 GNUNET_assert (CURLE_OK == 63 curl_easy_setopt (eh, 64 CURLOPT_TCP_FASTOPEN, 65 1L)); 66 if (TALER_AUDITOR_GO_FORCE_HTTP1_1 & aglobal_options) 67 GNUNET_assert (CURLE_OK == 68 curl_easy_setopt (eh, 69 CURLOPT_HTTP_VERSION, 70 CURL_HTTP_VERSION_1_1)); 71 return eh; 72 }