diff options
| author | Simon Rettberg | 2025-12-09 15:49:52 +0100 |
|---|---|---|
| committer | Simon Rettberg | 2025-12-09 15:49:52 +0100 |
| commit | b3062b85b6778acb499998216fb8f3fd71119583 (patch) | |
| tree | 2df3de5930e1430cfaf792f4b6dae7b8993dfc0c /src/shared | |
| parent | [KERNEL] Fix build on newer gcc (diff) | |
| parent | [SERVER] iscsi: More comments (diff) | |
| download | dnbd3-b3062b85b6778acb499998216fb8f3fd71119583.tar.gz dnbd3-b3062b85b6778acb499998216fb8f3fd71119583.tar.xz dnbd3-b3062b85b6778acb499998216fb8f3fd71119583.zip | |
Merge branch 'iscsi-refactor'
Diffstat (limited to 'src/shared')
| -rw-r--r-- | src/shared/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | src/shared/sockhelper.c | 16 |
2 files changed, 20 insertions, 1 deletions
diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt index a1bd49a..ce129af 100644 --- a/src/shared/CMakeLists.txt +++ b/src/shared/CMakeLists.txt @@ -11,6 +11,11 @@ find_package(Libatomic REQUIRED) # add compile option to get POLLRDHUP support for signals add_definitions(-D_GNU_SOURCE) +if(DNBD3_SERVER_AFL) + message(STATUS "Building dnbd3-shared with AFL support") + add_definitions(-DDNBD3_SERVER_AFL) +endif(DNBD3_SERVER_AFL) + set(DNBD3_SHARED_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/crc32.c ${CMAKE_CURRENT_SOURCE_DIR}/fdsignal.c ${CMAKE_CURRENT_SOURCE_DIR}/log.c diff --git a/src/shared/sockhelper.c b/src/shared/sockhelper.c index 5096320..b3f479a 100644 --- a/src/shared/sockhelper.c +++ b/src/shared/sockhelper.c @@ -13,6 +13,8 @@ #define MAXLISTEN 20 +#include <dnbd3/afl.h> + struct _poll_list { int count; struct pollfd entry[MAXLISTEN]; @@ -435,6 +437,18 @@ ssize_t sock_recv(const int sock, void *buffer, const size_t len) done += ret; } if ( done == 0 ) return ret; - return done; + return (ssize_t)done; } +bool sock_sendPadding(const int fd, size_t bytes) +{ + static char nullbytes[512] = {0}; + + while ( bytes >= sizeof(nullbytes) ) { + ssize_t ret = sock_sendAll( fd, nullbytes, sizeof(nullbytes), 2 ); + if ( ret <= 0 ) + return false; + bytes -= (uint32_t)ret; + } + return sock_sendAll( fd, nullbytes, bytes, 2 ) == (ssize_t)bytes; +}
\ No newline at end of file |
