|
| static void | generate_transaction_id (unsigned char transaction_id[12]) |
| static void | fill_request (unsigned char buffer[28], int change_ip, int change_port) |
| static int | resolve_stun_host (const char *stun_host, unsigned short stun_port, struct sockaddr_in *sock_addr) |
| static int | stun_socket (unsigned short *local_port) |
| static size_t | receive_stun_response (int fd, unsigned char *buffer, unsigned char transaction_id[12], size_t buffer_len, struct sockaddr_in *peer_addr) |
| static int | wait_for_stun_responses (int fds[4], unsigned char *transaction_ids[4], unsigned char *buffers[4], size_t buffers_lens[4], struct sockaddr_in peer_addrs[4], size_t lens[4]) |
| static int | parse_stun_response (unsigned char *buffer, size_t len, struct sockaddr_in *mapped_addr) |
| int | perform_stun (const char *if_name, const char *if_addr, const char *stun_host, unsigned short stun_port, struct in_addr *ext_addr, int *restrictive_nat) |