blob: c7cdb9771c7bb0fa4fbfab7bc18c3a4e97d04115 [file] [log] [blame]
xf.li6c8fc1e2023-08-12 00:11:09 -07001#ifndef HEADER_CURL_TOOL_WRITEOUT_H
2#define HEADER_CURL_TOOL_WRITEOUT_H
3/***************************************************************************
4 * _ _ ____ _
5 * Project ___| | | | _ \| |
6 * / __| | | | |_) | |
7 * | (__| |_| | _ <| |___
8 * \___|\___/|_| \_\_____|
9 *
10 * Copyright (C) 1998 - 2022, 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.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 * SPDX-License-Identifier: curl
24 *
25 ***************************************************************************/
26#include "tool_setup.h"
27#include "tool_operate.h"
28
29typedef enum {
30 VAR_NONE, /* must be the first */
31 VAR_APPCONNECT_TIME,
32 VAR_CONNECT_TIME,
33 VAR_CONTENT_TYPE,
34 VAR_EFFECTIVE_FILENAME,
35 VAR_EFFECTIVE_METHOD,
36 VAR_EFFECTIVE_URL,
37 VAR_ERRORMSG,
38 VAR_EXITCODE,
39 VAR_FTP_ENTRY_PATH,
40 VAR_HEADER_JSON,
41 VAR_HEADER_SIZE,
42 VAR_HTTP_CODE,
43 VAR_HTTP_CODE_PROXY,
44 VAR_HTTP_VERSION,
45 VAR_INPUT_URL,
46 VAR_JSON,
47 VAR_LOCAL_IP,
48 VAR_LOCAL_PORT,
49 VAR_NAMELOOKUP_TIME,
50 VAR_NUM_CONNECTS,
51 VAR_NUM_HEADERS,
52 VAR_ONERROR,
53 VAR_PRETRANSFER_TIME,
54 VAR_PRIMARY_IP,
55 VAR_PRIMARY_PORT,
56 VAR_PROXY_SSL_VERIFY_RESULT,
57 VAR_REDIRECT_COUNT,
58 VAR_REDIRECT_TIME,
59 VAR_REDIRECT_URL,
60 VAR_REFERER,
61 VAR_REQUEST_SIZE,
62 VAR_SCHEME,
63 VAR_SIZE_DOWNLOAD,
64 VAR_SIZE_UPLOAD,
65 VAR_SPEED_DOWNLOAD,
66 VAR_SPEED_UPLOAD,
67 VAR_SSL_VERIFY_RESULT,
68 VAR_STARTTRANSFER_TIME,
69 VAR_STDERR,
70 VAR_STDOUT,
71 VAR_TOTAL_TIME,
72 VAR_URLNUM,
73 VAR_NUM_OF_VARS /* must be the last */
74} writeoutid;
75
76struct writeoutvar {
77 const char *name;
78 writeoutid id;
79 CURLINFO ci;
80 int (*writefunc)(FILE *stream, const struct writeoutvar *wovar,
81 struct per_transfer *per, CURLcode per_result,
82 bool use_json);
83};
84
85void ourWriteOut(const char *writeinfo, struct per_transfer *per,
86 CURLcode per_result);
87
88#endif /* HEADER_CURL_TOOL_WRITEOUT_H */