From fcffffae67038095b1be0b2d60366fe2e934f29a Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Thu, 6 Mar 2025 12:13:27 -0800 Subject: [PATCH 1/3] network: move context declaration to private scope Signed-off-by: Eduardo Silva --- include/fluent-bit/flb_network.h | 26 -------------------------- src/flb_network.c | 28 +++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/include/fluent-bit/flb_network.h b/include/fluent-bit/flb_network.h index 9569ba22ed3..01c7390f051 100644 --- a/include/fluent-bit/flb_network.h +++ b/include/fluent-bit/flb_network.h @@ -26,7 +26,6 @@ #include #include #include -#include #define FLB_NETWORK_DEFAULT_BACKLOG_SIZE 128 #define FLB_NETWORK_UNIX_SOCKET_PEER_ADDRESS_TEMPLATE "pid_%s" @@ -109,31 +108,6 @@ struct flb_net_host { struct flb_uri *uri; /* Extra URI parameters */ }; -/* Defines an async DNS lookup context */ -struct flb_dns_lookup_context { - struct mk_event response_event; /* c-ares socket event */ - int ares_socket_registered; - struct ares_socket_functions ares_socket_functions; - int *udp_timeout_detected; - int ares_socket_created; - int ares_socket_type; - void *ares_channel; - int *result_code; - struct mk_event_loop *event_loop; - struct flb_coro *coroutine; - struct flb_sched_timer *udp_timer; - int finished; - int dropped; - struct flb_net_dns *dns_ctx; - struct addrinfo **result; - /* result is a synthetized result, don't call freeaddrinfo on it */ - struct mk_list _head; -}; - -#define FLB_DNS_LOOKUP_CONTEXT_FOR_EVENT(event) \ - ((struct flb_dns_lookup_context *) \ - &((uint8_t *) event)[-offsetof(struct flb_dns_lookup_context, response_event)]) - #define FLB_DNS_LEGACY 'L' #define FLB_DNS_ASYNC 'A' diff --git a/src/flb_network.c b/src/flb_network.c index e53030ba742..2d41200de82 100644 --- a/src/flb_network.c +++ b/src/flb_network.c @@ -64,6 +64,32 @@ static pthread_once_t local_thread_net_dns_ctx_init = PTHREAD_ONCE_INIT; FLB_TLS_DEFINE(struct flb_net_dns, flb_net_dns_ctx); +/* Defines an async DNS lookup context */ +struct flb_dns_lookup_context { + struct mk_event response_event; /* c-ares socket event */ + int ares_socket_registered; + struct ares_socket_functions ares_socket_functions; + int *udp_timeout_detected; + int ares_socket_created; + int ares_socket_type; + void *ares_channel; + int *result_code; + struct mk_event_loop *event_loop; + struct flb_coro *coroutine; + struct flb_sched_timer *udp_timer; + int finished; + int dropped; + struct flb_net_dns *dns_ctx; + struct addrinfo **result; + /* result is a synthetized result, don't call freeaddrinfo on it */ + struct mk_list _head; +}; + +#define FLB_DNS_LOOKUP_CONTEXT_FOR_EVENT(event) \ + ((struct flb_dns_lookup_context *) \ + &((uint8_t *) event)[-offsetof(struct flb_dns_lookup_context, response_event)]) + + /* * Initialize thread-local-storage, every worker thread has it owns * dns context with relevant info populated inside the thread. @@ -1810,7 +1836,7 @@ flb_sockfd_t flb_net_accept(flb_sockfd_t server_fd) struct sockaddr_storage sock_addr = { 0 }; socklen_t socket_size = sizeof(sock_addr); - /* + /* * sock_addr used to be a sockaddr struct, but this was too * small of a structure to handle IPV6 addresses (#9053). * This would cause accept() to not accept the connection (with no error), From 83398482395c2e690e3ee51dac86f5168e692245 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Thu, 6 Mar 2025 12:14:17 -0800 Subject: [PATCH 2/3] cmake: move internal path headers to public headers.cmake file Signed-off-by: Eduardo Silva --- cmake/cares.cmake | 5 ----- cmake/headers.cmake | 27 ++++++++++++++++++++------- cmake/nghttp2.cmake | 6 +----- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/cmake/cares.cmake b/cmake/cares.cmake index 212d3f1c2f6..f66c70b5e85 100644 --- a/cmake/cares.cmake +++ b/cmake/cares.cmake @@ -10,11 +10,6 @@ if (FLB_SYSTEM_MACOS) FLB_DEFINITION(CARES_HAVE_ARPA_NAMESER_H) endif() -include_directories( - ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_CARES}/include - ${CMAKE_CURRENT_BINARY_DIR}/${FLB_PATH_LIB_CARES} -) - add_subdirectory(${FLB_PATH_LIB_CARES})# EXCLUDE_FROM_ALL) set(LIBCARES_LIBRARIES "c-ares") diff --git a/cmake/headers.cmake b/cmake/headers.cmake index 99547419b14..fa6bccb13e2 100755 --- a/cmake/headers.cmake +++ b/cmake/headers.cmake @@ -2,6 +2,10 @@ if(NOT FLB_PATH_ROOT_SOURCE) set(FLB_PATH_ROOT_SOURCE ${FLB_ROOT}) endif() +if(NOT DEFINED FLB_PATH_ROOT_BINARY_DIR) + set(FLB_PATH_ROOT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) +endif() + include_directories( ${FLB_PATH_ROOT_SOURCE}/include/ ${FLB_PATH_ROOT_SOURCE}/lib/ @@ -20,7 +24,7 @@ include_directories( # Chunk I/O generate headers also in the binary path ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_CHUNKIO}/include - ${CMAKE_CURRENT_BINARY_DIR}/lib/chunkio/include + ${FLB_PATH_ROOT_BINARY_DIR}/lib/chunkio/include ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_MONKEY}/include ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_MONKEY}/include/monkey @@ -36,13 +40,22 @@ include_directories( ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_RING_BUFFER}/lwrb/src/include ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_ZSTD}/lib - ${CMAKE_CURRENT_BINARY_DIR}/${FLB_PATH_LIB_JANSSON}/include - ${CMAKE_CURRENT_BINARY_DIR}/lib/cmetrics - ${CMAKE_CURRENT_BINARY_DIR}/lib/cprofiles/include - ${CMAKE_CURRENT_BINARY_DIR}/include + # c-ares + ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_CARES}/include + ${FLB_PATH_ROOT_BINARY_DIR}/${FLB_PATH_LIB_CARES} + + # nghttp2 + ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_NGHTTP2}/lib/includes/ + ${FLB_PATH_ROOT_BINARY_DIR}/lib/nghttp2 + ${FLB_PATH_ROOT_BINARY_DIR}/lib/nghttp2/lib/includes/ + + ${FLB_PATH_ROOT_BINARY_DIR}/${FLB_PATH_LIB_JANSSON}/include + ${FLB_PATH_ROOT_BINARY_DIR}/lib/cmetrics + ${FLB_PATH_ROOT_BINARY_DIR}/lib/cprofiles/include + ${FLB_PATH_ROOT_BINARY_DIR}/include - ${CMAKE_CURRENT_BINARY_DIR}/lib/monkey/include/ - ${CMAKE_CURRENT_BINARY_DIR}/lib/monkey/include/monkey/ + ${FLB_PATH_ROOT_BINARY_DIR}/lib/monkey/include/ + ${FLB_PATH_ROOT_BINARY_DIR}/lib/monkey/include/monkey/ ) if(FLB_UTF8_ENCODER) diff --git a/cmake/nghttp2.cmake b/cmake/nghttp2.cmake index cc291736c0a..7bb3f158f1a 100644 --- a/cmake/nghttp2.cmake +++ b/cmake/nghttp2.cmake @@ -3,10 +3,6 @@ FLB_OPTION(ENABLE_LIB_ONLY ON) FLB_OPTION(ENABLE_STATIC_LIB ON) FLB_OPTION(ENABLE_SHARED_LIB OFF) FLB_DEFINITION(NGHTTP2_STATICLIB) -include_directories( - ${CMAKE_CURRENT_BINARY_DIR}/lib/nghttp2 - ${CMAKE_CURRENT_BINARY_DIR}/lib/nghttp2/lib/includes/ - ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_NGHTTP2}/lib/includes/ -) + add_subdirectory(${FLB_PATH_LIB_NGHTTP2} EXCLUDE_FROM_ALL) set(NGHTTP2_LIBRARIES "nghttp2_static") From 9ed28897d03d0f221dfe83f19a4e69cb848623d5 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Thu, 6 Mar 2025 13:08:38 -0800 Subject: [PATCH 3/3] headers: expose new FLB_PUBLIC macro for shared lib visibility Signed-off-by: Eduardo Silva --- include/fluent-bit.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/fluent-bit.h b/include/fluent-bit.h index e79bb214417..f7c7d4634b9 100644 --- a/include/fluent-bit.h +++ b/include/fluent-bit.h @@ -42,6 +42,9 @@ extern "C" { #include #include +/* External plugins */ +#define FLB_PUBLIC __attribute__((visibility("default"))) + #ifdef __cplusplus } #endif