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) 1998 - 2020, 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 #include "tool_operate.h" 26 27 typedef enum { 28 VAR_NONE, /* must be the first */ 29 VAR_TOTAL_TIME, 30 VAR_NAMELOOKUP_TIME, 31 VAR_CONNECT_TIME, 32 VAR_APPCONNECT_TIME, 33 VAR_PRETRANSFER_TIME, 34 VAR_STARTTRANSFER_TIME, 35 VAR_SIZE_DOWNLOAD, 36 VAR_SIZE_UPLOAD, 37 VAR_SPEED_DOWNLOAD, 38 VAR_SPEED_UPLOAD, 39 VAR_HTTP_CODE, 40 VAR_HTTP_CODE_PROXY, 41 VAR_HEADER_SIZE, 42 VAR_NUM_HEADERS, 43 VAR_REQUEST_SIZE, 44 VAR_EFFECTIVE_METHOD, 45 VAR_EFFECTIVE_URL, 46 VAR_CONTENT_TYPE, 47 VAR_NUM_CONNECTS, 48 VAR_REDIRECT_TIME, 49 VAR_REDIRECT_COUNT, 50 VAR_FTP_ENTRY_PATH, 51 VAR_REDIRECT_URL, 52 VAR_SSL_VERIFY_RESULT, 53 VAR_PROXY_SSL_VERIFY_RESULT, 54 VAR_EFFECTIVE_FILENAME, 55 VAR_PRIMARY_IP, 56 VAR_PRIMARY_PORT, 57 VAR_LOCAL_IP, 58 VAR_LOCAL_PORT, 59 VAR_HTTP_VERSION, 60 VAR_SCHEME, 61 VAR_STDOUT, 62 VAR_STDERR, 63 VAR_JSON, 64 VAR_NUM_OF_VARS /* must be the last */ 65 } writeoutid; 66 67 typedef enum { 68 JSON_NONE, 69 JSON_STRING, 70 JSON_LONG, 71 JSON_OFFSET, 72 JSON_TIME, 73 JSON_VERSION, 74 JSON_FILENAME 75 } jsontype; 76 77 struct writeoutvar { 78 const char *name; 79 writeoutid id; 80 int is_ctrl; 81 CURLINFO cinfo; 82 jsontype jsontype; 83 }; 84 85 void ourWriteOut(CURL *curl, struct per_transfer *per, const char *writeinfo); 86 87 #endif /* HEADER_CURL_TOOL_WRITEOUT_H */ 88