[xiph-commits] r15526 - in icecast/branches/kh/icecast: . src win32

karl at svn.xiph.org karl at svn.xiph.org
Tue Nov 18 18:15:55 PST 2008


Author: karl
Date: 2008-11-18 18:15:53 -0800 (Tue, 18 Nov 2008)
New Revision: 15526

Modified:
   icecast/branches/kh/icecast/NEWS
   icecast/branches/kh/icecast/config.h.vc6
   icecast/branches/kh/icecast/configure.in
   icecast/branches/kh/icecast/src/admin.c
   icecast/branches/kh/icecast/src/auth.c
   icecast/branches/kh/icecast/src/cfgfile.c
   icecast/branches/kh/icecast/src/cfgfile.h
   icecast/branches/kh/icecast/src/connection.c
   icecast/branches/kh/icecast/src/format_mp3.c
   icecast/branches/kh/icecast/src/format_mp3.h
   icecast/branches/kh/icecast/src/format_skeleton.c
   icecast/branches/kh/icecast/src/global.h
   icecast/branches/kh/icecast/src/source.c
   icecast/branches/kh/icecast/src/stats.c
   icecast/branches/kh/icecast/src/stats.h
   icecast/branches/kh/icecast/win32/Icecast2winDlg.cpp
   icecast/branches/kh/icecast/win32/icecast2.iss
Log:
commit a number of small fixes and cleanups from feeback. added
streamurl metadata via admin req for non-ogg as it wasn't a biggie


Modified: icecast/branches/kh/icecast/NEWS
===================================================================
--- icecast/branches/kh/icecast/NEWS	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/NEWS	2008-11-19 02:15:53 UTC (rev 15526)
@@ -15,6 +15,26 @@
 any extra tags are show in the conf/icecast.xml.dist file
 
 
+2.3.2-kh6
+. some source stats were not being reported on the xsl pages.
+. win32 access log timestamps should now to correct.
+
+2.3.2-kh5
+. stats fixes, crash case in stats handling, and hidden attribute was not honoured
+  on xsl pages with recent stats changes.
+. if requesting /admin/streams via stats method then allow auth via relay user/pass
+  or mountpoint auth. receives only stats for slaves
+. allow url= tag on metadata update for non-ogg streams, adds StreamUrl.
+. fixed possible crash with skeleton stream handling
+. actually prevent metadata updates if there is a stream already running from a
+  different IP.
+. fix build bug on FBSD7
+. allow optional queue-len tag in listen-socket, default is 10
+
+2.3.2-kh4
+. Where's the brown paper bag. boolean settings in the xml were being ignored due
+  to an incorrect test. 
+
 2.3.2-kh3
 . fixed master not informing slaves of streams bug. caused by missed setting in
   the kh2 stats update

Modified: icecast/branches/kh/icecast/config.h.vc6
===================================================================
--- icecast/branches/kh/icecast/config.h.vc6	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/config.h.vc6	2008-11-19 02:15:53 UTC (rev 15526)
@@ -95,7 +95,7 @@
 #define PACKAGE_NAME "Icecast"
 
 /* Version number of package */
-#define VERSION "2.3.2-kh3"
+#define VERSION "2.3.2-kh6"
 
 /* Define to the version of this package. */
 #define PACKAGE_VERSION VERSION

Modified: icecast/branches/kh/icecast/configure.in
===================================================================
--- icecast/branches/kh/icecast/configure.in	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/configure.in	2008-11-19 02:15:53 UTC (rev 15526)
@@ -1,4 +1,4 @@
-AC_INIT([Icecast], [2.3.2-kh3], [karl at xiph.org])
+AC_INIT([Icecast], [2.3.2-kh6], [karl at xiph.org])
 
 AC_PREREQ(2.59)
 AC_CONFIG_SRCDIR(src/main.c)
@@ -33,7 +33,7 @@
 AC_HEADER_STDC
 AC_HEADER_TIME
 
-AC_CHECK_HEADERS([alloca.h fnmatch.h])
+AC_CHECK_HEADERS([alloca.h fnmatch.h limits.h])
 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(CHUID, 1, [Define if you have pwd.h]),,)
 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(CHROOT, 1, [Define if you have unistd.h]),,)
 

Modified: icecast/branches/kh/icecast/src/admin.c
===================================================================
--- icecast/branches/kh/icecast/src/admin.c	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/admin.c	2008-11-19 02:15:53 UTC (rev 15526)
@@ -986,7 +986,7 @@
 static void command_metadata(client_t *client, source_t *source,
     int response)
 {
-    const char *song, *title, *artist, *artwork, *charset;
+    const char *song, *title, *artist, *artwork, *charset, *url;
     format_plugin_t *plugin;
     xmlDocPtr doc;
     xmlNodePtr node;
@@ -1001,6 +1001,7 @@
     COMMAND_OPTIONAL(client, "song", song);
     COMMAND_OPTIONAL(client, "title", title);
     COMMAND_OPTIONAL(client, "artist", artist);
+    COMMAND_OPTIONAL(client, "url", url);
     COMMAND_OPTIONAL(client, "artwork", artwork);
     COMMAND_OPTIONAL(client, "charset", charset);
 
@@ -1013,12 +1014,17 @@
 
     do
     {
-        if (same_ip == 0 && plugin == NULL)
+        if (same_ip == 0 || plugin == NULL)
             break;
         if (artwork)
             stats_event (source->mount, "artwork", artwork);
-        else if (plugin->set_tag)
+        if (plugin->set_tag)
         {
+            if (url)
+            {
+                plugin->set_tag (plugin, "url", url, charset);
+                INFO2 ("Metadata url on %s set to \"%s\"", source->mount, url);
+            }
             if (song)
             {
                 plugin->set_tag (plugin, "song", song, charset);
@@ -1034,6 +1040,8 @@
                             source->mount, artist, title);
                 }
             }
+            /* updates are now done, let them be pushed into the stream */
+            plugin->set_tag (plugin, NULL, NULL, NULL);
         }
         else
         {

Modified: icecast/branches/kh/icecast/src/auth.c
===================================================================
--- icecast/branches/kh/icecast/src/auth.c	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/auth.c	2008-11-19 02:15:53 UTC (rev 15526)
@@ -537,12 +537,14 @@
 {
     int ret = 0;
 
+    client->authenticated = 1;
+
     /* check whether we are processing a streamlist request for slaves */
     if (strcmp (mount, "/admin/streams") == 0)
     {
-        if (client->authenticated == 0)
+        if (client->parser->req_type == httpp_req_stats)
         {
-            client_send_401 (client, NULL);
+            stats_add_listener (client, STATS_SLAVE|STATS_GENERAL);
             return 0;
         }
         mount = httpp_get_query_param (client->parser, "mount");
@@ -553,7 +555,6 @@
         }
         mountinfo = config_find_mount (config_get_config_unlocked(), mount);
     }
-    client->authenticated = 1;
 
     /* Here we are parsing the URI request to see if the extension is .xsl, if
      * so, then process this request as an XSLT request

Modified: icecast/branches/kh/icecast/src/cfgfile.c
===================================================================
--- icecast/branches/kh/icecast/src/cfgfile.c	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/cfgfile.c	2008-11-19 02:15:53 UTC (rev 15526)
@@ -100,7 +100,7 @@
  */
 int config_get_bool (xmlNodePtr node, void *x)
 {   
-    if (xmlNodeIsText (node))
+    if (xmlIsBlankNode (node) == 0)
     {
         char *str = (char *)xmlNodeListGetString (node->doc, node->xmlChildrenNode, 1);
         if (str == NULL)
@@ -972,6 +972,7 @@
         { "port",               config_get_int,     &listener->port },
         { "shoutcast-compat",   config_get_bool,    &listener->shoutcast_compat },
         { "bind-address",       config_get_str,     &listener->bind_address },
+        { "queue-len",          config_get_int,     &listener->qlen },
         { "ssl",                config_get_bool,    &listener->ssl },
         { "shoutcast-mount",    config_get_str,     &listener->shoutcast_mount },
         { NULL, NULL, NULL },
@@ -979,12 +980,15 @@
 
     listener->refcount = 1;
     listener->port = 8000;
+    listener->qlen = ICE_LISTEN_QUEUE;
     if (parse_xml_tags (node, icecast_tags))
     {
         config_clear_listener (listener);
         return -1;
     }
 
+    if (listener->qlen < 1)
+        listener->qlen = ICE_LISTEN_QUEUE;
     listener->next = config->listen_sock;
     config->listen_sock = listener;
     config->listen_sock_count++;
@@ -994,6 +998,7 @@
         listener_t *sc_port = calloc (1, sizeof (listener_t));
         sc_port->refcount = 1;
         sc_port->port = listener->port+1;
+        sc_port->qlen = listener->qlen;
         sc_port->shoutcast_compat = 1;
         sc_port->shoutcast_mount = (char*)xmlStrdup (XMLSTR(listener->shoutcast_mount));
         if (listener->bind_address)

Modified: icecast/branches/kh/icecast/src/cfgfile.h
===================================================================
--- icecast/branches/kh/icecast/src/cfgfile.h	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/cfgfile.h	2008-11-19 02:15:53 UTC (rev 15526)
@@ -127,8 +127,9 @@
     int refcount;
     int port;
     char *bind_address;
+    char *shoutcast_mount;
+    int qlen;
     int shoutcast_compat;
-    char *shoutcast_mount;
     int ssl;
 };
 

Modified: icecast/branches/kh/icecast/src/connection.c
===================================================================
--- icecast/branches/kh/icecast/src/connection.c	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/connection.c	2008-11-19 02:15:53 UTC (rev 15526)
@@ -1122,16 +1122,12 @@
 {
     if (connection_check_admin_pass (client->parser) == 0)
     {
-        client_send_401 (client, NULL);
-        ERROR0("Bad password for stats connection");
+        auth_add_listener (uri, client);
         return;
     }
 
-    client->respcode = 200;
-    snprintf (client->refbuf->data, PER_CLIENT_REFBUF_SIZE,
-            "HTTP/1.0 200 OK\r\ncapability: streamlist\r\n\r\n");
-    client->refbuf->len = strlen (client->refbuf->data);
-    fserve_add_client_callback (client, stats_callback, NULL);
+    client->authenticated = 1;
+    stats_add_listener (client, STATS_ALL);
 }
 
 static void check_for_filtering (ice_config_t *config, client_t *client)
@@ -1488,7 +1484,7 @@
             sock_t sock = sock_get_server_socket (listener->port, listener->bind_address);
             if (sock == SOCK_ERROR)
                 break;
-            if (sock_listen (sock, ICE_LISTEN_QUEUE) == SOCK_ERROR)
+            if (sock_listen (sock, listener->qlen) == SOCK_ERROR)
             {
                 sock_close (sock);
                 break;

Modified: icecast/branches/kh/icecast/src/format_mp3.c
===================================================================
--- icecast/branches/kh/icecast/src/format_mp3.c	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/format_mp3.c	2008-11-19 02:15:53 UTC (rev 15526)
@@ -121,13 +121,13 @@
 static void mp3_set_tag (format_plugin_t *plugin, const char *tag, const char *in_value, const char *charset)
 {
     mp3_state *source_mp3 = plugin->_state;
-    unsigned int len;
-    const char meta[] = "StreamTitle='";
-    int size = sizeof (meta) + 1;
     char *value;
 
     if (tag==NULL || in_value == NULL)
+    {
+        source_mp3->update_metadata = 1;
         return;
+    }
 
     /* protect against multiple updaters */
     thread_mutex_lock (&source_mp3->url_lock);
@@ -136,23 +136,21 @@
     if (value == NULL)
         value = strdup (in_value);
 
-    len = strlen (value)+1;
-    size += len;
-
     if (strcmp (tag, "title") == 0 || strcmp (tag, "song") == 0)
     {
         free (source_mp3->url_title);
-        free (source_mp3->url_artist);
-        source_mp3->url_artist = NULL;
         source_mp3->url_title = value;
-        source_mp3->update_metadata = 1;
     }
     else if (strcmp (tag, "artist") == 0)
     {
         free (source_mp3->url_artist);
         source_mp3->url_artist = value;
-        source_mp3->update_metadata = 1;
     }
+    else if (strcmp (tag, "url") == 0)
+    {
+        free (source_mp3->url);
+        source_mp3->url = value;
+    }
     else
         free (value);
     thread_mutex_unlock (&source_mp3->url_lock);
@@ -232,6 +230,7 @@
 static void mp3_set_title (source_t *source)
 {
     const char meta[] = "StreamTitle='";
+    const char streamurl[] = "StreamUrl='";
     size_t size;
     unsigned char len_byte;
     refbuf_t *p;
@@ -248,6 +247,8 @@
         len += strlen (source_mp3->url_title);
     if (source_mp3->url_artist && source_mp3->url_title)
         len += 3;
+    if (source_mp3->url)
+        len += strlen (source_mp3->url) + strlen (streamurl) + 2;
 #define MAX_META_LEN 255*16
     if (len > MAX_META_LEN)
     {
@@ -265,19 +266,32 @@
     if (p)
     {
         mp3_state *source_mp3 = source->format->_state;
+        int r;
 
         memset (p->data, '\0', size);
         if (source_mp3->url_artist && source_mp3->url_title)
-            snprintf (p->data, size, "%c%s%s - %s';", len_byte, meta,
+            r = snprintf (p->data, size, "%c%s%s - %s';", len_byte, meta,
                     source_mp3->url_artist, source_mp3->url_title);
         else
-            snprintf (p->data, size, "%c%s%s';", len_byte, meta,
+            r = snprintf (p->data, size, "%c%s%s';", len_byte, meta,
                     source_mp3->url_title);
+        DEBUG2 ("r is %d, url %s", r, source_mp3->url);
+        if (r > 0 && source_mp3->url)
+        {
+            snprintf (p->data+r, size-r, "StreamUrl='%s';", source_mp3->url);
+            DEBUG2 ("val %d %d", p->data[r-1], p->data[r]);
+        }
         DEBUG1 ("shoutcast metadata block setup with %s", p->data+1);
         filter_shoutcast_metadata (source, p->data, size);
 
         refbuf_release (source_mp3->metadata);
         source_mp3->metadata = p;
+        free (source_mp3->url);
+        source_mp3->url = NULL;
+        free (source_mp3->url_title);
+        source_mp3->url_title = NULL;
+        free (source_mp3->url_artist);
+        source_mp3->url_artist = NULL;
     }
     thread_mutex_unlock (&source_mp3->url_lock);
 }
@@ -445,6 +459,7 @@
     thread_mutex_destroy (&format_mp3->url_lock);
     free (format_mp3->url_artist);
     free (format_mp3->url_title);
+    free (format_mp3->url);
     refbuf_release (format_mp3->metadata);
     refbuf_release (format_mp3->read_data);
     free(format_mp3);

Modified: icecast/branches/kh/icecast/src/format_mp3.h
===================================================================
--- icecast/branches/kh/icecast/src/format_mp3.h	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/format_mp3.h	2008-11-19 02:15:53 UTC (rev 15526)
@@ -25,6 +25,7 @@
     int interval;
     char *url_artist;
     char *url_title;
+    char *url;
     int update_metadata;
     int queue_block_size;
 

Modified: icecast/branches/kh/icecast/src/format_skeleton.c
===================================================================
--- icecast/branches/kh/icecast/src/format_skeleton.c	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/format_skeleton.c	2008-11-19 02:15:53 UTC (rev 15526)
@@ -91,6 +91,7 @@
     INFO0 ("seen initial skeleton header");
     codec->process_page = process_skeleton_page;
     codec->codec_free = skeleton_codec_free;
+    codec->parent = ogg_info;
     codec->headers = 1;
     codec->name = "Skeleton";
 

Modified: icecast/branches/kh/icecast/src/global.h
===================================================================
--- icecast/branches/kh/icecast/src/global.h	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/global.h	2008-11-19 02:15:53 UTC (rev 15526)
@@ -15,7 +15,7 @@
 
 #include "config.h"
 
-#define ICE_LISTEN_QUEUE 5
+#define ICE_LISTEN_QUEUE 10
 
 #define ICE_RUNNING 1
 #define ICE_HALTING 2

Modified: icecast/branches/kh/icecast/src/source.c
===================================================================
--- icecast/branches/kh/icecast/src/source.c	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/source.c	2008-11-19 02:15:53 UTC (rev 15526)
@@ -18,6 +18,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 #include <sys/types.h>
 #include <ogg/ogg.h>
 #include <errno.h>
@@ -813,11 +816,15 @@
 
     /* start off the statistics */
     stats_event_inc (NULL, "source_total_connections");
-    stats_event (source->mount, "slow_listeners", "0");
-    stats_event (source->mount, "listener_connections", "0");
+    stats_event_hidden (source->mount, "slow_listeners", "0", STATS_COUNTERS);
+    stats_event_hidden (source->mount, "listener_connections", "0", STATS_COUNTERS);
     stats_event (source->mount, "server_type", source->format->contenttype);
+    stats_event_hidden (source->mount, "listener_peak", "0", STATS_COUNTERS);
     stats_event_args (source->mount, "listener_peak", "%lu", source->peak_listeners);
     stats_event_time (source->mount, "stream_start");
+    stats_event_hidden (source->mount, "total_mbytes_sent", "0", STATS_COUNTERS);
+    stats_event_hidden (source->mount, "total_bytes_sent", "0", STATS_COUNTERS);
+    stats_event_hidden (source->mount, "total_bytes_read", "0", STATS_COUNTERS);
 
     DEBUG0("Source creation complete");
     source->last_read = global.time;
@@ -1311,14 +1318,14 @@
             DEBUG1 ("fallback_when_full to %u", mountinfo->fallback_when_full);
         DEBUG1 ("max listeners to %d", mountinfo->max_listeners);
         stats_event_args (source->mount, "max_listeners", "%d", mountinfo->max_listeners);
-        stats_event_hidden (source->mount, "cluster_password", mountinfo->cluster_password, STATS_SLAVE);
+        stats_event_hidden (source->mount, "cluster_password", mountinfo->cluster_password, STATS_SLAVE|STATS_HIDDEN);
         if (mountinfo->hidden)
         {
             stats_event_hidden (source->mount, NULL, NULL, STATS_HIDDEN);
             DEBUG0 ("hidden from public");
         }
         else
-            stats_event_hidden (source->mount, NULL, NULL, STATS_PUBLIC);
+            stats_event_hidden (source->mount, NULL, NULL, 0);
     }
     else
     {

Modified: icecast/branches/kh/icecast/src/stats.c
===================================================================
--- icecast/branches/kh/icecast/src/stats.c	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/stats.c	2008-11-19 02:15:53 UTC (rev 15526)
@@ -38,6 +38,7 @@
 #include "stats.h"
 #include "xslt.h"
 #include "util.h"
+#include "fserve.h"
 #define CATMODULE "stats"
 #include "logging.h"
 
@@ -172,6 +173,8 @@
     stats_event_hidden (NULL, "stats_connections", "0", STATS_COUNTERS);
     stats_event_hidden (NULL, "listener_connections", "0", STATS_COUNTERS);
     stats_event_hidden (NULL, "outgoing_kbitrate", "0", STATS_COUNTERS);
+    stats_event_hidden (NULL, "stream_kbytes_sent", "0", STATS_COUNTERS);
+    stats_event_hidden (NULL, "stream_kbytes_read", "0", STATS_COUNTERS);
 }
 
 void stats_shutdown(void)
@@ -248,7 +251,10 @@
 
     build_event (&event, source, name, value);
     event.hidden = hidden;
-    event.action |= STATS_EVENT_HIDDEN;
+    if (value)
+        event.action |= STATS_EVENT_HIDDEN;
+    else
+        event.action = STATS_EVENT_HIDDEN;
     process_event (&event);
 }
 
@@ -435,8 +441,11 @@
         }
         snprintf (event->value, VAL_BUFSIZE, "%" PRId64, value);
     }
-    free (node->value);
-    node->value = strdup (event->value);
+    if (node->value)
+    {
+        free (node->value);
+        node->value = strdup (event->value);
+    }
 }
 
 
@@ -511,7 +520,7 @@
                 node->name = (char *)strdup(event->name);
                 node->value = (char *)strdup(event->value);
                 node->hidden = event->hidden;
-                if (snode->hidden | STATS_HIDDEN)
+                if (snode->hidden & STATS_HIDDEN)
                     node->hidden |= STATS_HIDDEN;
 
                 stats_listener_send (node->hidden, "EVENT %s %s %s\n", event->source, event->name, event->value);
@@ -766,7 +775,7 @@
     while (avlnode)
     {
         stats_source_t *source = (stats_source_t *)avlnode->key;
-        if (source->hidden & hidden &&
+        if (((hidden&STATS_HIDDEN) || (source->hidden&STATS_HIDDEN) == (hidden&STATS_HIDDEN)) &&
                 (show_mount == NULL || strcmp (show_mount, source->source) == 0))
         {
             avl_node *avlnode2 = avl_get_first (source->stats_tree);
@@ -778,7 +787,8 @@
             while (avlnode2)
             {
                 stats_node_t *stat = avlnode2->key;
-                xmlNewTextChild (xmlnode, NULL, XMLSTR(stat->name), XMLSTR(stat->value));
+                if ((hidden&STATS_HIDDEN) || (stat->hidden&STATS_HIDDEN) == (hidden&STATS_HIDDEN))
+                    xmlNewTextChild (xmlnode, NULL, XMLSTR(stat->name), XMLSTR(stat->value));
                 avlnode2 = avl_get_next (avlnode2);
             }
         }
@@ -877,37 +887,32 @@
     _stats.event_listeners = listener;
 }
 
-static void check_uri (event_listener_t *listener, const char *mount)
-{
-    listener->hidden_level = STATS_PUBLIC;
-    if (strncmp (mount, "/admin/", 7) == 0)
-    {
-        if (strcmp (mount+7, "streams") == 0)
-            listener->hidden_level = STATS_SLAVE|STATS_GENERAL;
-    }
-    /* else
-     * check for reserved mountpoint, show hidden source stats */
-}
 
-
-
-void stats_callback (client_t *client, void *arg)
+static void stats_callback (client_t *client, void *arg)
 {
-    event_listener_t * listener;
-    const char *mount = arg;
+    event_listener_t *listener = arg;
 
     client_set_queue (client, NULL);
-    listener = calloc (1, sizeof (event_listener_t));
-    listener->client = client;
-    listener->queue_recent_p = &listener->queue;
-    check_uri (listener, mount);
 
     thread_mutex_lock(&_stats_mutex);
     _register_listener (listener);
     thread_mutex_unlock(&_stats_mutex);
 }
 
+void stats_add_listener (client_t *client, int hidden_level)
+{
+    event_listener_t *listener = calloc (1, sizeof (event_listener_t));
+    listener->hidden_level = hidden_level;
+    listener->client = client;
+    listener->queue_recent_p = &listener->queue;
 
+    client->respcode = 200;
+    snprintf (client->refbuf->data, PER_CLIENT_REFBUF_SIZE,
+            "HTTP/1.0 200 OK\r\ncapability: streamlist\r\n\r\n");
+    client->refbuf->len = strlen (client->refbuf->data);
+    fserve_add_client_callback (client, stats_callback, listener);
+}
+
 void stats_transform_xslt(client_t *client, const char *uri)
 {
     xmlDocPtr doc;

Modified: icecast/branches/kh/icecast/src/stats.h
===================================================================
--- icecast/branches/kh/icecast/src/stats.h	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/src/stats.h	2008-11-19 02:15:53 UTC (rev 15526)
@@ -48,7 +48,7 @@
 void stats_event_time (const char *mount, const char *name);
 
 void *stats_connection(void *arg);
-void stats_callback (client_t *client, void *mount);
+void stats_add_listener (client_t *client, int hidden_level);
 void stats_global_calc(void);
 
 void stats_transform_xslt(client_t *client, const char *uri);

Modified: icecast/branches/kh/icecast/win32/Icecast2winDlg.cpp
===================================================================
--- icecast/branches/kh/icecast/win32/Icecast2winDlg.cpp	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/win32/Icecast2winDlg.cpp	2008-11-19 02:15:53 UTC (rev 15526)
@@ -545,7 +545,7 @@
 
 			xmlDocPtr doc;
 
-			doc = stats_get_xml(0, NULL);
+			doc = stats_get_xml(STATS_PUBLIC, NULL);
 			xmlNodePtr cur;
 		    cur = xmlDocGetRootElement(doc); 
 

Modified: icecast/branches/kh/icecast/win32/icecast2.iss
===================================================================
--- icecast/branches/kh/icecast/win32/icecast2.iss	2008-11-18 03:26:14 UTC (rev 15525)
+++ icecast/branches/kh/icecast/win32/icecast2.iss	2008-11-19 02:15:53 UTC (rev 15526)
@@ -3,7 +3,7 @@
 
 [Setup]
 AppName=Icecast2-KH
-AppVerName=Icecast v2.3.2-kh3
+AppVerName=Icecast v2.3.2-kh6
 AppPublisherURL=http://www.icecast.org
 AppSupportURL=http://www.icecast.org
 AppUpdatesURL=http://www.icecast.org
@@ -13,7 +13,7 @@
 LicenseFile=..\COPYING
 InfoAfterFile=..\README
 OutputDir=.
-OutputBaseFilename=icecast2_win32_v2.3.2-kh3_setup
+OutputBaseFilename=icecast2_win32_v2.3.2-kh6_setup
 WizardImageFile=icecast2logo2.bmp
 WizardImageStretch=no
 ; uncomment the following line if you want your installation to run on NT 3.51 too.



More information about the commits mailing list