+enum network_stun_state {
+ STUN_STATE_IDLE,
+ STUN_STATE_PEX_QUERY_WAIT,
+ STUN_STATE_STUN_QUERY_SEND,
+ STUN_STATE_STUN_QUERY_WAIT,
+};
+
+struct network_stun_server {
+ struct list_head list;
+
+ struct avl_node pending_node;
+ struct stun_request req;
+
+ const char *host;
+ uint8_t seq;
+ bool req_auth_port;
+ bool pending;
+};
+
+struct network_stun {
+ struct list_head servers;
+ struct avl_tree pending;
+
+ struct uloop_timeout timer;
+
+ enum network_stun_state state;
+ bool wgport_disabled;
+
+ uint16_t auth_port_ext;
+ uint16_t port_local;
+ uint16_t port_ext;
+
+ int retry;
+
+ struct uloop_fd socket;
+};
+