summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authoredwin <edwin@FreeBSD.org>2003-09-01 03:06:48 +0000
committeredwin <edwin@FreeBSD.org>2003-09-01 03:06:48 +0000
commit9b0abce8e93b027ea769acf6a997a7953121179b (patch)
tree01782bc4e2fdd9193f7ebea3ac3b4836ecd11f96 /audio
parent6449b70130ca21a2195f7bd573c278167bff36e6 (diff)
downloadFreeBSD-ports-9b0abce8e93b027ea769acf6a997a7953121179b.zip
FreeBSD-ports-9b0abce8e93b027ea769acf6a997a7953121179b.tar.gz
Bug in audio/shout when using with SHOUTcast Server 1.9.2
Shout is streaming client for icecast and shoutcast streaming servers. It works well with SHOUTcast Server Version 1.9.2/FreeBSD4 (with -i key (Use old icy headers)),But if you try to enable title streaming (-t key) (without it clients don't see what song is playing). There are two problems why it doesn't work: 1. By default shoutcast expects source stremer connection on 8001 port, and listeners on 8000 port. (steamer port is listener_port+1). Shout streams mp3 music on port 8001 (from config file or command line), but title streaming is done on listener port through web admin interface. (http://server:port//admin.cgi?pass=password&;mode=updinfo&song=Song Title) Without patch shout tries to update info on streamer, and not listener port and this doesn't work. I attached patch which reduces port number by one, which is right (listener) port number. 2. With this fix shout connects to right port, but still doesn't update song title. From shoutcast documentation I've found that now shoutcast accepts update post (see above) only with useragent Mozilla ant shout gives useragent Shout/0.8.0. Informed maintainer PR: ports/48771 Submitted by: Justas Gurinavicius <raktas@raktas.net>
Diffstat (limited to 'audio')
-rw-r--r--audio/shout/Makefile1
-rw-r--r--audio/shout/files/patch-shout.c20
2 files changed, 21 insertions, 0 deletions
diff --git a/audio/shout/Makefile b/audio/shout/Makefile
index 396ae71..eeb486e 100644
--- a/audio/shout/Makefile
+++ b/audio/shout/Makefile
@@ -7,6 +7,7 @@
PORTNAME= shout
PORTVERSION= 0.8.0
+PORTREVISION= 1
CATEGORIES= audio net
MASTER_SITES= http://www.icecast.org/releases/
diff --git a/audio/shout/files/patch-shout.c b/audio/shout/files/patch-shout.c
new file mode 100644
index 0000000..55a3928
--- /dev/null
+++ b/audio/shout/files/patch-shout.c
@@ -0,0 +1,20 @@
+--- shout.c.orig Thu Apr 20 00:31:50 2000
++++ shout.c Sun Aug 31 19:59:41 2003
+@@ -1738,7 +1738,7 @@
+ void
+ update_meta_info_on_server (char *filename, unsigned long int size)
+ {
+- sock_t sockfd = sock_connect (set.servername, set.port);
++ sock_t sockfd = sock_connect (set.servername, set.port-1);
+ char title[BUFSIZE]; /* copy of filename */
+ char *song = NULL;
+ char *mount = NULL;
+@@ -1815,7 +1815,7 @@
+
+ if (sockfd != -1) {
+ if (set.use_icy) {
+- sock_write (sockfd, "GET /admin.cgi?pass=%s&mode=updinfo&song=%s HTTP/1.0\nHost: %s:%d\nUser-Agent: Shout/%s\n\n", set.password, url_encode (titleptr, &song), set.servername, set.port, VERSION);
++ sock_write (sockfd, "GET /admin.cgi?pass=%s&mode=updinfo&song=%s HTTP/1.0\nHost: %s:%d\nUser-Agent: Mozilla(Shout/%s)\n\n", set.password, url_encode (titleptr, &song), set.servername, set.port, VERSION);
+ } else {
+ sock_write (sockfd, "GET /admin.cgi?pass=%s&mode=updinfo&mount=%s&song=%s&length=%ld HTTP/1.0\nHost: %s:%d\nUser-Agent: Shout/%s\n\n", set.password, url_encode (set.mount_name, &mount), url_encode (titleptr, &song), size, set.servername, set.port, VERSION);
+ if (mount)
OpenPOWER on IntegriCloud