comparison mupdf-source/thirdparty/curl/src/tool_setopt.h @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 #ifndef HEADER_CURL_TOOL_SETOPT_H
2 #define HEADER_CURL_TOOL_SETOPT_H
3 /***************************************************************************
4 * _ _ ____ _
5 * Project ___| | | | _ \| |
6 * / __| | | | |_) | |
7 * | (__| |_| | _ <| |___
8 * \___|\___/|_| \_\_____|
9 *
10 * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
11 *
12 * This software is licensed as described in the file COPYING, which
13 * you should have received as part of this distribution. The terms
14 * are also available at https://curl.haxx.se/docs/copyright.html.
15 *
16 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17 * copies of the Software, and permit persons to whom the Software is
18 * furnished to do so, under the terms of the COPYING file.
19 *
20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21 * KIND, either express or implied.
22 *
23 ***************************************************************************/
24 #include "tool_setup.h"
25
26 #include "tool_formparse.h"
27
28 /*
29 * Macros used in operate()
30 */
31
32 #define SETOPT_CHECK(v,opt) do { \
33 if(!tool_setopt_skip(opt)) { \
34 result = (v); \
35 if(result) \
36 goto show_error; \
37 } \
38 } WHILE_FALSE
39
40 /* allow removed features to simulate success: */
41 bool tool_setopt_skip(CURLoption tag);
42
43 #ifndef CURL_DISABLE_LIBCURL_OPTION
44
45 /* Associate symbolic names with option values */
46 typedef struct {
47 const char *name;
48 long value;
49 } NameValue;
50
51 typedef struct {
52 const char *name;
53 unsigned long value;
54 } NameValueUnsigned;
55
56 extern const NameValue setopt_nv_CURLPROXY[];
57 extern const NameValue setopt_nv_CURL_SOCKS_PROXY[];
58 extern const NameValue setopt_nv_CURL_HTTP_VERSION[];
59 extern const NameValue setopt_nv_CURL_SSLVERSION[];
60 extern const NameValue setopt_nv_CURL_TIMECOND[];
61 extern const NameValue setopt_nv_CURLFTPSSL_CCC[];
62 extern const NameValue setopt_nv_CURLUSESSL[];
63 extern const NameValueUnsigned setopt_nv_CURLSSLOPT[];
64 extern const NameValue setopt_nv_CURL_NETRC[];
65 extern const NameValue setopt_nv_CURLPROTO[];
66 extern const NameValueUnsigned setopt_nv_CURLAUTH[];
67
68 /* Map options to NameValue sets */
69 #define setopt_nv_CURLOPT_HTTP_VERSION setopt_nv_CURL_HTTP_VERSION
70 #define setopt_nv_CURLOPT_HTTPAUTH setopt_nv_CURLAUTH
71 #define setopt_nv_CURLOPT_SSLVERSION setopt_nv_CURL_SSLVERSION
72 #define setopt_nv_CURLOPT_PROXY_SSLVERSION setopt_nv_CURL_SSLVERSION
73 #define setopt_nv_CURLOPT_TIMECONDITION setopt_nv_CURL_TIMECOND
74 #define setopt_nv_CURLOPT_FTP_SSL_CCC setopt_nv_CURLFTPSSL_CCC
75 #define setopt_nv_CURLOPT_USE_SSL setopt_nv_CURLUSESSL
76 #define setopt_nv_CURLOPT_SSL_OPTIONS setopt_nv_CURLSSLOPT
77 #define setopt_nv_CURLOPT_NETRC setopt_nv_CURL_NETRC
78 #define setopt_nv_CURLOPT_PROTOCOLS setopt_nv_CURLPROTO
79 #define setopt_nv_CURLOPT_REDIR_PROTOCOLS setopt_nv_CURLPROTO
80 #define setopt_nv_CURLOPT_PROXYTYPE setopt_nv_CURLPROXY
81 #define setopt_nv_CURLOPT_PROXYAUTH setopt_nv_CURLAUTH
82 #define setopt_nv_CURLOPT_SOCKS5_AUTH setopt_nv_CURLAUTH
83
84 /* Intercept setopt calls for --libcurl */
85
86 CURLcode tool_setopt_enum(CURL *curl, struct GlobalConfig *config,
87 const char *name, CURLoption tag,
88 const NameValue *nv, long lval);
89 CURLcode tool_setopt_flags(CURL *curl, struct GlobalConfig *config,
90 const char *name, CURLoption tag,
91 const NameValue *nv, long lval);
92 CURLcode tool_setopt_bitmask(CURL *curl, struct GlobalConfig *config,
93 const char *name, CURLoption tag,
94 const NameValueUnsigned *nv, long lval);
95 CURLcode tool_setopt_mimepost(CURL *curl, struct GlobalConfig *config,
96 const char *name, CURLoption tag,
97 curl_mime *mimepost);
98 CURLcode tool_setopt_slist(CURL *curl, struct GlobalConfig *config,
99 const char *name, CURLoption tag,
100 struct curl_slist *list);
101 CURLcode tool_setopt(CURL *curl, bool str, struct GlobalConfig *config,
102 const char *name, CURLoption tag, ...);
103
104 #define my_setopt(x,y,z) \
105 SETOPT_CHECK(tool_setopt(x, FALSE, global, #y, y, z), y)
106
107 #define my_setopt_str(x,y,z) \
108 SETOPT_CHECK(tool_setopt(x, TRUE, global, #y, y, z), y)
109
110 #define my_setopt_enum(x,y,z) \
111 SETOPT_CHECK(tool_setopt_enum(x, global, #y, y, setopt_nv_ ## y, z), y)
112
113 #define my_setopt_flags(x,y,z) \
114 SETOPT_CHECK(tool_setopt_flags(x, global, #y, y, setopt_nv_ ## y, z), y)
115
116 #define my_setopt_bitmask(x,y,z) \
117 SETOPT_CHECK(tool_setopt_bitmask(x, global, #y, y, setopt_nv_ ## y, z), y)
118
119 #define my_setopt_mimepost(x,y,z) \
120 SETOPT_CHECK(tool_setopt_mimepost(x, global, #y, y, z), y)
121
122 #define my_setopt_slist(x,y,z) \
123 SETOPT_CHECK(tool_setopt_slist(x, global, #y, y, z), y)
124
125 #define res_setopt(x,y,z) tool_setopt(x, FALSE, global, #y, y, z)
126
127 #define res_setopt_str(x,y,z) tool_setopt(x, TRUE, global, #y, y, z)
128
129 #else /* CURL_DISABLE_LIBCURL_OPTION */
130
131 /* No --libcurl, so pass options directly to library */
132
133 #define my_setopt(x,y,z) \
134 SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
135
136 #define my_setopt_str(x,y,z) \
137 SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
138
139 #define my_setopt_enum(x,y,z) \
140 SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
141
142 #define my_setopt_flags(x,y,z) \
143 SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
144
145 #define my_setopt_bitmask(x,y,z) \
146 SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
147
148 #define my_setopt_mimepost(x,y,z) \
149 SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
150
151 #define my_setopt_slist(x,y,z) \
152 SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
153
154 #define res_setopt(x,y,z) curl_easy_setopt(x,y,z)
155
156 #define res_setopt_str(x,y,z) curl_easy_setopt(x,y,z)
157
158 #endif /* CURL_DISABLE_LIBCURL_OPTION */
159
160 #endif /* HEADER_CURL_TOOL_SETOPT_H */