aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmarshallnz <jcmarsha@gmail.com>2014-03-27 07:56:01 +1300
committerTrent Nelson <trent.a.b.nelson@gmail.com>2014-03-26 19:51:41 -0600
commit342c737178fc44e009239a62a848df0bfcbe0eed (patch)
treecb45c1ea60bab98c950c058aaa6994932de45f32
parentd55e0e45064ade40eef8dc5e616da5783d55fe18 (diff)
Merge pull request #4476 from Memphiz/shairplayfix
[shairplay] - upstream backports - fix password protection and socket race condition
-rw-r--r--project/BuildDependencies/scripts/0_package.list2
-rw-r--r--tools/depends/target/libshairplay/02-fixipv4ipv6race.patch27
-rw-r--r--tools/depends/target/libshairplay/03-fixpasswordauthitunes.patch22
-rw-r--r--tools/depends/target/libshairplay/Makefile2
4 files changed, 52 insertions, 1 deletions
diff --git a/project/BuildDependencies/scripts/0_package.list b/project/BuildDependencies/scripts/0_package.list
index 9dbb6122bc..3c16481e80 100644
--- a/project/BuildDependencies/scripts/0_package.list
+++ b/project/BuildDependencies/scripts/0_package.list
@@ -14,7 +14,7 @@ libass-0.10.2-win32.7z
libbluray-0.4.0-win32.zip
libjpeg-turbo-1.2.0-win32.7z
libnfs-1.3.0-win32.7z
-libshairplay-c159ca7-win32.7z
+libshairplay-41a66c9-win32.7z
libssh-0.5.0-1-win32.zip
libxml2-2.7.8_1-win32.7z
libxslt-1.1.26_1-win32.7z
diff --git a/tools/depends/target/libshairplay/02-fixipv4ipv6race.patch b/tools/depends/target/libshairplay/02-fixipv4ipv6race.patch
new file mode 100644
index 0000000000..4580d3cf7d
--- /dev/null
+++ b/tools/depends/target/libshairplay/02-fixipv4ipv6race.patch
@@ -0,0 +1,27 @@
+From ac9240fa569df5a10d534a4cd45740a44ee00f63 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?= <juhovh@iki.fi>
+Date: Mon, 24 Mar 2014 20:35:29 +0200
+Subject: [PATCH] Fix #23 on issue tracker.
+
+There is a race condition if IPv4 and IPv6 connections come at the same time.
+---
+ src/lib/httpd.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/lib/httpd.c b/src/lib/httpd.c
+index 1d9e7e2..f081c5e 100644
+--- a/src/lib/httpd.c
++++ b/src/lib/httpd.c
+@@ -237,7 +237,8 @@ struct httpd_s {
+ continue;
+ }
+ }
+- if (httpd->server_fd6 != -1 && FD_ISSET(httpd->server_fd6, &rfds)) {
++ if (httpd->open_connections < httpd->max_connections &&
++ httpd->server_fd6 != -1 && FD_ISSET(httpd->server_fd6, &rfds)) {
+ ret = httpd_accept_connection(httpd, httpd->server_fd6, 1);
+ if (ret == -1) {
+ break;
+--
+1.8.5.5
+
diff --git a/tools/depends/target/libshairplay/03-fixpasswordauthitunes.patch b/tools/depends/target/libshairplay/03-fixpasswordauthitunes.patch
new file mode 100644
index 0000000000..2db60b32f4
--- /dev/null
+++ b/tools/depends/target/libshairplay/03-fixpasswordauthitunes.patch
@@ -0,0 +1,22 @@
+From 8e6795779558d2828aef14078fefbcadd5323fa6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Juho=20V=C3=A4h=C3=A4-Herttua?= <juhovh@iki.fi>
+Date: Mon, 24 Mar 2014 21:43:59 +0200
+Subject: [PATCH] Make password authentication work on iTunes again, fixes #20.
+
+---
+ src/lib/raop.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/src/lib/raop.c b/src/lib/raop.c
+index e5c6539..a58e92f 100644
+--- a/src/lib/raop.c.orig 2013-04-17 15:17:49.000000000 +0200
++++ b/src/lib/raop.c 2014-03-24 23:22:30.000000000 +0100
+@@ -139,7 +139,7 @@
+ }
+
+ res = http_response_init("RTSP/1.0", 200, "OK");
+- if (strlen(raop->password)) {
++ if (strcmp(method, "OPTIONS") && strlen(raop->password)) {
+ const char *authorization;
+
+ authorization = http_request_get_header(request, "Authorization");
diff --git a/tools/depends/target/libshairplay/Makefile b/tools/depends/target/libshairplay/Makefile
index f86ce82a0b..71dbbb6f36 100644
--- a/tools/depends/target/libshairplay/Makefile
+++ b/tools/depends/target/libshairplay/Makefile
@@ -24,6 +24,8 @@ $(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
ifeq ($(OS),ios)
cd $(PLATFORM); patch -p1 < ../xcode-llmvfix.patch
endif
+ cd $(PLATFORM); patch -p1 < ../02-fixipv4ipv6race.patch
+ cd $(PLATFORM); patch -p1 < ../03-fixpasswordauthitunes.patch
cd $(PLATFORM); $(AUTORECONF) -vif
cd $(PLATFORM); $(CONFIGURE)