packages: tigervnc/tigervnc.spec, tigervnc/tigervnc-ipv6.patch (NEW) - rel ...
baggins
baggins at pld-linux.org
Thu Sep 1 12:54:05 CEST 2011
Author: baggins Date: Thu Sep 1 10:54:05 2011 GMT
Module: packages Tag: HEAD
---- Log message:
- rel 4
- ipv6 support for vnc server and listem mode of client
http://www.mail-archive.com/tigervnc-devel@lists.sourceforge.net/msg01287.html
---- Files affected:
packages/tigervnc:
tigervnc.spec (1.42 -> 1.43) , tigervnc-ipv6.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/tigervnc/tigervnc.spec
diff -u packages/tigervnc/tigervnc.spec:1.42 packages/tigervnc/tigervnc.spec:1.43
--- packages/tigervnc/tigervnc.spec:1.42 Wed Aug 31 22:04:41 2011
+++ packages/tigervnc/tigervnc.spec Thu Sep 1 12:54:00 2011
@@ -8,7 +8,7 @@
Summary(pl.UTF-8): System zdalnego dostępu TigerVNC
Name: tigervnc
Version: 1.1.0
-Release: 3
+Release: 4
License: GPL v2
Group: X11/Applications/Networking
Source0: http://dl.sourceforge.net/tigervnc/1.1.0/%{name}-%{version}.tar.gz
@@ -19,6 +19,7 @@
Patch2: %{name}-rh102434.patch
Patch3: %{name}-viewer-reparent.patch
Patch4: %{name}-as-needed.patch
+Patch5: %{name}-ipv6.patch
URL: http://www.tigervnc.com/
BuildRequires: ImageMagick
BuildRequires: ImageMagick-coder-png
@@ -170,6 +171,7 @@
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p0
cp -a %{_usrsrc}/xorg-xserver-server-%{_xserverver}/* unix/xserver
cd unix/xserver
@@ -302,6 +304,11 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.43 2011/09/01 10:54:00 baggins
+- rel 4
+- ipv6 support for vnc server and listem mode of client
+ http://www.mail-archive.com/tigervnc-devel@lists.sourceforge.net/msg01287.html
+
Revision 1.42 2011/08/31 20:04:41 baggins
- no more snap
================================================================
Index: packages/tigervnc/tigervnc-ipv6.patch
diff -u /dev/null packages/tigervnc/tigervnc-ipv6.patch:1.1
--- /dev/null Thu Sep 1 12:54:05 2011
+++ packages/tigervnc/tigervnc-ipv6.patch Thu Sep 1 12:54:00 2011
@@ -0,0 +1,101 @@
+--- common/network/TcpSocket.cxx.orig 2010-02-12 03:19:32.000000000 -0600
++++ common/network/TcpSocket.cxx 2011-04-11 10:58:52.000000000 -0500
+@@ -339,9 +339,38 @@
+ return;
+ }
+
++ bool use_ipv6;
++ int af;
++#ifdef AF_INET6
++ // - localhostOnly will mean "127.0.0.1 only", no IPv6
++ if (use_ipv6 = !localhostOnly)
++ af = AF_INET6;
++ else
++ af = AF_INET;
++#else
++ use_ipv6 = false;
++ af = AF_INET;
++#endif
++
+ initSockets();
+- if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
+- throw SocketException("unable to create listening socket", errorNumber);
++ if ((fd = socket(af, SOCK_STREAM, 0)) < 0) {
++ // - Socket creation failed
++ if (use_ipv6) {
++ // - We were trying to make an IPv6-capable socket - try again, but IPv4-only
++ use_ipv6 = false;
++ af = AF_INET;
++ fd = socket(af, SOCK_STREAM, 0);
++ }
++ if (fd < 0)
++ throw SocketException("unable to create listening socket", errorNumber);
++ } else {
++ // - Socket creation succeeded
++ if (use_ipv6) {
++ // - We made an IPv6-capable socket, and we need it to do IPv4 too
++ int opt = 0;
++ setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &opt, sizeof(opt));
++ }
++ }
+
+ #ifndef WIN32
+ // - By default, close the socket on exec()
+@@ -358,27 +387,39 @@
+
+ // - Bind it to the desired port
+ struct sockaddr_in addr;
+- memset(&addr, 0, sizeof(addr));
+- addr.sin_family = AF_INET;
+-
+- if (localhostOnly) {
+- addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+- } else if (listenaddr != NULL) {
++ struct sockaddr_in6 addr6;
++ struct sockaddr *sa;
++ int sa_len;
++
++ if (use_ipv6) {
++ sa_len = sizeof(addr6);
++ memset(&addr6, 0, sa_len);
++ addr6.sin6_family = af;
++ addr6.sin6_port = htons(port);
++ sa = (struct sockaddr*) &addr6;
++ } else {
++ sa_len = sizeof(addr);
++ memset(&addr, 0, sa_len);
++ addr.sin_family = af;
++ addr.sin_port = htons(port);
++ if (localhostOnly)
++ addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
++ else if (listenaddr != NULL) {
+ #ifdef HAVE_INET_ATON
+- if (inet_aton(listenaddr, &addr.sin_addr) == 0)
++ if (inet_aton(listenaddr, &addr.sin_addr) == 0)
+ #else
+- /* Some systems (e.g. Windows) do not have inet_aton, sigh */
+- if ((addr.sin_addr.s_addr = inet_addr(listenaddr)) == INADDR_NONE)
++ /* Some systems (e.g. Windows) do not have inet_aton, sigh */
++ if ((addr.sin_addr.s_addr = inet_addr(listenaddr)) == INADDR_NONE)
+ #endif
+- {
+- closesocket(fd);
+- throw Exception("invalid network interface address: %s", listenaddr);
+- }
+- } else
+- addr.sin_addr.s_addr = htonl(INADDR_ANY); /* Bind to 0.0.0.0 by default. */
+-
+- addr.sin_port = htons(port);
+- if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
++ {
++ closesocket(fd);
++ throw Exception("invalid network interface address: %s", listenaddr);
++ }
++ } else
++ addr.sin_addr.s_addr = htonl(INADDR_ANY); /* Bind to 0.0.0.0 by default. */
++ sa = (struct sockaddr*) &addr;
++ }
++ if (bind(fd, sa, sa_len) < 0) {
+ int e = errorNumber;
+ closesocket(fd);
+ throw SocketException("unable to bind listening socket", e);
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/tigervnc/tigervnc.spec?r1=1.42&r2=1.43&f=u
More information about the pld-cvs-commit
mailing list