From afce71cc5481c3772324f3d28b68c20db9d08507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Lindel=C3=B6w?= Date: Thu, 16 Apr 2026 09:33:33 +0200 Subject: [PATCH] Fix poll inftim cross-platform behaviour --- include/tinycsocket.h | 6 +++++- src/tinycsocket_internal.h | 2 +- src/tinycsocket_posix.c | 2 ++ src/tinycsocket_win32.c | 2 ++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/tinycsocket.h b/include/tinycsocket.h index 79b0f8a..fb3d844 100644 --- a/include/tinycsocket.h +++ b/include/tinycsocket.h @@ -29,7 +29,7 @@ #ifndef TINYCSOCKET_INTERNAL_H_ #define TINYCSOCKET_INTERNAL_H_ -static const char* const TCS_VERSION_TXT = "v0.3.68"; +static const char* const TCS_VERSION_TXT = "v0.3.69"; static const char* const TCS_LICENSE_TXT = "Copyright 2018 Markus Lindelöw\n" "\n" @@ -3639,6 +3639,8 @@ TcsResult tcs_pool_poll(struct TcsPool* pool, { if (pool == NULL || events == NULL || events_populated == NULL) return TCS_ERROR_INVALID_ARGUMENT; + if (timeout_ms < 0 && timeout_ms != TCS_WAIT_INF) + return TCS_ERROR_INVALID_ARGUMENT; struct TdsMap_poll* map = &pool->backend.poll.map; @@ -5543,6 +5545,8 @@ TcsResult tcs_pool_poll(struct TcsPool* pool, return TCS_ERROR_INVALID_ARGUMENT; if (events == NULL || events_populated == NULL) return TCS_ERROR_INVALID_ARGUMENT; + if (timeout_ms < 0 && timeout_ms != TCS_WAIT_INF) + return TCS_ERROR_INVALID_ARGUMENT; // Todo: add more modern implementation. Maybe dispatch att init? // SELECT IMPLEMENTATION diff --git a/src/tinycsocket_internal.h b/src/tinycsocket_internal.h index e111917..a2a6045 100644 --- a/src/tinycsocket_internal.h +++ b/src/tinycsocket_internal.h @@ -23,7 +23,7 @@ #ifndef TINYCSOCKET_INTERNAL_H_ #define TINYCSOCKET_INTERNAL_H_ -static const char* const TCS_VERSION_TXT = "v0.3.68"; +static const char* const TCS_VERSION_TXT = "v0.3.69"; static const char* const TCS_LICENSE_TXT = "Copyright 2018 Markus Lindelöw\n" "\n" diff --git a/src/tinycsocket_posix.c b/src/tinycsocket_posix.c index 4ab6342..317386b 100644 --- a/src/tinycsocket_posix.c +++ b/src/tinycsocket_posix.c @@ -951,6 +951,8 @@ TcsResult tcs_pool_poll(struct TcsPool* pool, { if (pool == NULL || events == NULL || events_populated == NULL) return TCS_ERROR_INVALID_ARGUMENT; + if (timeout_ms < 0 && timeout_ms != TCS_WAIT_INF) + return TCS_ERROR_INVALID_ARGUMENT; struct TdsMap_poll* map = &pool->backend.poll.map; diff --git a/src/tinycsocket_win32.c b/src/tinycsocket_win32.c index 5456574..2b52151 100644 --- a/src/tinycsocket_win32.c +++ b/src/tinycsocket_win32.c @@ -920,6 +920,8 @@ TcsResult tcs_pool_poll(struct TcsPool* pool, return TCS_ERROR_INVALID_ARGUMENT; if (events == NULL || events_populated == NULL) return TCS_ERROR_INVALID_ARGUMENT; + if (timeout_ms < 0 && timeout_ms != TCS_WAIT_INF) + return TCS_ERROR_INVALID_ARGUMENT; // Todo: add more modern implementation. Maybe dispatch att init? // SELECT IMPLEMENTATION