unet-cli: add DHT support
[project/unetd.git] / utils.h
diff --git a/utils.h b/utils.h
index ce8943c49088b4d96d04e514eab23345f3d3bb65..5d7acc85637bc69aa219c1dfc1495c3f4c86cf57 100644 (file)
--- a/utils.h
+++ b/utils.h
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: GPL-2.0+
+// SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * Copyright (C) 2022 Felix Fietkau <nbd@nbd.name>
  */
@@ -30,11 +30,13 @@ static inline void *
 network_endpoint_addr(union network_endpoint *ep, int *addr_len)
 {
        if (ep->sa.sa_family == AF_INET6) {
-               *addr_len = sizeof(ep->in6.sin6_addr);
+               if (addr_len)
+                       *addr_len = sizeof(ep->in6.sin6_addr);
                return &ep->in6.sin6_addr;
        }
 
-       *addr_len = sizeof(ep->in.sin_addr);
+       if (addr_len)
+               *addr_len = sizeof(ep->in.sin_addr);
        return &ep->in.sin_addr;
 }
 
@@ -53,12 +55,14 @@ network_endpoint_addr_equal(union network_endpoint *ep1, union network_endpoint
        return !memcmp(a1, a2, len);
 }
 
-int network_get_endpoint(union network_endpoint *dest, const char *str,
+int network_get_endpoint(union network_endpoint *dest, int af, const char *str,
                         int default_port, int idx);
 int network_get_subnet(int af, union network_addr *addr, int *mask,
                       const char *str);
 int network_get_local_addr(void *local, const union network_endpoint *target);
 
+void *unet_read_file(const char *name, size_t *len);
+
 #define DIV_ROUND_UP(n, d)     (((n) + (d) - 1) / (d))
 
 #define bitmask_size(len)      (4 * DIV_ROUND_UP(len, 32))
@@ -121,4 +125,9 @@ static inline uint64_t get_unaligned_le64(const uint8_t *p)
 int rtnl_init(void);
 int rtnl_call(struct nl_msg *msg);
 
+uint64_t unet_gettime(void);
+
+int sendto_rawudp(int fd, const void *addr, void *ip_hdr, size_t ip_hdrlen,
+                 const void *data, size_t len);
+
 #endif