text: /*****************************************************************************
   *
   * GARGOYLE_PSCAND: Gargoyle - Protection for Linux
   *
   * controller code for handling ip addr actions
   *
   * Copyright (c) 2017 - 2018, Bayshore Networks, Inc.
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without modification, are permitted provided that
   * the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
   * following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
   * following disclaimer in the documentation and/or other materials provided with the distribution.
   *
   * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote
   * products derived from this software without specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   *****************************************************************************/
  #ifndef _IPADDRCONTROLLER_H__
  #define _IPADDRCONTROLLER_H__
  
  
  #include <string>
  #include "data_base.h"
  
  
  int add_ip_to_hosts_table(const std::string &, const std::string &, bool, DataBase *);
  int add_to_hosts_port_table(const std::string &, int, int, const std::string &, bool, DataBase *);
  
  int do_block_actions(const std::string &,
                      int,
                      const std::string &,
                      size_t,
                      bool,
                      void *,
                      bool,
                      const std::string &,
  					DataBase *
                      );
  int do_host_remove_actions(const std::string &, int, const std::string &, int, int, DataBase *);
  
  void do_report_action_output(const std::string &, int, int, int, int);
  void do_block_action_output(const std::string &, int, int, const std::string &, int);
  void do_unblock_action_output(const std::string &, int, int);
  void do_remove_action_output(const std::string &, int, int, int, int);
  
  bool is_white_listed(const std::string &, void *);
  bool is_black_listed(const std::string &, void *);
  int do_black_list_actions(const std::string &, void *, size_t, int);
  
  
  #endif // _IPADDRCONTROLLER_H__
  