mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2025-02-02 15:07:36 -05:00
add per-mount no-yp tag handling
svn path=/icecast/trunk/icecast/; revision=8241
This commit is contained in:
parent
c7432d6602
commit
2b4ee737db
@ -91,6 +91,7 @@
|
||||
<burst-size>65536</burst-size>
|
||||
<fallback-mount>/example2.ogg</fallback-mount>
|
||||
<fallback-override>1</fallback-override>
|
||||
<no-yp>1</no-yp>
|
||||
<authentication type="htpasswd">
|
||||
<option name="filename" value="myauth"/>
|
||||
<option name="allow_duplicate_users" value="0"/>
|
||||
|
@ -320,6 +320,7 @@ If you are relaying a Shoutcast stream, you need to specify this indicator to al
|
||||
<dump-file>/tmp/dump-example1.ogg</dump-file>
|
||||
<fallback-mount>/example2.ogg</fallback-mount>
|
||||
<fallback-override>1</fallback-override>
|
||||
<no-yp>1</no-yp>
|
||||
<burst-size>65536</burst-size>
|
||||
<authentication type="htpasswd">
|
||||
<option name="filename" value="myauth"/>
|
||||
@ -367,6 +368,12 @@ This multi-level fallback allows clients to cascade several mountpoints.
|
||||
When enabled, this allows a connecting source client or relay on this mountpoint to move
|
||||
listening clients back from the fallback mount.
|
||||
</div>
|
||||
<h4>no-yp</h4>
|
||||
<div class="indentedbox">
|
||||
Setting this option prevents this mountpoint from advertising on YP. The default is 0 so YP
|
||||
advertising occurs however you may want to prevent it here if you intend listeners to connect
|
||||
to a local relay instead
|
||||
</div>
|
||||
<h4>burst-size</h4>
|
||||
<div class="indentedbox">
|
||||
This optional setting allows for providing a burst size which overrides the default burst size
|
||||
|
@ -553,6 +553,11 @@ static void _parse_mount(xmlDocPtr doc, xmlNodePtr node,
|
||||
mount->no_mount = atoi(tmp);
|
||||
if(tmp) xmlFree(tmp);
|
||||
}
|
||||
else if (strcmp(node->name, "no-yp") == 0) {
|
||||
tmp = (char *)xmlNodeListGetString(doc, node->xmlChildrenNode, 1);
|
||||
mount->no_yp = atoi(tmp);
|
||||
if(tmp) xmlFree(tmp);
|
||||
}
|
||||
else if (strcmp(node->name, "authentication") == 0) {
|
||||
mount->auth_type = xmlGetProp(node, "type");
|
||||
option = node->xmlChildrenNode;
|
||||
|
@ -57,6 +57,7 @@ typedef struct _mount_proxy {
|
||||
int burst_size; /* amount to send to a new client if possible, -1 take
|
||||
* from global setting */
|
||||
unsigned int queue_size_limit;
|
||||
int no_yp; /* Do we prevent YP on this mount */
|
||||
unsigned int source_timeout; /* source timeout in seconds */
|
||||
|
||||
char *auth_type; /* Authentication type */
|
||||
|
10
src/source.c
10
src/source.c
@ -242,6 +242,7 @@ void source_clear_source (source_t *source)
|
||||
source->shoutcast_compat = 0;
|
||||
source->max_listeners = -1;
|
||||
source->yp_public = 0;
|
||||
source->yp_prevent = 0;
|
||||
util_dict_free (source->audio_info);
|
||||
source->audio_info = NULL;
|
||||
|
||||
@ -498,6 +499,9 @@ static void source_init (source_t *source)
|
||||
|
||||
do
|
||||
{
|
||||
str = "0";
|
||||
if (source->yp_prevent)
|
||||
break;
|
||||
if ((str = httpp_getvar(source->parser, "ice-public")))
|
||||
break;
|
||||
if ((str = httpp_getvar(source->parser, "icy-pub")))
|
||||
@ -877,6 +881,12 @@ void source_apply_mount (source_t *source, mount_proxy *mountinfo)
|
||||
source->timeout = mountinfo->source_timeout;
|
||||
DEBUG1 ("source timeout to %u", source->timeout);
|
||||
}
|
||||
if (mountinfo->no_yp)
|
||||
{
|
||||
source->yp_prevent = 1;
|
||||
DEBUG0 ("preventing YP listings");
|
||||
}
|
||||
|
||||
if (mountinfo->burst_size > -1)
|
||||
source->burst_size = mountinfo->burst_size;
|
||||
DEBUG1 ("amount to burst on client connect set to %u", source->burst_size);
|
||||
|
@ -51,6 +51,7 @@ typedef struct source_tag
|
||||
long listeners;
|
||||
long max_listeners;
|
||||
int yp_public;
|
||||
int yp_prevent;
|
||||
struct auth_tag *authenticator;
|
||||
int fallback_override;
|
||||
int no_mount;
|
||||
|
Loading…
x
Reference in New Issue
Block a user