19 #ifndef LIBREPORT_CURL_H_
20 #define LIBREPORT_CURL_H_
22 #include <curl/curl.h>
28 CURL* xcurl_easy_init();
31 CURLcode curl_easy_perform_with_proxy(CURL *handle,
const char *url);
38 const char *client_cert_path;
39 const char *client_key_path;
40 const char *cert_authority_cert_path;
42 const char *client_ssh_public_keyfile;
43 const char *client_ssh_private_keyfile;
57 char errmsg[CURL_ERROR_SIZE];
62 char *find_header_in_post_state(
post_state_t *state,
const char *str);
65 POST_WANT_HEADERS = (1 << 0),
66 POST_WANT_ERROR_MSG = (1 << 1),
67 POST_WANT_BODY = (1 << 2),
68 POST_WANT_SSL_VERIFY = (1 << 3),
72 POST_DATA_STRING = -1,
73 POST_DATA_FROMFILE = -2,
74 POST_DATA_FROMFILE_PUT = -3,
75 POST_DATA_FROMFILE_AS_FORM_DATA = -4,
76 POST_DATA_STRING_AS_FORM_DATA = -5,
82 const char *content_type,
83 const char **additional_headers,
89 const char *content_type,
90 const char **additional_headers)
92 return post(state, url, content_type, additional_headers,
98 const char *content_type,
99 const char **additional_headers,
102 return post(state, url, content_type, additional_headers,
103 str, POST_DATA_STRING);
108 const char *content_type,
109 const char **additional_headers,
112 return post(state, url, content_type, additional_headers,
113 str, POST_DATA_STRING_AS_FORM_DATA);
118 const char *content_type,
119 const char **additional_headers,
120 const char *filename)
122 return post(state, url, content_type, additional_headers,
123 filename, POST_DATA_FROMFILE);
128 const char *content_type,
129 const char **additional_headers,
130 const char *filename)
132 return post(state, url, content_type, additional_headers,
133 filename, POST_DATA_FROMFILE_AS_FORM_DATA);
137 UPLOAD_FILE_NOFLAGS = 0,
138 UPLOAD_FILE_HANDLE_ACCESS_DENIALS = 1 << 0,
141 char *libreport_upload_file(
const char *url,
const char *filename);
154 const char *filename,