summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasmine Hassan <[email protected]>2012-10-29 07:15:08 +0200
committerJasmine Hassan <[email protected]>2012-10-29 08:18:46 +0200
commit366798a5cd8020de0c1771ca58e2b5c02ce6a482 (patch)
tree6f641ed0231997af4e41071515a30c9f657fe07f
parent9af4eb021fd5b34ec1fa4ee6eb01eab0b3924ebc (diff)
downloadmate-user-share-366798a5cd8020de0c1771ca58e2b5c02ce6a482.tar.bz2
mate-user-share-366798a5cd8020de0c1771ca58e2b5c02ce6a482.tar.xz
[http] Fix http sharing not workin on Linux 3.0
gnome-user-share tries to discover a free port to run Apache on by bind()ing a struct sockaddr_in with no port specified in src/http.c:get_port(). However, it neglects to specify an address family, so that attempt fails with EINVAL, and the -1 returned gets passed to spawn_httpd() as the port that Apache should be listening on, which causes to Apache promptly and silently bail. This error was caused by a regression in Linux 3.0: http://thread.gmane.org/gmane.linux.network/205326/focus=205328 https://bugzilla.gnome.org/show_bug.cgi?id=660146 http://git.gnome.org/browse/gnome-user-share/commit/?id=24cc0e2ecc60619af0e51e730ef68bf750182dcf
-rw-r--r--src/http.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/http.c b/src/http.c
index 1dff01d..c07a202 100644
--- a/src/http.c
+++ b/src/http.c
@@ -79,6 +79,7 @@ get_port (void)
memset (&addr, 0, sizeof (addr));
addr.sin_port = 0;
addr.sin_addr.s_addr = INADDR_ANY;
+ addr.sin_family = AF_INET;
reuse = 1;
setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof (reuse));