|
Monero
|
#include <stdio.h>#include <stddef.h>#include <stdlib.h>#include <string.h>#include <syslog.h>#include <errno.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <netinet/ip.h>#include <netinet/tcp.h>#include <arpa/inet.h>#include <dlfcn.h>#include <net/if.h>#include <linux/version.h>#include <linux/netfilter.h>#include <linux/netfilter_ipv4.h>#include <linux/netfilter/nfnetlink.h>#include <linux/netfilter/nf_tables.h>#include <libmnl/libmnl.h>#include <libnftnl/table.h>#include <libnftnl/chain.h>#include <libnftnl/rule.h>#include <libnftnl/expr.h>#include "tiny_nf_nat.h"#include "config.h"#include "../macros.h"#include "../commonrdr.h"#include "nftnlrdr.h"#include "nftnlrdr_misc.h"
Classes | |
| struct | timestamp_entry |
Macros | |
| #define | d_printf(x) |
| #define | NAT_CHAIN_TYPE "nat" |
| #define | FILTER_CHAIN_TYPE "filter" |
Functions | |
| int | init_redirect (void) |
| void | shutdown_redirect (void) |
| int | set_rdr_name (rdr_name_type param, const char *string) |
| static unsigned int | get_timestamp (unsigned short eport, int proto) |
| static void | remove_timestamp_entry (unsigned short eport, int proto) |
| static void | add_timestamp_entry (unsigned short eport, int proto, unsigned timestamp) |
| int | add_redirect_rule2 (const char *ifname, const char *rhost, unsigned short eport, const char *iaddr, unsigned short iport, int proto, const char *desc, unsigned int timestamp) |
| int | add_peer_redirect_rule2 (const char *ifname, const char *rhost, unsigned short rport, const char *eaddr, unsigned short eport, const char *iaddr, unsigned short iport, int proto, const char *desc, unsigned int timestamp) |
| int | add_filter_rule2 (const char *ifname, const char *rhost, const char *iaddr, unsigned short eport, unsigned short iport, int proto, const char *desc) |
| int | add_peer_dscp_rule2 (const char *ifname, const char *rhost, unsigned short rport, unsigned char dscp, const char *iaddr, unsigned short iport, int proto, const char *desc, unsigned int timestamp) |
| int | delete_filter_rule (const char *ifname, unsigned short port, int proto) |
| int | delete_redirect_and_filter_rules (unsigned short eport, int proto) |
| int | get_peer_rule_by_index (int index, char *ifname, unsigned short *eport, char *iaddr, int iaddrlen, unsigned short *iport, int *proto, char *desc, int desclen, char *rhost, int rhostlen, unsigned short *rport, unsigned int *timestamp, u_int64_t *packets, u_int64_t *bytes) |
| int | get_redirect_rule (const char *ifname, unsigned short eport, int proto, char *iaddr, int iaddrlen, unsigned short *iport, char *desc, int desclen, char *rhost, int rhostlen, unsigned int *timestamp, u_int64_t *packets, u_int64_t *bytes) |
| int | get_redirect_rule_count (const char *ifname) |
| int | get_redirect_rule_by_index (int index, char *ifname, unsigned short *eport, char *iaddr, int iaddrlen, unsigned short *iport, int *proto, char *desc, int desclen, char *rhost, int rhostlen, unsigned int *timestamp, u_int64_t *packets, u_int64_t *bytes) |
| int | get_nat_redirect_rule (const char *nat_chain_name, const char *ifname, unsigned short eport, int proto, char *iaddr, int iaddrlen, unsigned short *iport, char *desc, int desclen, char *rhost, int rhostlen, unsigned int *timestamp, u_int64_t *packets, u_int64_t *bytes) |
| unsigned short * | get_portmappings_in_range (unsigned short startport, unsigned short endport, int proto, unsigned int *number) |
| int | update_portmapping_desc_timestamp (const char *ifname, unsigned short eport, int proto, const char *desc, unsigned int timestamp) |
| int | update_portmapping (const char *ifname, unsigned short eport, int proto, unsigned short iport, const char *desc, unsigned int timestamp) |
Variables | |
| static struct timestamp_entry * | timestamp_list = NULL |
| #define d_printf | ( | x | ) |
| #define FILTER_CHAIN_TYPE "filter" |
| #define NAT_CHAIN_TYPE "nat" |
| int add_filter_rule2 | ( | const char * | ifname, |
| const char * | rhost, | ||
| const char * | iaddr, | ||
| unsigned short | eport, | ||
| unsigned short | iport, | ||
| int | proto, | ||
| const char * | desc ) |
| int add_peer_dscp_rule2 | ( | const char * | ifname, |
| const char * | rhost, | ||
| unsigned short | rport, | ||
| unsigned char | dscp, | ||
| const char * | iaddr, | ||
| unsigned short | iport, | ||
| int | proto, | ||
| const char * | desc, | ||
| unsigned int | timestamp ) |
| int add_peer_redirect_rule2 | ( | const char * | ifname, |
| const char * | rhost, | ||
| unsigned short | rport, | ||
| const char * | eaddr, | ||
| unsigned short | eport, | ||
| const char * | iaddr, | ||
| unsigned short | iport, | ||
| int | proto, | ||
| const char * | desc, | ||
| unsigned int | timestamp ) |
| int add_redirect_rule2 | ( | const char * | ifname, |
| const char * | rhost, | ||
| unsigned short | eport, | ||
| const char * | iaddr, | ||
| unsigned short | iport, | ||
| int | proto, | ||
| const char * | desc, | ||
| unsigned int | timestamp ) |
|
static |
| int delete_filter_rule | ( | const char * | ifname, |
| unsigned short | port, | ||
| int | proto ) |
| int delete_redirect_and_filter_rules | ( | unsigned short | eport, |
| int | proto ) |
| int get_nat_redirect_rule | ( | const char * | nat_chain_name, |
| const char * | ifname, | ||
| unsigned short | eport, | ||
| int | proto, | ||
| char * | iaddr, | ||
| int | iaddrlen, | ||
| unsigned short * | iport, | ||
| char * | desc, | ||
| int | desclen, | ||
| char * | rhost, | ||
| int | rhostlen, | ||
| unsigned int * | timestamp, | ||
| u_int64_t * | packets, | ||
| u_int64_t * | bytes ) |
| int get_peer_rule_by_index | ( | int | index, |
| char * | ifname, | ||
| unsigned short * | eport, | ||
| char * | iaddr, | ||
| int | iaddrlen, | ||
| unsigned short * | iport, | ||
| int * | proto, | ||
| char * | desc, | ||
| int | desclen, | ||
| char * | rhost, | ||
| int | rhostlen, | ||
| unsigned short * | rport, | ||
| unsigned int * | timestamp, | ||
| u_int64_t * | packets, | ||
| u_int64_t * | bytes ) |
| unsigned short * get_portmappings_in_range | ( | unsigned short | startport, |
| unsigned short | endport, | ||
| int | proto, | ||
| unsigned int * | number ) |
| int get_redirect_rule | ( | const char * | ifname, |
| unsigned short | eport, | ||
| int | proto, | ||
| char * | iaddr, | ||
| int | iaddrlen, | ||
| unsigned short * | iport, | ||
| char * | desc, | ||
| int | desclen, | ||
| char * | rhost, | ||
| int | rhostlen, | ||
| unsigned int * | timestamp, | ||
| u_int64_t * | packets, | ||
| u_int64_t * | bytes ) |
| int get_redirect_rule_by_index | ( | int | index, |
| char * | ifname, | ||
| unsigned short * | eport, | ||
| char * | iaddr, | ||
| int | iaddrlen, | ||
| unsigned short * | iport, | ||
| int * | proto, | ||
| char * | desc, | ||
| int | desclen, | ||
| char * | rhost, | ||
| int | rhostlen, | ||
| unsigned int * | timestamp, | ||
| u_int64_t * | packets, | ||
| u_int64_t * | bytes ) |
| int get_redirect_rule_count | ( | const char * | ifname | ) |
|
static |
| int init_redirect | ( | void | ) |
|
static |
| int set_rdr_name | ( | rdr_name_type | param, |
| const char * | string ) |
used by the core to override default chain names if specified in config file
| param | which string to set |
| string | the new name to use. Do not dispose after setting (i.e. use strdup if not static). |
| void shutdown_redirect | ( | void | ) |
| int update_portmapping | ( | const char * | ifname, |
| unsigned short | eport, | ||
| int | proto, | ||
| unsigned short | iport, | ||
| const char * | desc, | ||
| unsigned int | timestamp ) |
| int update_portmapping_desc_timestamp | ( | const char * | ifname, |
| unsigned short | eport, | ||
| int | proto, | ||
| const char * | desc, | ||
| unsigned int | timestamp ) |
|
static |