diff options
| author | 2025-09-08 18:01:46 -0400 | |
|---|---|---|
| committer | 2025-09-08 18:01:46 -0400 | |
| commit | ed403279224444f9fb3bac68a1ab008f8e7dfd8c (patch) | |
| tree | d025848287811d17da9a6d1aa289a492c3425dd7 /src/util | |
| parent | 4aea807a167a894fd264718efc8c9fa8bced7dcb (diff) | |
| download | libnaunet-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.c | 7 | ||||
| -rw-r--r-- | src/util/error.c | 17 | ||||
| -rw-r--r-- | src/util/error.h | 7 | ||||
| -rw-r--r-- | src/util/packet.c | 9 | ||||
| -rw-r--r-- | src/util/packet.h | 10 |
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); |