Files
my-os-project2/kernel/picotcp/test/examples/natbox.c
2025-10-29 14:29:06 +01:00

32 lines
891 B
C

#include "utils.h"
#include <pico_ipv4.h>
#include <pico_nat.h>
/*** START NATBOX ***/
void app_natbox(char *arg)
{
char *dest = NULL;
struct pico_ip4 ipdst, pub_addr, priv_addr;
struct pico_ipv4_link *link;
cpy_arg(&dest, arg);
if (!dest) {
fprintf(stderr, "natbox needs the following format: natbox:dst_addr\n");
exit(255);
}
pico_string_to_ipv4(dest, &ipdst.addr);
link = pico_ipv4_link_get(&ipdst);
if (!link) {
fprintf(stderr, "natbox: Destination not found.\n");
exit(255);
}
pico_ipv4_nat_enable(link);
pico_string_to_ipv4("10.50.0.10", &pub_addr.addr);
pico_string_to_ipv4("10.40.0.08", &priv_addr.addr);
pico_ipv4_port_forward(pub_addr, short_be(5555), priv_addr, short_be(6667), PICO_PROTO_UDP, PICO_NAT_PORT_FORWARD_ADD);
fprintf(stderr, "natbox: started.\n");
}
/*** END NATBOX ***/