mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 16:17:49 +00:00
55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
import socket, struct
|
|
|
|
# Python socket module does not have this constant
|
|
DIOCNATLOOK = 23
|
|
|
|
class Resolver:
|
|
def original_addr(self, csock):
|
|
"""
|
|
The following sttruct defintions are plucked from the current XNU source, found here:
|
|
|
|
http://www.opensource.apple.com/source/xnu/xnu-1699.26.8/bsd/net/pfvar.h
|
|
|
|
|
|
union pf_state_xport {
|
|
u_int16_t port;
|
|
u_int16_t call_id;
|
|
u_int32_t spi;
|
|
};
|
|
|
|
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;
|
|
|
|
struct pfioc_natlook {
|
|
struct pf_addr saddr;
|
|
struct pf_addr daddr;
|
|
struct pf_addr rsaddr;
|
|
struct pf_addr rdaddr;
|
|
#ifndef NO_APPLE_EXTENSIONS
|
|
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;
|
|
#else
|
|
u_int16_t sport;
|
|
u_int16_t dport;
|
|
u_int16_t rsport;
|
|
u_int16_t rdport;
|
|
sa_family_t af;
|
|
u_int8_t proto;
|
|
u_int8_t direction;
|
|
#endif
|
|
};
|
|
"""
|
|
pass
|