// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SYSTEM_PROXY_CURL_SOCKET_H_
#define SYSTEM_PROXY_CURL_SOCKET_H_

#include <memory>

#include <curl/curl.h>
#include <curl/easy.h>

#include <base/files/scoped_file.h>
#include <chromeos/patchpanel/socket.h>

namespace system_proxy {

// Frees the resources allocated by curl_easy_init.
struct FreeCurlEasyhandle {
  void operator()(CURL* ptr) const { curl_easy_cleanup(ptr); }
};

typedef std::unique_ptr<CURL, FreeCurlEasyhandle> ScopedCurlEasyhandle;

// CurlSocket wraps a socket opened by curl in an patchpanel::Socket object
// with an owned CURL handle.
class CurlSocket : public patchpanel::Socket {
 public:
  CurlSocket(base::ScopedFD fd, ScopedCurlEasyhandle curl_easyhandle);
  CurlSocket(const CurlSocket&) = delete;
  CurlSocket& operator=(const CurlSocket&) = delete;
  ~CurlSocket() override;

 private:
  ScopedCurlEasyhandle curl_easyhandle_;
};
}  // namespace system_proxy

#endif  // SYSTEM_PROXY_CURL_SOCKET_H_
