aboutgitcodebugslistschat
path: root/fwd.h
diff options
context:
space:
mode:
Diffstat (limited to 'fwd.h')
-rw-r--r--fwd.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/fwd.h b/fwd.h
index 23281d9..0458a3c 100644
--- a/fwd.h
+++ b/fwd.h
@@ -7,10 +7,17 @@
#ifndef FWD_H
#define FWD_H
+union inany_addr;
+struct flowside;
+
/* Number of ports for both TCP and UDP */
#define NUM_PORTS (1U << 16)
+void fwd_probe_ephemeral(void);
+bool fwd_port_is_ephemeral(in_port_t port);
+
enum fwd_ports_mode {
+ FWD_UNSET = 0,
FWD_SPEC = 1,
FWD_NONE,
FWD_AUTO,
@@ -41,4 +48,13 @@ void fwd_scan_ports_udp(struct fwd_ports *fwd, const struct fwd_ports *rev,
const struct fwd_ports *tcp_rev);
void fwd_scan_ports_init(struct ctx *c);
+bool nat_inbound(const struct ctx *c, const union inany_addr *addr,
+ union inany_addr *translated);
+uint8_t fwd_nat_from_tap(const struct ctx *c, uint8_t proto,
+ const struct flowside *ini, struct flowside *tgt);
+uint8_t fwd_nat_from_splice(const struct ctx *c, uint8_t proto,
+ const struct flowside *ini, struct flowside *tgt);
+uint8_t fwd_nat_from_host(const struct ctx *c, uint8_t proto,
+ const struct flowside *ini, struct flowside *tgt);
+
#endif /* FWD_H */