aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMihai Moldovan <ionic@ionic.de>2014-06-21 22:39:10 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2014-06-21 23:06:36 +0200
commit3446d14ea37114679d9f84c98a2c67302ce306b8 (patch)
treeb83f5f766ee0217d474e75bbfc3eaa8347a54773
parentafcc7a93dfcbc096a2bcc1b1a572e2dd704918c0 (diff)
downloadnx-libs-3446d14ea37114679d9f84c98a2c67302ce306b8.tar.gz
nx-libs-3446d14ea37114679d9f84c98a2c67302ce306b8.tar.bz2
nx-libs-3446d14ea37114679d9f84c98a2c67302ce306b8.zip
Improve 028_nx-X11_abstract-kernel-sockets.full.patch. Make it more Big Endian robust by assigning correct types for socklen_t objects.
-rw-r--r--debian/changelog2
-rw-r--r--debian/patches/028_nx-X11_abstract-kernel-sockets.full.patch54
2 files changed, 40 insertions, 16 deletions
diff --git a/debian/changelog b/debian/changelog
index 1a09e1679..02346d061 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,8 @@ nx-libs (2:3.5.0.25-0x2go1) UNRELEASED; urgency=low
no error when creating the keyboard file or the other way around.
Also add the reason when failing to create the keyboard file.
Only print an error message if SessionPath *really* is not defined.
+ * Improve 028_nx-X11_abstract-kernel-sockets.full.patch. Make it more
+ Big Endian robust by assigning correct types for socklen_t objects.
[ Mike Gabriel ]
* Add 606_nx-X11_build-on-aarch64.full.patch. Build on aarch64
diff --git a/debian/patches/028_nx-X11_abstract-kernel-sockets.full.patch b/debian/patches/028_nx-X11_abstract-kernel-sockets.full.patch
index ae672e94b..279f9a9af 100644
--- a/debian/patches/028_nx-X11_abstract-kernel-sockets.full.patch
+++ b/debian/patches/028_nx-X11_abstract-kernel-sockets.full.patch
@@ -34,7 +34,29 @@ Abstract:
struct sockaddr sa;
fd_set fs;
struct timeval t;
-@@ -1477,23 +1483,28 @@
+@@ -914,9 +920,11 @@
+ struct sockaddr_in socknamev4;
+ void *socknamePtr;
+ #if defined(SVR4) || defined(__SCO__)
++# define SOCKLEN_T_PTR void*
+ size_t namelen;
+ #else
+- int namelen;
++# define SOCKLEN_T_PTR socklen_t*
++ socklen_t namelen;
+ #endif
+
+ PRMSG (3,"SocketINETGetAddr(%p)\n", ciptr, 0, 0);
+@@ -935,7 +943,7 @@
+ }
+
+ if (getsockname (ciptr->fd,(struct sockaddr *) socknamePtr,
+- (void *)&namelen) < 0)
++ (SOCKLEN_T_PTR)&namelen) < 0)
+ {
+ #ifdef WIN32
+ errno = WSAGetLastError();
+@@ -1477,23 +1485,28 @@
#ifdef UNIXCONN
static int
@@ -73,7 +95,7 @@ Abstract:
return 0;
}
#endif
-@@ -1726,6 +1737,12 @@
+@@ -1726,6 +1739,12 @@
int oldUmask;
int status;
unsigned int mode;
@@ -86,7 +108,7 @@ Abstract:
PRMSG (2, "SocketUNIXCreateListener(%s)\n",
port ? port : "NULL", 0, 0);
-@@ -1741,11 +1758,11 @@
+@@ -1741,11 +1760,11 @@
mode = 0777;
#endif
#ifdef NX_TRANS_SOCKET
@@ -100,7 +122,7 @@ Abstract:
PRMSG (1, "SocketUNIXCreateListener: mkdir(%s) failed, errno = %d\n",
UNIX_DIR, errno, 0);
#endif
-@@ -1754,13 +1771,18 @@
+@@ -1754,13 +1773,18 @@
}
#endif
@@ -121,7 +143,7 @@ Abstract:
#endif
PRMSG (1, "SocketUNIXCreateListener: path too long\n", 0, 0, 0);
return TRANS_CREATE_LISTENER_FAILED;
-@@ -1784,7 +1806,12 @@
+@@ -1784,7 +1808,12 @@
fprintf(stderr, "SocketUNIXCreateListener: Unlinking path [%s] for ciptr at [%p].\n",
sockname.sun_path, (void *) ciptr);
#endif
@@ -135,7 +157,7 @@ Abstract:
if ((status = TRANS(SocketCreateListener) (ciptr,
(struct sockaddr *) &sockname, namelen, flags)) < 0)
-@@ -1814,6 +1841,9 @@
+@@ -1814,6 +1843,9 @@
return TRANS_CREATE_LISTENER_FAILED;
}
@@ -145,7 +167,7 @@ Abstract:
ciptr->family = sockname.sun_family;
ciptr->addrlen = namelen;
memcpy (ciptr->addr, &sockname, ciptr->addrlen);
-@@ -1823,7 +1853,6 @@
+@@ -1823,7 +1855,6 @@
return 0;
}
@@ -153,7 +175,7 @@ Abstract:
static int
TRANS(SocketUNIXResetListener) (XtransConnInfo ciptr)
-@@ -1836,15 +1865,20 @@
+@@ -1836,15 +1867,20 @@
struct stat statb;
int status = TRANS_RESET_NOOP;
unsigned int mode;
@@ -176,7 +198,7 @@ Abstract:
#endif
{
int oldUmask = umask (0);
-@@ -2034,6 +2068,11 @@
+@@ -2034,6 +2070,11 @@
}
@@ -188,7 +210,7 @@ Abstract:
newciptr->addrlen = ciptr->addrlen;
memcpy (newciptr->addr, ciptr->addr, newciptr->addrlen);
-@@ -2626,6 +2665,12 @@
+@@ -2626,6 +2667,12 @@
struct sockaddr_un sockname;
int namelen;
@@ -201,7 +223,7 @@ Abstract:
#if defined(hpux) && defined(X11_t)
struct sockaddr_un old_sockname;
int old_namelen;
-@@ -2674,9 +2719,9 @@
+@@ -2674,9 +2721,9 @@
sockname.sun_family = AF_UNIX;
#ifdef NX_TRANS_SOCKET
@@ -213,7 +235,7 @@ Abstract:
#endif
PRMSG (1, "SocketUNIXConnect: path too long\n", 0, 0, 0);
return TRANS_CONNECT_FAILED;
-@@ -2722,6 +2767,14 @@
+@@ -2722,6 +2769,14 @@
#endif
/*
@@ -228,7 +250,7 @@ Abstract:
* Do the connect()
*/
-@@ -2757,12 +2810,18 @@
+@@ -2757,12 +2812,18 @@
* should try again.
*/
@@ -252,7 +274,7 @@ Abstract:
PRMSG (2,"SocketUNIXConnect: Can't connect: errno = %d\n",
EGET(),0, 0);
-@@ -2791,6 +2850,9 @@
+@@ -2791,6 +2852,9 @@
return TRANS_CONNECT_FAILED;
}
@@ -262,7 +284,7 @@ Abstract:
ciptr->family = AF_UNIX;
ciptr->addrlen = namelen;
ciptr->peeraddrlen = namelen;
-@@ -3323,7 +3385,11 @@
+@@ -3323,7 +3387,11 @@
Xtransport TRANS(SocketLocalFuncs) = {
/* Socket Interface */
"local",
@@ -274,7 +296,7 @@ Abstract:
#ifdef TRANS_CLIENT
TRANS(SocketOpenCOTSClient),
#endif /* TRANS_CLIENT */
-@@ -3369,7 +3435,7 @@
+@@ -3369,7 +3437,7 @@
Xtransport TRANS(SocketUNIXFuncs) = {
/* Socket Interface */
"unix",