From 7e5c04b5db4e859b326ece329099d849906f2bb9 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Thu, 1 Mar 2012 20:39:37 +0100 Subject: Pass address of fd_set structs on the stack to the FD_ISSET macro/function, instead of the struct itself. --- debian/changelog | 3 ++- debian/patches/051_nxcomp_macos105-fdisset.full+lite.patch | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index ff0f01e10..f865f72b9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,7 +7,8 @@ nx-libs (2:3.5.0.12-0) UNRELEASED; urgency=low [ Mihai Moldovan ] * Add patch: 051_nxcomp_macos105-fdisset.full+lite.patch, work around - issue in Mac OS X 10.5 SDK. + issue in Mac OS X 10.5 SDK. Pass address of fd_set structs on the stack + to the FD_ISSET macro/function, instead of the struct itself. [ Oleksandr Shneyder ] * Create patch: 203_nxagent_disable-rootless-exit.full.patch. diff --git a/debian/patches/051_nxcomp_macos105-fdisset.full+lite.patch b/debian/patches/051_nxcomp_macos105-fdisset.full+lite.patch index 86f24e837..6b78a6bc2 100644 --- a/debian/patches/051_nxcomp_macos105-fdisset.full+lite.patch +++ b/debian/patches/051_nxcomp_macos105-fdisset.full+lite.patch @@ -27,14 +27,14 @@ Author: Mihai Moldovan *logofs << "Agent: remoteCanRead() is " << - (FD_ISSET(remoteFd_, readSet) && transport_ -> dequeuable() != 0) - << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, readSet) -+ (FD_ISSET(remoteFd_, readWorkSet) && transport_ -> dequeuable() != 0) -+ << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, readWorkSet) ++ (FD_ISSET(remoteFd_, &readWorkSet) && transport_ -> dequeuable() != 0) ++ << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, &readWorkSet) << " and dequeuable " << transport_ -> dequeuable() << ".\n" << logofs_flush; #endif - return (FD_ISSET(remoteFd_, readSet) && -+ return (FD_ISSET(remoteFd_, readWorkSet) && ++ return (FD_ISSET(remoteFd_, &readWorkSet) && transport_ -> dequeuable() != 0); } @@ -47,16 +47,16 @@ Author: Mihai Moldovan #if defined(TEST) || defined(INFO) *logofs << "Agent: remoteCanWrite() is " << - (FD_ISSET(remoteFd_, writeSet) && transport_ -> -+ (FD_ISSET(remoteFd_, writeWorkSet) && transport_ -> ++ (FD_ISSET(remoteFd_, &writeWorkSet) && transport_ -> queuable() != 0 && canRead_ == 1) << " with FD_ISSET() " - << (int) FD_ISSET(remoteFd_, writeSet) << " queueable " -+ << (int) FD_ISSET(remoteFd_, writeWorkSet) << " queueable " ++ << (int) FD_ISSET(remoteFd_, &writeWorkSet) << " queueable " << transport_ -> queuable() << " channel can read " << canRead_ << ".\n" << logofs_flush; #endif - return (FD_ISSET(remoteFd_, writeSet) && -+ return (FD_ISSET(remoteFd_, writeWorkSet) && ++ return (FD_ISSET(remoteFd_, &writeWorkSet) && transport_ -> queuable() != 0 && canRead_ == 1); } -- cgit v1.2.3