upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/main/firewall.h
diff options
context:
space:
mode:
authorYour Name <you@example.com>2026-05-17 16:39:31 +0530
committerYour Name <you@example.com>2026-05-17 16:39:31 +0530
commit0c2c67b463d6a90aaa0bb69bf3c91dba1d9ec3ec (patch)
treeafd9d9bca2d184825ebf7413ec31830e14131030 /main/firewall.h
parent3342c8e7b4f645c75470d3d893d09037a672cfd2 (diff)
feat: per-client NAT filtering via LWIP_HOOK_IP4_CANFORWARD
- Add lwip_tollgate_hooks.h defining LWIP_HOOK_IP4_CANFORWARD macro - Inject hook into lwIP build via CMakeLists.txt ESP_IDF_LWIP_HOOK_FILENAME - Filter forwarded packets by source IP against firewall allowed list - Only filter packets from AP subnet (10.192.45.0/24), allow all others - Fix byte order bug: use network byte order for firewall_is_client_allowed - NAT always enabled, removed global NAT toggle functions - Remove spent-secret tracking from session.c (mint is authority) - Remove unused get_ap_netif() function - Reduce API server stack from 32KB to 16KB (fixes ESP_ERR_HTTPD_TASK) - Add esp_random.h stub for unit tests - All 186 unit tests passing - Verified on hardware: block->pay->allow->revoke->block E2E works
Diffstat (limited to 'main/firewall.h')
-rw-r--r--main/firewall.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/main/firewall.h b/main/firewall.h
index e5d492a..f177eaa 100644
--- a/main/firewall.h
+++ b/main/firewall.h
@@ -6,11 +6,11 @@
6#include <stdbool.h> 6#include <stdbool.h>
7#include <stdint.h> 7#include <stdint.h>
8 8
9struct pbuf;
10
9#define FW_MAX_MAC_LEN 18 11#define FW_MAX_MAC_LEN 18
10 12
11esp_err_t firewall_init(esp_ip4_addr_t ap_ip); 13esp_err_t firewall_init(esp_ip4_addr_t ap_ip);
12void firewall_enable_nat(void);
13void firewall_disable_nat(void);
14void firewall_grant_access(uint32_t client_ip); 14void firewall_grant_access(uint32_t client_ip);
15void firewall_revoke_access(uint32_t client_ip); 15void firewall_revoke_access(uint32_t client_ip);
16void firewall_revoke_all(void); 16void firewall_revoke_all(void);
@@ -20,4 +20,6 @@ int firewall_client_count(void);
20 20
21esp_err_t firewall_get_mac_for_ip(uint32_t client_ip, char *mac_out, size_t mac_out_size); 21esp_err_t firewall_get_mac_for_ip(uint32_t client_ip, char *mac_out, size_t mac_out_size);
22 22
23int tollgate_ip4_canforward_filter(struct pbuf *p, uint32_t dest_addr_hostorder);
24
23#endif 25#endif