r17919 - in /desktop/experimental/vino/debian: changelog patches/ patches/01_localonly_ipv4.patch rules

joss at users.alioth.debian.org joss at users.alioth.debian.org
Wed Dec 10 18:16:54 UTC 2008


Author: joss
Date: Wed Dec 10 18:16:54 2008
New Revision: 17919

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=17919
Log:
* Use simple-patchsys.
* 01_localonly_ipv4.patch: patch from Andreas Henriksson to work with 
  IPv4 when only local connections are accepted. Closes: #480863.

Added:
    desktop/experimental/vino/debian/patches/
    desktop/experimental/vino/debian/patches/01_localonly_ipv4.patch
Modified:
    desktop/experimental/vino/debian/changelog
    desktop/experimental/vino/debian/rules

Modified: desktop/experimental/vino/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/vino/debian/changelog?rev=17919&op=diff
==============================================================================
--- desktop/experimental/vino/debian/changelog (original)
+++ desktop/experimental/vino/debian/changelog Wed Dec 10 18:16:54 2008
@@ -13,6 +13,9 @@
 
   [ Josselin Mouette ]
   * Recommend gvfs for gtk_show_uri.
+  * Use simple-patchsys.
+  * 01_localonly_ipv4.patch: patch from Andreas Henriksson to work with 
+    IPv4 when only local connections are accepted. Closes: #480863.
 
  -- Josselin Mouette <joss at debian.org>  Wed, 10 Dec 2008 18:35:27 +0100
 

Added: desktop/experimental/vino/debian/patches/01_localonly_ipv4.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/vino/debian/patches/01_localonly_ipv4.patch?rev=17919&op=file
==============================================================================
--- desktop/experimental/vino/debian/patches/01_localonly_ipv4.patch (added)
+++ desktop/experimental/vino/debian/patches/01_localonly_ipv4.patch Wed Dec 10 18:16:54 2008
@@ -1,0 +1,105 @@
+--- vino-2.22.2/server/libvncserver/sockets.c	2008-05-21 22:31:04.000000000 +0200
++++ vino-2.22.2-fixed/server/libvncserver/sockets.c	2008-09-11 08:20:25.000000000 +0200
+@@ -552,52 +552,55 @@ ListenOnTCPPort(port, localOnly)
+     int port;
+     rfbBool localOnly;
+ {
+-    int sock = -1;
+-    int one = 1;
+-    struct sockaddr_in addr_in;
+-    struct sockaddr *addr;
+-    socklen_t addrlen;
+-
+-#ifdef ENABLE_IPV6
+-    struct sockaddr_in6 addr_in6;
+-
+-    memset(&addr_in6, 0, sizeof(addr_in6));
+-    addr_in6.sin6_family = AF_INET6;
+-    addr_in6.sin6_port = htons(port);
+-    addr_in6.sin6_addr = localOnly ? in6addr_loopback : in6addr_any;
+-
+-    addr = (struct sockaddr *)&addr_in6;
+-    addrlen = sizeof(addr_in6);
+-
+-    sock = socket(AF_INET6, SOCK_STREAM, 0);
+-#endif
+-
+-    if (sock < 0) {
+-        if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
+-            return -1;
+-
+-        memset(&addr_in, 0, sizeof(addr_in));
+-        addr_in.sin_family = AF_INET;
+-        addr_in.sin_port = htons(port);
+-        addr_in.sin_addr.s_addr = localOnly ? htonl(INADDR_LOOPBACK) : htonl(INADDR_ANY);
+-
+-        addr = (struct sockaddr *)&addr_in;
+-        addrlen = sizeof(addr_in);
+-    }
+-
+-    if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
+-		   (char *)&one, sizeof(one)) < 0) {
+-	close(sock);
+-	return -1;
+-    }
+-    if (bind(sock, addr, addrlen) < 0) {
+-	close(sock);
+-	return -1;
+-    }
+-    if (listen(sock, 5) < 0) {
+-	close(sock);
+-	return -1;
+-    }
++	int sock, err;
++	struct addrinfo hints, *res, *curr;
++	char service[NI_MAXSERV];
++
++	memset(&hints, 0, sizeof(hints));
++	hints.ai_family = AF_UNSPEC;
++	hints.ai_socktype = SOCK_STREAM;
++	hints.ai_protocol = IPPROTO_TCP;
++	hints.ai_flags = AI_PASSIVE;
++
++	snprintf(service, sizeof(service), "%d", port);
++	err = getaddrinfo(localOnly ? "localhost" : NULL, service,
++			&hints, &res);
++	if (err) {
++		//fprintf(stderr, "ERROR: getaddrinfo() failed: %s\n", gai_strerror(err));
++		return err;
++	}
++
++	for (curr = res; curr != NULL; curr = curr->ai_next) {
++		sock = socket(curr->ai_family, curr->ai_socktype,
++				curr->ai_protocol);
++		if (sock < 0)
++			continue;
++
++		err = 1;
++    		setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &err, sizeof(err));
++
++		err = 0;
++		setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &err, sizeof(err));
++
++		err = bind(sock, curr->ai_addr, curr->ai_addrlen);
++		if (err) {
++			close(sock);
++			continue;
++		}
++
++		err = listen(sock, 5);
++		if (err) {
++			close(sock);
++			continue;
++		}
++
++		break;
++	}
+ 
+-    return sock;
++	if (curr == NULL)
++		sock = -1;
++
++	freeaddrinfo(res);
++
++	return sock;
+ }

Modified: desktop/experimental/vino/debian/rules
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/vino/debian/rules?rev=17919&op=diff
==============================================================================
--- desktop/experimental/vino/debian/rules (original)
+++ desktop/experimental/vino/debian/rules Wed Dec 10 18:16:54 2008
@@ -1,6 +1,7 @@
 #! /usr/bin/make -f
 
 include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/simple-patchsys.mk
 include /usr/share/cdbs/1/class/gnome.mk
 include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk
 -include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk




More information about the pkg-gnome-commits mailing list