mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-11 17:29:16 +05:00
48 lines
939 B
C
48 lines
939 B
C
|
#pragma once
|
||
|
|
||
|
#include <stdint.h>
|
||
|
#include <netinet/in.h>
|
||
|
|
||
|
// taken from an older apple SDK
|
||
|
// some fields are different from BSDs
|
||
|
|
||
|
#define DIOCNATLOOK _IOWR('D', 23, struct pfioc_natlook)
|
||
|
|
||
|
enum { PF_INOUT, PF_IN, PF_OUT, PF_FWD };
|
||
|
|
||
|
struct pf_addr {
|
||
|
union {
|
||
|
struct in_addr v4;
|
||
|
struct in6_addr v6;
|
||
|
u_int8_t addr8[16];
|
||
|
u_int16_t addr16[8];
|
||
|
u_int32_t addr32[4];
|
||
|
} pfa; /* 128-bit address */
|
||
|
#define v4 pfa.v4
|
||
|
#define v6 pfa.v6
|
||
|
#define addr8 pfa.addr8
|
||
|
#define addr16 pfa.addr16
|
||
|
#define addr32 pfa.addr32
|
||
|
};
|
||
|
|
||
|
union pf_state_xport {
|
||
|
u_int16_t port;
|
||
|
u_int16_t call_id;
|
||
|
u_int32_t spi;
|
||
|
};
|
||
|
|
||
|
struct pfioc_natlook {
|
||
|
struct pf_addr saddr;
|
||
|
struct pf_addr daddr;
|
||
|
struct pf_addr rsaddr;
|
||
|
struct pf_addr rdaddr;
|
||
|
union pf_state_xport sxport;
|
||
|
union pf_state_xport dxport;
|
||
|
union pf_state_xport rsxport;
|
||
|
union pf_state_xport rdxport;
|
||
|
sa_family_t af;
|
||
|
u_int8_t proto;
|
||
|
u_int8_t proto_variant;
|
||
|
u_int8_t direction;
|
||
|
};
|