server/: Record port number with UDP socket, rather than querying.
[tripe] / server / tripe.h
index 10a03f5..1effb95 100644 (file)
@@ -676,6 +676,11 @@ typedef struct peer {
 
 typedef struct peer_iter { sym_iter i; } peer_iter;
 
+typedef struct udpsocket {
+  sel_file sf;                         /* Selector for the socket */
+  unsigned port;                       /* Chosen port number */
+} udpsocket;
+
 typedef struct ping {
   struct ping *next, *prev;            /* Links to next and previous */
   peer *p;                             /* Peer so we can free it */
@@ -812,7 +817,7 @@ extern sel_state sel;                       /* Global I/O event state */
 extern octet buf_i[PKBUFSZ], buf_o[PKBUFSZ], buf_t[PKBUFSZ], buf_u[PKBUFSZ];
 extern const tunnel_ops *tunnels[];    /* Table of tunnels (0-term) */
 extern const tunnel_ops *tun_default;  /* Default tunnel to use */
-extern sel_file udpsock[NADDRFAM];     /* The master UDP sockets */
+extern udpsocket udpsock[NADDRFAM];    /* The master UDP sockets */
 extern kdata *master;                  /* Default private key */
 extern const char *tag_priv;           /* Default private key tag */
 
@@ -1645,15 +1650,6 @@ extern const addr *p_addr(peer */*p*/);
 
 extern void p_init(struct addrinfo */*ailist*/);
 
-/* --- @p_port@ --- *
- *
- * Arguments:  @int i@ = address family index to retrieve
- *
- * Returns:    Port number used for socket.
- */
-
-extern unsigned p_port(int /*i*/);
-
 /* --- @p_create@ --- *
  *
  * Arguments:  @peerspec *spec@ = information about this peer