bind: Check for POLLRDHUP on the server if available
This is a feature on modern Linux. Thanks to Ludovic Courtès <ludo@gnu.org> for the pointer. Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
родитель
0e9add9a89
Коммит
86849c0883
@ -300,7 +300,10 @@ if (WITH_SYMBOL_VERSIONING AND HAVE_LD_VERSION_SCRIPT AND ABIMAP_FOUND)
|
|||||||
endif (WITH_SYMBOL_VERSIONING AND HAVE_LD_VERSION_SCRIPT AND ABIMAP_FOUND)
|
endif (WITH_SYMBOL_VERSIONING AND HAVE_LD_VERSION_SCRIPT AND ABIMAP_FOUND)
|
||||||
|
|
||||||
add_library(${LIBSSH_SHARED_LIBRARY} SHARED ${libssh_SRCS})
|
add_library(${LIBSSH_SHARED_LIBRARY} SHARED ${libssh_SRCS})
|
||||||
target_compile_options(${LIBSSH_SHARED_LIBRARY} PRIVATE ${DEFAULT_C_COMPILE_FLAGS})
|
target_compile_options(${LIBSSH_SHARED_LIBRARY}
|
||||||
|
PRIVATE
|
||||||
|
${DEFAULT_C_COMPILE_FLAGS}
|
||||||
|
-D_GNU_SOURCE)
|
||||||
|
|
||||||
target_link_libraries(${LIBSSH_SHARED_LIBRARY} ${LIBSSH_LINK_LIBRARIES})
|
target_link_libraries(${LIBSSH_SHARED_LIBRARY} ${LIBSSH_LINK_LIBRARIES})
|
||||||
|
|
||||||
@ -348,7 +351,10 @@ install(
|
|||||||
|
|
||||||
if (BUILD_STATIC_LIB)
|
if (BUILD_STATIC_LIB)
|
||||||
add_library(${LIBSSH_STATIC_LIBRARY} STATIC ${libssh_SRCS})
|
add_library(${LIBSSH_STATIC_LIBRARY} STATIC ${libssh_SRCS})
|
||||||
target_compile_options(${LIBSSH_STATIC_LIBRARY} PRIVATE ${DEFAULT_C_COMPILE_FLAGS})
|
target_compile_options(${LIBSSH_STATIC_LIBRARY}
|
||||||
|
PRIVATE
|
||||||
|
${DEFAULT_C_COMPILE_FLAGS}
|
||||||
|
-D_GNU_SOURCE)
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
set(OUTPUT_SUFFIX static)
|
set(OUTPUT_SUFFIX static)
|
||||||
|
@ -345,11 +345,18 @@ static int ssh_bind_poll_callback(ssh_poll_handle sshpoll,
|
|||||||
*/
|
*/
|
||||||
ssh_poll_handle ssh_bind_get_poll(ssh_bind sshbind)
|
ssh_poll_handle ssh_bind_get_poll(ssh_bind sshbind)
|
||||||
{
|
{
|
||||||
|
short events = POLLIN;
|
||||||
|
|
||||||
if (sshbind->poll) {
|
if (sshbind->poll) {
|
||||||
return sshbind->poll;
|
return sshbind->poll;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef POLLRDHUP
|
||||||
|
events |= POLLRDHUP;
|
||||||
|
#endif /* POLLRDHUP */
|
||||||
|
|
||||||
sshbind->poll = ssh_poll_new(sshbind->bindfd,
|
sshbind->poll = ssh_poll_new(sshbind->bindfd,
|
||||||
POLLIN,
|
events,
|
||||||
ssh_bind_poll_callback,
|
ssh_bind_poll_callback,
|
||||||
sshbind);
|
sshbind);
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user