Makefile.in: Drop dist target
[secnet] / util.c
diff --git a/util.c b/util.c
index d1621fc..d12db66 100644 (file)
--- a/util.c
+++ b/util.c
@@ -6,26 +6,22 @@
  * - MPI convenience functions
  */
 /*
- *  This file is
- *    Copyright (C) 1995--2001 Stephen Early <steve@greenend.org.uk>
+ * This file is part of secnet.
+ * See README for full list of copyright holders.
  *
- *  It is part of secnet, which is
- *    Copyright (C) 1995--2001 Stephen Early <steve@greenend.org.uk>
- *    Copyright (C) 1998 Ross Anderson, Eli Biham, Lars Knudsen
- *  
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2, or (at your option)
- *  any later version.
- *  
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *  
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software Foundation,
- *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
+ * secnet is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * secnet is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * version 3 along with secnet; if not, see
+ * https://www.gnu.org/licenses/gpl.html.
  */
 
 #include "secnet.h"
@@ -452,7 +448,7 @@ void send_nak(const struct comm_addr *dest, uint32_t our_index,
                " %s; sending NAK\n",
                comm_addr_to_string(dest),
                our_index, their_index, msgtype, logwhy);
-    dest->comm->sendmsg(dest->comm->st, buf, dest);
+    dest->comm->sendmsg(dest->comm->st, buf, dest, 0);
 }
 
 int consttime_memeq(const void *s1in, const void *s2in, size_t n)
@@ -525,7 +521,7 @@ void string_item_to_iaddr(const item_t *item, uint16_t port, union iaddr *ia,
 #ifndef CONFIG_IPV6
 
     ia->sin.sin_family=AF_INET;
-    ia->sin.sin_addr.s_addr=string_item_to_ipaddr(item,desc);
+    ia->sin.sin_addr.s_addr=htonl(string_item_to_ipaddr(item,desc));
     ia->sin.sin_port=htons(port);
 
 #else /* CONFIG_IPV6 => we have adns_text2addr */
@@ -543,33 +539,27 @@ void string_item_to_iaddr(const item_t *item, uint16_t port, union iaddr *ia,
 #endif /* CONFIG_IPV6 */
 }
 
-#define IADDR_NBUFS_SHIFT 3
-#define IADDR_NBUFS (1 << IADDR_NBUFS_SHIFT)
+#define IADDR_NBUFS 8
 
 const char *iaddr_to_string(const union iaddr *ia)
 {
-    static int b;
-
-    b++;
-    b &= IADDR_NBUFS-1;
-
 #ifndef CONFIG_IPV6
 
-    static char bufs[IADDR_NBUFS][100];
+    SBUF_DEFINE(IADDR_NBUFS, 100);
 
     assert(ia->sa.sa_family == AF_INET);
 
-    snprintf(bufs[b], sizeof(bufs[b]), "[%s]:%d",
+    snprintf(SBUF, sizeof(SBUF), "[%s]:%d",
             inet_ntoa(ia->sin.sin_addr),
             ntohs(ia->sin.sin_port));
 
 #else /* CONFIG_IPV6 => we have adns_addr2text */
 
-    static char bufs[IADDR_NBUFS][1+ADNS_ADDR2TEXT_BUFLEN+20];
+    SBUF_DEFINE(IADDR_NBUFS, 1+ADNS_ADDR2TEXT_BUFLEN+20);
 
     int port;
 
-    char *addrbuf = bufs[b];
+    char *addrbuf = SBUF;
     *addrbuf++ = '[';
     int addrbuflen = ADNS_ADDR2TEXT_BUFLEN;
 
@@ -577,7 +567,7 @@ const char *iaddr_to_string(const union iaddr *ia)
     if (r) {
        const char fmt[]= "scoped IPv6 addr, error: %.*s";
        sprintf(addrbuf, fmt,
-               ADNS_ADDR2TEXT_BUFLEN - sizeof(fmt) /* underestimate */,
+               (int)(ADNS_ADDR2TEXT_BUFLEN - sizeof(fmt)) /* underestimate */,
                strerror(r));
     }
 
@@ -585,11 +575,11 @@ const char *iaddr_to_string(const union iaddr *ia)
     int addrl = strlen(addrbuf);
     portbuf += addrl;
 
-    snprintf(portbuf, sizeof(bufs[b])-addrl, "]:%d", port);
+    snprintf(portbuf, sizeof(SBUF)-addrl, "]:%d", port);
 
 #endif /* CONFIG_IPV6 */
 
-    return bufs[b];
+    return SBUF;
 }
 
 bool_t iaddr_equal(const union iaddr *ia, const union iaddr *ib,