Changeset: 4bbbb244a8a2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/4bbbb244a8a2 Modified Files: cmake/monetdb-defines.cmake common/stream/socket_stream.c monetdb_config.h.in Branch: Aug2024 Log Message:
Use function sockatmark if available instead of ioctl SIOCATMARK. diffs (79 lines): diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -100,6 +100,7 @@ function(monetdb_configure_defines) check_symbol_exists("posix_fallocate" "fcntl.h" HAVE_POSIX_FALLOCATE) check_symbol_exists("posix_madvise" "sys/mman.h" HAVE_POSIX_MADVISE) check_function_exists("setsid" HAVE_SETSID) + check_function_exists("sockatmark" HAVE_SOCKATMARK) check_function_exists("shutdown" HAVE_SHUTDOWN) check_function_exists("sigaction" HAVE_SIGACTION) check_function_exists("siglongjmp" HAVE_SIGLONGJMP) diff --git a/common/stream/socket_stream.c b/common/stream/socket_stream.c --- a/common/stream/socket_stream.c +++ b/common/stream/socket_stream.c @@ -73,10 +73,17 @@ socket_getoob(const stream *s) for (;;) { int atmark = 0; char flush[100]; +#ifdef HAVE_SOCKATMARK + if ((atmark = sockatmark(fd)) < 0) { + perror("sockatmark"); + break; + } +#else if (ioctlsocket(fd, SIOCATMARK, &atmark) < 0) { perror("ioctl"); break; } +#endif if (atmark) break; if (recv(fd, flush, sizeof(flush), 0) < 0) { @@ -306,10 +313,17 @@ socket_read(stream *restrict s, void *re for (;;) { int atmark = 0; char flush[100]; +#ifdef HAVE_SOCKATMARK + if ((atmark = sockatmark(s->stream_data.s)) < 0) { + perror("sockatmark"); + break; + } +#else if (ioctlsocket(s->stream_data.s, SIOCATMARK, &atmark) < 0) { perror("ioctl"); break; } +#endif if (atmark) break; if (recv(s->stream_data.s, flush, sizeof(flush), 0) < 0) { @@ -362,10 +376,17 @@ socket_read(stream *restrict s, void *re for (;;) { int atmark = 0; char flush[100]; +#ifdef HAVE_SOCKATMARK + if ((atmark = sockatmark(s->stream_data.s)) < 0) { + perror("sockatmark"); + break; + } +#else if (ioctlsocket(s->stream_data.s, SIOCATMARK, &atmark) < 0) { perror("ioctl"); break; } +#endif if (atmark) break; if (recv(s->stream_data.s, flush, sizeof(flush), 0) < 0) { diff --git a/monetdb_config.h.in b/monetdb_config.h.in --- a/monetdb_config.h.in +++ b/monetdb_config.h.in @@ -153,6 +153,7 @@ #cmakedefine HAVE_POSIX_MADVISE 1 #cmakedefine HAVE_SETTHREADDESCRIPTION 1 #cmakedefine HAVE_SETSID 1 +#cmakedefine HAVE_SOCKATMARK 1 #cmakedefine HAVE_SHUTDOWN 1 #cmakedefine HAVE_SIGACTION 1 #cmakedefine HAVE_SIGLONGJMP 1 _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org