curl-fuzzer C++ reference
Loading...
Searching...
No Matches
curl_raii.h
Go to the documentation of this file.
1/*
2 * Copyright (C) Max Dymond, <cmeister2@gmail.com>, et al.
3 *
4 * SPDX-License-Identifier: curl
5 */
6
9
10#ifndef PROTO_FUZZER_CURL_RAII_H_
11#define PROTO_FUZZER_CURL_RAII_H_
12
13#include <curl/curl.h>
14
15#include <memory>
16
17namespace proto_fuzzer {
18
23 void operator()(CURL* easy) const noexcept {
24 if (easy != nullptr) {
25 curl_easy_cleanup(easy);
26 }
27 }
28};
29
34 void operator()(CURLM* multi) const noexcept {
35 if (multi != nullptr) {
36 (void)curl_multi_cleanup(multi);
37 }
38 }
39};
40
45 void operator()(curl_slist* list) const noexcept { curl_slist_free_all(list); }
46};
47
52 void operator()(curl_mime* mime) const noexcept { curl_mime_free(mime); }
53};
54
56using CurlEasyPtr = std::unique_ptr<CURL, CurlEasyDeleter>;
58using CurlMultiPtr = std::unique_ptr<CURLM, CurlMultiDeleter>;
60using CurlSlistPtr = std::unique_ptr<curl_slist, CurlSlistDeleter>;
62using CurlMimePtr = std::unique_ptr<curl_mime, CurlMimeDeleter>;
63
64} // namespace proto_fuzzer
65
66#endif // PROTO_FUZZER_CURL_RAII_H_
std::unique_ptr< CURLM, CurlMultiDeleter > CurlMultiPtr
Unique ownership of a CURL multi handle.
Definition curl_raii.h:58
std::unique_ptr< curl_slist, CurlSlistDeleter > CurlSlistPtr
Unique ownership of a caller-owned curl_slist.
Definition curl_raii.h:60
std::unique_ptr< CURL, CurlEasyDeleter > CurlEasyPtr
Unique ownership of a CURL easy handle.
Definition curl_raii.h:56
std::unique_ptr< curl_mime, CurlMimeDeleter > CurlMimePtr
Unique ownership of a caller-owned curl_mime tree.
Definition curl_raii.h:62
Destroy an independently owned easy handle.
Definition curl_raii.h:20
void operator()(CURL *easy) const noexcept
Release an easy handle through libcurl's matching cleanup API.
Definition curl_raii.h:23
Destroy a caller-owned MIME tree, including transferred children.
Definition curl_raii.h:49
void operator()(curl_mime *mime) const noexcept
Release a complete MIME tree through libcurl's matching cleanup API.
Definition curl_raii.h:52
Destroy an independently owned multi handle.
Definition curl_raii.h:31
void operator()(CURLM *multi) const noexcept
Release a multi handle through libcurl's matching cleanup API.
Definition curl_raii.h:34
Destroy a caller-owned curl_slist.
Definition curl_raii.h:42
void operator()(curl_slist *list) const noexcept
Release a complete caller-owned linked list.
Definition curl_raii.h:45