---- 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;
-
---- 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");
-
---- shairplay-0.9.0.orig/src/shairplay.c
-+++ shairplay-0.9.0/src/shairplay.c
-@@ -313,8 +313,11 @@ main(int argc, char *argv[])
+--- a/src/shairplay.c
++++ b/src/shairplay.c
+@@ -346,10 +346,10 @@
+ raop_cbs.audio_destroy = audio_destroy;
+ raop_cbs.audio_set_volume = audio_set_volume;
- raop = raop_init_from_keyfile(10, &raop_cbs, "airport.key", NULL);
+- raop = raop_init_from_keyfile(10, &raop_cbs, "airport.key", NULL);
++ raop = raop_init_from_keyfile(10, &raop_cbs, "/etc/shairplay/airport.key", NULL);
if (raop == NULL) {
-- fprintf(stderr, "Could not initialize the RAOP service\n");
-- return -1;
-+ raop = raop_init_from_keyfile(10, &raop_cbs, "/etc/shairplay/airport.key", NULL);
-+ if (raop == NULL) {
-+ fprintf(stderr, "Could not initialize the RAOP service\n");
-+ return -1;
-+ }
+ fprintf(stderr, "Could not initialize the RAOP service\n");
+- fprintf(stderr, "Please make sure the airport.key file is in the current directory.\n");
++ fprintf(stderr, "Please make sure the /etc/shairplay/airport.key file is in the current directory.\n");
+ return -1;
}
- if (strlen(options.password)) {