Listen: Allow tilde paths for socket.
This commit is contained in:
parent
cf98b0e261
commit
08e6d222a2
2
NEWS
2
NEWS
@ -1,4 +1,6 @@
|
|||||||
ver 0.18 (2012/??/??)
|
ver 0.18 (2012/??/??)
|
||||||
|
* configuration:
|
||||||
|
- allow tilde paths for socket
|
||||||
* protocol:
|
* protocol:
|
||||||
- new command "toggleoutput"
|
- new command "toggleoutput"
|
||||||
* innput:
|
* innput:
|
||||||
|
@ -77,8 +77,9 @@ You can set a port that is different from the global port setting,
|
|||||||
e.g. "localhost:6602". IPv6 addresses must be enclosed in square
|
e.g. "localhost:6602". IPv6 addresses must be enclosed in square
|
||||||
brackets if you want to configure a port, e.g. "[::1]:6602".
|
brackets if you want to configure a port, e.g. "[::1]:6602".
|
||||||
|
|
||||||
To bind to a Unix domain socket, specify an absolute path. For a
|
To bind to a Unix domain socket, specify an absolute path or a path starting
|
||||||
system-wide MPD, we suggest the path "\fB/var/run/mpd/socket\fP".
|
with a tilde (~). For a system-wide MPD, we suggest the path
|
||||||
|
"\fB/var/run/mpd/socket\fP".
|
||||||
.TP
|
.TP
|
||||||
.B port <port>
|
.B port <port>
|
||||||
This specifies the port that mpd listens on. The default is 6600.
|
This specifies the port that mpd listens on. The default is 6600.
|
||||||
|
@ -105,6 +105,12 @@ config_get_path(ConfigOption option, Error &error)
|
|||||||
if (param == nullptr)
|
if (param == nullptr)
|
||||||
return Path::Null();
|
return Path::Null();
|
||||||
|
|
||||||
|
return config_parse_path(param, error);
|
||||||
|
}
|
||||||
|
|
||||||
|
Path
|
||||||
|
config_parse_path(const struct config_param *param, Error & error)
|
||||||
|
{
|
||||||
Path path = ParsePath(param->value, error);
|
Path path = ParsePath(param->value, error);
|
||||||
if (gcc_unlikely(path.IsNull()))
|
if (gcc_unlikely(path.IsNull()))
|
||||||
error.FormatPrefix("Invalid path at line %i: ",
|
error.FormatPrefix("Invalid path at line %i: ",
|
||||||
|
@ -72,6 +72,14 @@ config_get_string(enum ConfigOption option, const char *default_value);
|
|||||||
Path
|
Path
|
||||||
config_get_path(enum ConfigOption option, Error &error);
|
config_get_path(enum ConfigOption option, Error &error);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse a configuration parameter as a path.
|
||||||
|
* If there is a tilde prefix, it is expanded. If the path could
|
||||||
|
* not be parsed, returns Path::Null() and sets the error.
|
||||||
|
*/
|
||||||
|
Path
|
||||||
|
config_parse_path(const struct config_param *param, Error & error_r);
|
||||||
|
|
||||||
gcc_pure
|
gcc_pure
|
||||||
unsigned
|
unsigned
|
||||||
config_get_unsigned(enum ConfigOption option, unsigned default_value);
|
config_get_unsigned(enum ConfigOption option, unsigned default_value);
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include "ConfigOption.hxx"
|
#include "ConfigOption.hxx"
|
||||||
#include "event/ServerSocket.hxx"
|
#include "event/ServerSocket.hxx"
|
||||||
#include "util/Error.hxx"
|
#include "util/Error.hxx"
|
||||||
|
#include "fs/Path.hxx"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@ -64,8 +65,9 @@ listen_add_config_param(unsigned int port,
|
|||||||
|
|
||||||
if (0 == strcmp(param->value, "any")) {
|
if (0 == strcmp(param->value, "any")) {
|
||||||
return listen_socket->AddPort(port, error_r);
|
return listen_socket->AddPort(port, error_r);
|
||||||
} else if (param->value[0] == '/') {
|
} else if (param->value[0] == '/' || param->value[0] == '~') {
|
||||||
return listen_socket->AddPath(param->value, error_r);
|
Path path = config_parse_path(param, error_r);
|
||||||
|
return !path.IsNull() && listen_socket->AddPath(path.c_str(), error_r);
|
||||||
} else {
|
} else {
|
||||||
return listen_socket->AddHost(param->value, port, error_r);
|
return listen_socket->AddHost(param->value, port, error_r);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user