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