summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-09-08 18:01:46 -0400
committerAndrew Opalach <andrew@akon.city> 2025-09-08 18:01:46 -0400
commited403279224444f9fb3bac68a1ab008f8e7dfd8c (patch)
treed025848287811d17da9a6d1aa289a492c3425dd7 /src/util
parent4aea807a167a894fd264718efc8c9fa8bced7dcb (diff)
downloadlibnaunet-ed403279224444f9fb3bac68a1ab008f8e7dfd8c.tar.gz
libnaunet-ed403279224444f9fb3bac68a1ab008f8e7dfd8c.tar.bz2
libnaunet-ed403279224444f9fb3bac68a1ab008f8e7dfd8c.zip
Cleanup libev usage, socket error checking
- Remove packet.opaque. - Don't ensure_space() of buffer if not updating size. Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/util')
-rw-r--r--src/util/buffer.c7
-rw-r--r--src/util/error.c17
-rw-r--r--src/util/error.h7
-rw-r--r--src/util/packet.c9
-rw-r--r--src/util/packet.h10
5 files changed, 36 insertions, 14 deletions
diff --git a/src/util/buffer.c b/src/util/buffer.c
index 4c8b3c2..ab7adac 100644
--- a/src/util/buffer.c
+++ b/src/util/buffer.c
@@ -30,9 +30,12 @@ void nn_buffer_shrink_to_size(struct nn_buffer *buffer)
void nn_buffer_write(struct nn_buffer *buffer, void *data, size_t index, size_t size)
{
+ al_assert(buffer->size <= buffer->alloc);
size_t reach = index + size;
- nn_buffer_ensure_space(buffer, reach);
- if (reach > buffer->size) buffer->size = reach;
+ if (reach > buffer->size) {
+ nn_buffer_ensure_space(buffer, reach);
+ buffer->size = reach;
+ }
al_memcpy(&buffer->data[index], data, size);
}
diff --git a/src/util/error.c b/src/util/error.c
index db2d001..61c6136 100644
--- a/src/util/error.c
+++ b/src/util/error.c
@@ -15,3 +15,20 @@ char *nn_strerror(s32 errnum)
#endif
return errorbuf;
}
+
+#ifdef NAUNET_ON_WINDOWS
+#include "../winwrap.h"
+
+// https://stackoverflow.com/a/46104456
+char *nn_win32_error_message(s32 err)
+{
+ DWORD ret = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL,
+ err,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+ errorbuf,
+ NNWT_ERROR_STR_MAXLEN,
+ NULL);
+ return !ret ? NULL : errorbuf;
+}
+#endif
diff --git a/src/util/error.h b/src/util/error.h
index 3731a01..ef6fd46 100644
--- a/src/util/error.h
+++ b/src/util/error.h
@@ -3,6 +3,13 @@
#include <al/lib.h>
#include <errno.h>
+#ifdef NAUNET_ON_WINDOWS
+#define NNWT_ERROR_STR_MAXLEN 256
+#else
#define NNWT_ERROR_STR_MAXLEN 94
+#endif
char *nn_strerror(s32 errnum);
+#ifdef NAUNET_ON_WINDOWS
+char *nn_win32_error_message(s32 err);
+#endif
diff --git a/src/util/packet.c b/src/util/packet.c
index d7df1da..c991a7f 100644
--- a/src/util/packet.c
+++ b/src/util/packet.c
@@ -17,7 +17,6 @@ struct nn_packet *nn_packet_clone(struct nn_packet *packet)
al_memcpy(nn_buffer_get_ptr(&c->buffer, 0), nn_buffer_get_ptr(&packet->buffer, 0), size);
c->windex = packet->windex;
c->rindex = packet->rindex;
- c->opaque = packet->opaque;
return c;
}
@@ -26,14 +25,6 @@ void nn_packet_reset(struct nn_packet *packet)
nn_buffer_ensure_space(&packet->buffer, NNWT_PACKET_HEADER_LENGTH);
packet->rindex = NNWT_PACKET_HEADER_LENGTH;
packet->windex = NNWT_PACKET_HEADER_LENGTH;
- packet->opaque = NULL;
-}
-
-u32 nn_packet_get_u32(struct nn_packet *packet, u32 index)
-{
- u32 value;
- NNWT_BUFFER_READ_TYPE(&packet->buffer, index, u32, value);
- return value;
}
void nn_packet_write_size(struct nn_packet *packet)
diff --git a/src/util/packet.h b/src/util/packet.h
index a2837f1..1f76559 100644
--- a/src/util/packet.h
+++ b/src/util/packet.h
@@ -13,7 +13,6 @@ struct nn_packet {
struct nn_buffer buffer;
u32 rindex;
u32 windex;
- void *opaque;
};
#define NNWT_PACKET_WRITE_TYPE(p, type, v) \
@@ -32,12 +31,17 @@ struct nn_packet {
r = (__typeof__(r))nn_buffer_get_ptr(&(p)->buffer, (p)->rindex); \
(p)->rindex += (u32)length
+static inline u32 nn_packet_get_u32(struct nn_packet *packet, u32 index)
+{
+ u32 value;
+ NNWT_BUFFER_READ_TYPE(&packet->buffer, index, u32, value);
+ return value;
+}
+
struct nn_packet *nn_packet_create(void);
struct nn_packet *nn_packet_clone(struct nn_packet *packet);
void nn_packet_reset(struct nn_packet *packet);
-u32 nn_packet_get_u32(struct nn_packet *packet, u32 index);
-
void nn_packet_write_size(struct nn_packet *packet);
u32 nn_packet_get_size(struct nn_packet *packet);