1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /* Copyright (c) 2010, Jacob Appelbaum, Steven J. Murdoch.
- * Copyright (c) 2010-2015, The Tor Project, Inc. */
- /* See LICENSE for licensing information */
- /**
- * \file tor-fw-helper-natpmp.h
- **/
- #ifdef NAT_PMP
- #ifndef TOR_TOR_FW_HELPER_NATPMP_H
- #define TOR_TOR_FW_HELPER_NATPMP_H
- #include <natpmp.h>
- /** This is the default NAT-PMP lease time in seconds. */
- #define NATPMP_DEFAULT_LEASE 3600
- /** NAT-PMP has many codes for success; this is one of them. */
- #define NATPMP_SUCCESS 0
- /** This is our NAT-PMP meta structure - it holds our request data, responses,
- * various NAT-PMP parameters, and of course the status of the motion in the
- * NAT-PMP ocean. */
- typedef struct natpmp_state_t {
- natpmp_t natpmp;
- natpmpresp_t response;
- int fetch_public_ip;
- int status;
- int init; /**< Have we been initialized? */
- int protocol; /**< This will only be TCP. */
- int lease;
- } natpmp_state_t;
- const tor_fw_backend_t *tor_fw_get_natpmp_backend(void);
- int tor_natpmp_init(tor_fw_options_t *tor_fw_options, void *backend_state);
- int tor_natpmp_cleanup(tor_fw_options_t *tor_fw_options, void *backend_state);
- int tor_natpmp_add_tcp_mapping(uint16_t internal_port, uint16_t external_port,
- int is_verbose, void *backend_state);
- int tor_natpmp_fetch_public_ip(tor_fw_options_t *tor_fw_options,
- void *backend_state);
- #endif
- #endif
|