62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
#ifndef UTILS_HPP
|
|
#define UTILS_HPP
|
|
|
|
#include "Arduino.h"
|
|
#include "WString.h"
|
|
|
|
namespace fw
|
|
{
|
|
static const uint8_t IPV4ADDRESS_LENGTH = 16;
|
|
static const uint8_t CREDENTIALS_LENGTH = 32;
|
|
|
|
typedef enum firewall_targets : uint8_t
|
|
{
|
|
TARGET_REJECT = 0,
|
|
TARGET_DROP = 1,
|
|
TARGET_ACCEPT = 2,
|
|
} firewall_target_t;
|
|
|
|
typedef enum firewall_protocols : uint8_t
|
|
{
|
|
PROTOCOL_TCP = 0,
|
|
PROTOCOL_UDP = 1,
|
|
PROTOCOL_ALL = 255,
|
|
} firewall_protocol_t;
|
|
|
|
typedef enum ok : uint8_t
|
|
{
|
|
SUCCESS = 0,
|
|
ERROR = 1,
|
|
NO_ACTION = 2,
|
|
} ok_t;
|
|
|
|
typedef enum auth : uint8_t
|
|
{
|
|
AUTHENTICATED = 0,
|
|
DENIED = 1,
|
|
} auth_t;
|
|
|
|
typedef struct firewall_rules
|
|
{
|
|
uint8_t key;
|
|
char source[IPV4ADDRESS_LENGTH];
|
|
char destination[IPV4ADDRESS_LENGTH];
|
|
firewall_protocol_t protocol;
|
|
firewall_target_t target;
|
|
struct firewall_rules *next;
|
|
} firewall_rule_t;
|
|
|
|
typedef struct credentials
|
|
{
|
|
char password[CREDENTIALS_LENGTH];
|
|
char username[CREDENTIALS_LENGTH];
|
|
} credential_t;
|
|
|
|
String protocol_to_string(firewall_protocol_t &protocol);
|
|
firewall_protocol_t string_to_protocol(String &protocol);
|
|
String target_to_string(firewall_target_t &target);
|
|
firewall_target_t string_to_target(String &target);
|
|
void endless_loop();
|
|
}
|
|
|
|
#endif
|