blob: 9b29843c0ebcf598e5e2cb6f6bf84b7550f51a15 [file] [log] [blame]
// Copyright 2015 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 WEBSERVER_WEBSERVD_FIREWALL_INTERFACE_H_
#define WEBSERVER_WEBSERVD_FIREWALL_INTERFACE_H_
#include <inttypes.h>
#include <string>
#include <base/callback.h>
#include <base/macros.h>
#include <base/memory/ref_counted.h>
#include <brillo/dbus/dbus_object.h>
namespace webservd {
class FirewallInterface {
public:
virtual ~FirewallInterface() = default;
// Wait for the firewall DBus service to be up.
virtual void WaitForServiceAsync(scoped_refptr<dbus::Bus> bus,
const base::Closure& callback) = 0;
// Methods for managing firewall ports.
virtual void PunchTcpHoleAsync(
uint16_t port,
const std::string& interface_name,
const base::Callback<void(bool)>& success_cb,
const base::Callback<void(brillo::Error*)>& failure_cb) = 0;
protected:
FirewallInterface() = default;
private:
DISALLOW_COPY_AND_ASSIGN(FirewallInterface);
};
} // namespace webservd
#endif // WEBSERVER_WEBSERVD_FIREWALL_INTERFACE_H_