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