Package: libapache2-mod-musicindex
Version: 0.99.5.2
Severity: normal
I run my house server exclusively over SSL. I recently installed and configured
the musicindex mod for Apache2 and noted that the URLs pointing to the icecast
server picked up the https state from the request_rec. XMMS and other players
cannot stream via https, but they can get the playlist. I am including a patch
which corrected this issue for me.
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.10-awtrey
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages libapache2-mod-musicindex depends on:
ii apache2-common 2.0.53-5 next generation, scalable, extenda
ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an
ii libflac6 1.1.1-5 Free Lossless Audio Codec - runtim
ii libid3tag0 0.15.1b-4.1 ID3 tag reading library from the M
ii libmad0 0.15.1b-1.1 MPEG audio decoder library
ii libvorbis0a 1.1.0-1 The Vorbis General Audio Compressi
ii libvorbisfile3 1.1.0-1 The Vorbis General Audio Compressi
ii mod-musicindex-common 0.99.5.2 Common files for mod-musicindex
-- no debconf information
diff -urN libapache-mod-musicindex-0.99.5.2.org/html.c libapache-mod-musicindex-0.99.5.2/html.c
--- libapache-mod-musicindex-0.99.5.2.org/html.c 2005-04-14 20:32:18.447108905 -0400
+++ libapache-mod-musicindex-0.99.5.2/html.c 2005-04-14 20:55:27.257756659 -0400
@@ -419,12 +419,15 @@
char *bufcoded, *decoded;
unsigned short l;
- strcpy(prefix, ap_http_method(r));
- strcat(prefix, "://");
-
/* If we have an icecast server, it takes precedence, in a 'staticdir' fashion.
If we're sending an RSS feed, it's up to us to send the ?stream links. */
if ((conf->iceserver) && !(conf->options & MI_RSS)) {
+
+ /* If we are sending to an icecast server, we want to force http
+ rather than allow https connections that will never work */
+ prefix[0] = '\0';
+ strcat(prefix, "http://");
+
/* if we only have a port number, we assume icecast is running on the same host */
if (conf->iceserver[0] == ':')
strcat(prefix, r->hostname);
@@ -432,6 +435,10 @@
strcat(prefix, conf->iceserver);
}
else {
+
+ strcpy(prefix, ap_http_method(r));
+ strcat(prefix, "://");
+
if (REQUEST_USER(r)) {
/* grab the auth credentials base64 encoded */
const char *auth = ap_table_get(r->headers_in, "Authorization");