Bug#561440: vino: diff for NMU version 2.28.1-2.1
Thorsten Glaser
tg at mirbsd.de
Sat Jan 23 13:39:42 UTC 2010
tags 561440 + patch
thanks
Dear Jordi,
I have prepared an NMU for vino (version 2.28.1-2.1) to use
two (IPv4+IPv6) sockets instead of one, thus work on kFreeBSD
and with the recent netbase changes.
I’ll have it uploaded to according to devref §5.11, patch attached.
bye,
//mirabilos
--
Sometimes they [people] care too much: pretty printers [and syntax highligh-
ting, d.A.] mechanically produce pretty output that accentuates irrelevant
detail in the program, which is as sensible as putting all the prepositions
in English text in bold font. -- Rob Pike in "Notes on Programming in C"
-------------- next part --------------
diff -u vino-2.28.1/debian/changelog vino-2.28.1/debian/changelog
--- vino-2.28.1/debian/changelog
+++ vino-2.28.1/debian/changelog
@@ -1,3 +1,12 @@
+vino (2.28.1-2.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * debian/patches/01_ipv6-fix.patch: New, use two listening sockets
+ (one for IPv4, one for IPv6) and disable use of ipv4-mapped IPv6
+ addresses. (Closes: #561440)
+
+ -- Thorsten Glaser <tg at mirbsd.de> Sat, 23 Jan 2010 13:01:31 +0000
+
vino (2.28.1-2) unstable; urgency=low
* Only require NM on Linux architectures.
only in patch2:
unchanged:
--- vino-2.28.1.orig/debian/patches/01_ipv6-fix.patch
+++ vino-2.28.1/debian/patches/01_ipv6-fix.patch
@@ -0,0 +1,69 @@
+--- server/libvncserver/sockets.c.orig 2009-05-12 11:39:33.000000000 +0000
++++ server/libvncserver/sockets.c 2010-01-23 13:00:12.000000000 +0000
+@@ -578,6 +578,7 @@ ListenOnTCPPort(rfbScreenInfoPtr rfbScre
+ if(netIface == NULL || strlen(netIface) == 0)
+ {
+ #ifdef ENABLE_IPV6
++ int sock6 = -1;
+ struct sockaddr_in6 s6;
+
+ memset(&s6, 0, sizeof(s6));
+@@ -585,10 +586,10 @@ ListenOnTCPPort(rfbScreenInfoPtr rfbScre
+ s6.sin6_port = htons(port);
+ s6.sin6_addr = in6addr_any;
+
+- sock = NewSocketListenTCP ((struct sockaddr*)&s6, sizeof(s6));
+- rfbLog("Listening IPv{4,6}://*:%d\n", port);
++ sock6 = NewSocketListenTCP ((struct sockaddr*)&s6, sizeof(s6));
++ rfbLog("Listening IPv6://[::]:%d\n", port);
+ #endif
+- if(sock < 0) {
++
+ struct sockaddr_in s4;
+
+ memset(&s4, 0, sizeof(s4));
+@@ -598,15 +599,23 @@ ListenOnTCPPort(rfbScreenInfoPtr rfbScre
+
+ sock = NewSocketListenTCP ((struct sockaddr*)&s4, sizeof(s4));
+ rfbLog("Listening IPv4://0.0.0.0:%d\n", port);
+- }
+
++#ifdef ENABLE_IPV6
++ if(sock6 > 0) {
++ psock[*ptot] = sock6;
++ *ptot += 1;
++ }
++#endif
+ if(sock > 0) {
+- psock[0] = sock;
+- *ptot = 1;
+- return TRUE;
++ psock[*ptot] = sock;
++ *ptot += 1;
+ }
+
+- rfbLog("Problems in NewSocketListenTCP(), sock=%d\n", sock);
++ if (*ptot)
++ return TRUE;
++
++ /* no need to log sock/sock6, both are -1 here */
++ rfbLog("Problems in NewSocketListenTCP()\n");
+ return FALSE;
+ }
+
+@@ -676,6 +685,15 @@ NewSocketListenTCP(struct sockaddr *addr
+ return -1;
+ }
+
++#ifdef ENABLE_IPV6
++ if (addr->sa_family == AF_INET6) {
++#if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY)
++ setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&one, sizeof(one));
++ /* we cannot really check for errors here */
++#endif
++ }
++#endif
++
+ if (bind(sock, addr, len) < 0) {
+ close(sock);
+ return -1;
More information about the pkg-gnome-maintainers
mailing list