From 065dcc90303798f380755551dbc5deb13df23ec5 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 11 Jun 2014 12:25:52 +0200 Subject: fix patch name --- debian/changelog | 4 +- .../027_nxcomp_abstract-X11-socket.full+lite.patch | 56 ++++++++++++++++++++++ .../patches/027_nxcomp_abstract-X11-socket.patch | 56 ---------------------- debian/patches/series | 2 +- 4 files changed, 59 insertions(+), 59 deletions(-) create mode 100644 debian/patches/027_nxcomp_abstract-X11-socket.full+lite.patch delete mode 100644 debian/patches/027_nxcomp_abstract-X11-socket.patch diff --git a/debian/changelog b/debian/changelog index 54992628b..6c806882a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,12 +2,12 @@ nx-libs (2:3.5.0.25-0x2go1) UNRELEASED; urgency=low * Add 606_nx-X11_build-on-aarch64.full.patch. Build on aarch64 architectures. (Fixes: #490). - * Add 027_nxcomp_abstract-X11-socket.patch. In proxy mode "server" let + * Add 027_nxcomp_abstract-X11-socket.full+lite.patch. In proxy mode "server" let NX proxy attempt connecting to the abstract X11 socket first, and only fallback to the file system socket, if the abstract socket is not available. (Fixes: #505). * Make 220_nxproxy-bind-loopback-only.full+lite.patch cleanly apply after - having added 027_nxcomp_abstract-X11-socket.patch. + having added 027_nxcomp_abstract-X11-socket.full+lite.patch. -- Mike Gabriel Wed, 07 May 2014 09:58:10 +0200 diff --git a/debian/patches/027_nxcomp_abstract-X11-socket.full+lite.patch b/debian/patches/027_nxcomp_abstract-X11-socket.full+lite.patch new file mode 100644 index 000000000..4f614338c --- /dev/null +++ b/debian/patches/027_nxcomp_abstract-X11-socket.full+lite.patch @@ -0,0 +1,56 @@ +diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp +index 92b6fc2..d86809d 100644 +--- a/nxcomp/Loop.cpp ++++ b/nxcomp/Loop.cpp +@@ -4250,6 +4250,39 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, + // where the socket will be created. + // + ++ // Try abstract X11 socket first (via a test connect), if that fails ++ // fall back to Unix domain socket file. ++ ++ #ifdef __linux__ ++ int testSocketFD; ++ testSocketFD = socket(xServerAddrFamily, SOCK_STREAM, PF_UNSPEC); ++ ++ int len = sprintf(unixSocketName + 1, "/tmp/.X11-unix/X%d", xPort); ++ unixSocketName[0] = '\0'; ++ ++ sockaddr_un *xServerAddrABSTRACT = new sockaddr_un; ++ memset(xServerAddrABSTRACT, 0, xServerAddrLength); ++ xServerAddrABSTRACT -> sun_family = AF_UNIX; ++ memcpy(xServerAddrABSTRACT -> sun_path, unixSocketName, len+1); ++ xServerAddrLength = len +3; ++ ++ int ret = connect(testSocketFD, (struct sockaddr *) xServerAddrABSTRACT, xServerAddrLength); ++ if (ret == 0) { ++ ++ cerr << "Info" << ": Using abstract X11 socket in kernel namespace " ++ << "for accessing DISPLAY=:" << xPort << ".\n"; ++ ++ close(testSocketFD); ++ xServerAddr = (sockaddr *) xServerAddrABSTRACT; ++ return 1; ++ ++ } else { ++ ++ cerr << "Info" << ": Falling back to file system X11 socket " ++ << "for accessing DISPLAY=:" << xPort << ".\n"; ++ ++ #endif ++ + struct stat statInfo; + + char unixSocketDir[DEFAULT_STRING_LENGTH]; +@@ -4322,6 +4355,11 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, + + xServerAddr = (sockaddr *) xServerAddrUNIX; + xServerAddrLength = sizeof(sockaddr_un); ++ ++ #ifdef __linux__ ++ ++ } ++ #endif + } + else + { diff --git a/debian/patches/027_nxcomp_abstract-X11-socket.patch b/debian/patches/027_nxcomp_abstract-X11-socket.patch deleted file mode 100644 index 4f614338c..000000000 --- a/debian/patches/027_nxcomp_abstract-X11-socket.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp -index 92b6fc2..d86809d 100644 ---- a/nxcomp/Loop.cpp -+++ b/nxcomp/Loop.cpp -@@ -4250,6 +4250,39 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, - // where the socket will be created. - // - -+ // Try abstract X11 socket first (via a test connect), if that fails -+ // fall back to Unix domain socket file. -+ -+ #ifdef __linux__ -+ int testSocketFD; -+ testSocketFD = socket(xServerAddrFamily, SOCK_STREAM, PF_UNSPEC); -+ -+ int len = sprintf(unixSocketName + 1, "/tmp/.X11-unix/X%d", xPort); -+ unixSocketName[0] = '\0'; -+ -+ sockaddr_un *xServerAddrABSTRACT = new sockaddr_un; -+ memset(xServerAddrABSTRACT, 0, xServerAddrLength); -+ xServerAddrABSTRACT -> sun_family = AF_UNIX; -+ memcpy(xServerAddrABSTRACT -> sun_path, unixSocketName, len+1); -+ xServerAddrLength = len +3; -+ -+ int ret = connect(testSocketFD, (struct sockaddr *) xServerAddrABSTRACT, xServerAddrLength); -+ if (ret == 0) { -+ -+ cerr << "Info" << ": Using abstract X11 socket in kernel namespace " -+ << "for accessing DISPLAY=:" << xPort << ".\n"; -+ -+ close(testSocketFD); -+ xServerAddr = (sockaddr *) xServerAddrABSTRACT; -+ return 1; -+ -+ } else { -+ -+ cerr << "Info" << ": Falling back to file system X11 socket " -+ << "for accessing DISPLAY=:" << xPort << ".\n"; -+ -+ #endif -+ - struct stat statInfo; - - char unixSocketDir[DEFAULT_STRING_LENGTH]; -@@ -4322,6 +4355,11 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr, - - xServerAddr = (sockaddr *) xServerAddrUNIX; - xServerAddrLength = sizeof(sockaddr_un); -+ -+ #ifdef __linux__ -+ -+ } -+ #endif - } - else - { diff --git a/debian/patches/series b/debian/patches/series index 162c52281..fdb76702d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -22,7 +22,7 @@ 026_nxcompext_honour-optflags.full.patch 026_nxcomp_honour-optflags.full+lite.patch 026_nxcompshad_honour-optflags.full.patch -027_nxcomp_abstract-X11-socket.patch +027_nxcomp_abstract-X11-socket.full+lite.patch 030_nx-X11_configure-args.full.patch 031_nx-X11_parallel-make.full.patch 051_nxcomp_macos105-fdisset.full+lite.patch -- cgit v1.2.3