Commit 018fff11 authored by Karl Heyes's avatar Karl Heyes

Allow for username to be stated for master/slave setups, we still default

to 'relay' though

svn path=/icecast/trunk/icecast/; revision=9274
parent a922caa7
...@@ -95,6 +95,7 @@ This setting applies to all mountpoints. ...@@ -95,6 +95,7 @@ This setting applies to all mountpoints.
<pre> <pre>
&lt;authentication&gt; &lt;authentication&gt;
&lt;source-password&gt;hackme&lt;/source-password&gt; &lt;source-password&gt;hackme&lt;/source-password&gt;
&lt;relay-user&gt;relay&lt;/relay-user&gt;
&lt;relay-password&gt;hackme&lt;/relay-password&gt; &lt;relay-password&gt;hackme&lt;/relay-password&gt;
&lt;admin-user&gt;admin&lt;/admin-user&gt; &lt;admin-user&gt;admin&lt;/admin-user&gt;
&lt;admin-password&gt;hackme&lt;/admin-password&gt; &lt;admin-password&gt;hackme&lt;/admin-password&gt;
...@@ -106,9 +107,15 @@ This setting applies to all mountpoints. ...@@ -106,9 +107,15 @@ This setting applies to all mountpoints.
<div class="indentedbox"> <div class="indentedbox">
The unencrypted password used by sources to connect to icecast2. Currently, the username for all source connections must be 'source'. This is likely to change in the future. The unencrypted password used by sources to connect to icecast2. Currently, the username for all source connections must be 'source'. This is likely to change in the future.
</div> </div>
<h4>relay-user</h4>
<div class="indentedbox">
Used in the master server as part of the authentication when a slave requests
the list of streams to relay. The default username is 'relay'
</div>
<h4>relay-password</h4> <h4>relay-password</h4>
<div class="indentedbox"> <div class="indentedbox">
Currently not used. Used in the master server as part of the authentication when a slave requests
the list of streams to relay.
</div> </div>
<h4>admin-user</h4> <h4>admin-user</h4>
<h4>admin-password</h4> <h4>admin-password</h4>
...@@ -201,6 +208,7 @@ certain formats. ...@@ -201,6 +208,7 @@ certain formats.
&lt;master-server&gt;127.0.0.1&lt;/master-server&gt; &lt;master-server&gt;127.0.0.1&lt;/master-server&gt;
&lt;master-server-port&gt;8001&lt;/master-server-port&gt; &lt;master-server-port&gt;8001&lt;/master-server-port&gt;
&lt;master-update-interval&gt;120&lt;/master-update-interval&gt; &lt;master-update-interval&gt;120&lt;/master-update-interval&gt;
&lt;master-username&gt;relay&lt;/master-username&gt;
&lt;master-password&gt;hackme&lt;/master-password&gt; &lt;master-password&gt;hackme&lt;/master-password&gt;
&lt;relay&gt; &lt;relay&gt;
...@@ -249,9 +257,16 @@ This is the TCP Port for the server which contains the mountpoints to be relayed ...@@ -249,9 +257,16 @@ This is the TCP Port for the server which contains the mountpoints to be relayed
<div class="indentedbox"> <div class="indentedbox">
The interval (in seconds) that the Relay Server will poll the Master Server for any new mountpoints to relay. The interval (in seconds) that the Relay Server will poll the Master Server for any new mountpoints to relay.
</div> </div>
<h4>master-username</h4>
<div class="indentedbox">
This is the relay username on the master server. It is used to query the
server for a list of mountpoints to relay. If not specified then 'relay' is
used
</div>
<h4>master-password</h4> <h4>master-password</h4>
<div class="indentedbox"> <div class="indentedbox">
This is the admin password on the Master server. It is used to query the server for a list of mountpoints to relay. This is the relay password on the Master server. It is used to query the
server for a list of mountpoints to relay.
</div> </div>
<br /> <br />
<h3>Specific Mountpoint Relay</h3> <h3>Specific Mountpoint Relay</h3>
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#define CONFIG_DEFAULT_SOURCE_TIMEOUT 10 #define CONFIG_DEFAULT_SOURCE_TIMEOUT 10
#define CONFIG_DEFAULT_SOURCE_PASSWORD "changeme" #define CONFIG_DEFAULT_SOURCE_PASSWORD "changeme"
#define CONFIG_DEFAULT_RELAY_PASSWORD "changeme" #define CONFIG_DEFAULT_RELAY_PASSWORD "changeme"
#define CONFIG_DEFAULT_MASTER_USERNAME "relay"
#define CONFIG_DEFAULT_SHOUTCAST_MOUNT "/stream" #define CONFIG_DEFAULT_SHOUTCAST_MOUNT "/stream"
#define CONFIG_DEFAULT_ICE_LOGIN 0 #define CONFIG_DEFAULT_ICE_LOGIN 0
#define CONFIG_DEFAULT_FILESERVE 1 #define CONFIG_DEFAULT_FILESERVE 1
...@@ -163,6 +164,7 @@ void config_clear(ice_config_t *c) ...@@ -163,6 +164,7 @@ void config_clear(ice_config_t *c)
if (c->listeners[i].bind_address) xmlFree(c->listeners[i].bind_address); if (c->listeners[i].bind_address) xmlFree(c->listeners[i].bind_address);
} }
if (c->master_server) xmlFree(c->master_server); if (c->master_server) xmlFree(c->master_server);
if (c->master_username) xmlFree(c->master_username);
if (c->master_password) xmlFree(c->master_password); if (c->master_password) xmlFree(c->master_password);
if (c->user) xmlFree(c->user); if (c->user) xmlFree(c->user);
if (c->group) xmlFree(c->group); if (c->group) xmlFree(c->group);
...@@ -341,6 +343,7 @@ static void _set_defaults(ice_config_t *configuration) ...@@ -341,6 +343,7 @@ static void _set_defaults(ice_config_t *configuration)
configuration->master_server = NULL; configuration->master_server = NULL;
configuration->master_server_port = 0; configuration->master_server_port = 0;
configuration->master_update_interval = CONFIG_MASTER_UPDATE_INTERVAL; configuration->master_update_interval = CONFIG_MASTER_UPDATE_INTERVAL;
configuration->master_username = xmlStrdup (CONFIG_DEFAULT_MASTER_USERNAME);
configuration->master_password = NULL; configuration->master_password = NULL;
configuration->base_dir = CONFIG_DEFAULT_BASE_DIR; configuration->base_dir = CONFIG_DEFAULT_BASE_DIR;
configuration->log_dir = CONFIG_DEFAULT_LOG_DIR; configuration->log_dir = CONFIG_DEFAULT_LOG_DIR;
...@@ -355,7 +358,7 @@ static void _set_defaults(ice_config_t *configuration) ...@@ -355,7 +358,7 @@ static void _set_defaults(ice_config_t *configuration)
configuration->user = CONFIG_DEFAULT_USER; configuration->user = CONFIG_DEFAULT_USER;
configuration->group = CONFIG_DEFAULT_GROUP; configuration->group = CONFIG_DEFAULT_GROUP;
configuration->num_yp_directories = 0; configuration->num_yp_directories = 0;
configuration->relay_username = NULL; configuration->relay_username = xmlStrdup (CONFIG_DEFAULT_MASTER_USERNAME);
configuration->relay_password = NULL; configuration->relay_password = NULL;
/* default to a typical prebuffer size used by clients */ /* default to a typical prebuffer size used by clients */
configuration->burst_size = 65536; configuration->burst_size = 65536;
...@@ -414,6 +417,9 @@ static void _parse_root(xmlDocPtr doc, xmlNodePtr node, ...@@ -414,6 +417,9 @@ static void _parse_root(xmlDocPtr doc, xmlNodePtr node,
} else if (strcmp(node->name, "master-server") == 0) { } else if (strcmp(node->name, "master-server") == 0) {
if (configuration->master_server) xmlFree(configuration->master_server); if (configuration->master_server) xmlFree(configuration->master_server);
configuration->master_server = (char *)xmlNodeListGetString(doc, node->xmlChildrenNode, 1); configuration->master_server = (char *)xmlNodeListGetString(doc, node->xmlChildrenNode, 1);
} else if (strcmp(node->name, "master-username") == 0) {
if (configuration->master_username) xmlFree(configuration->master_username);
configuration->master_username = (char *)xmlNodeListGetString(doc, node->xmlChildrenNode, 1);
} else if (strcmp(node->name, "master-password") == 0) { } else if (strcmp(node->name, "master-password") == 0) {
if (configuration->master_password) xmlFree(configuration->master_password); if (configuration->master_password) xmlFree(configuration->master_password);
configuration->master_password = (char *)xmlNodeListGetString(doc, node->xmlChildrenNode, 1); configuration->master_password = (char *)xmlNodeListGetString(doc, node->xmlChildrenNode, 1);
......
...@@ -118,6 +118,7 @@ typedef struct ice_config_tag ...@@ -118,6 +118,7 @@ typedef struct ice_config_tag
char *master_server; char *master_server;
int master_server_port; int master_server_port;
int master_update_interval; int master_update_interval;
char *master_username;
char *master_password; char *master_password;
relay_server *relay; relay_server *relay;
......
...@@ -634,7 +634,7 @@ int connection_check_relay_pass(http_parser_t *parser) ...@@ -634,7 +634,7 @@ int connection_check_relay_pass(http_parser_t *parser)
int ret; int ret;
ice_config_t *config = config_get_config(); ice_config_t *config = config_get_config();
char *pass = config->relay_password; char *pass = config->relay_password;
char *user = "relay"; char *user = config->relay_username;
if(!pass || !user) { if(!pass || !user) {
config_release_config(); config_release_config();
......
...@@ -409,7 +409,7 @@ static int update_from_master(ice_config_t *config) ...@@ -409,7 +409,7 @@ static int update_from_master(ice_config_t *config)
relay_server *new_relays = NULL, *cleanup_relays; relay_server *new_relays = NULL, *cleanup_relays;
int len, count = 1; int len, count = 1;
username = strdup ("relay"); username = strdup (config->master_username);
if (config->master_password) if (config->master_password)
password = strdup (config->master_password); password = strdup (config->master_password);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment