Commit a8b9e5b9 authored by Max Kellermann's avatar Max Kellermann

db/proxy: add "password" setting

Closes #283
parent 04f928e2
ver 0.20.21 (not yet released) ver 0.20.21 (not yet released)
* database
- proxy: add "password" setting
ver 0.20.20 (2018/05/22) ver 0.20.20 (2018/05/22)
* protocol * protocol
......
...@@ -2116,6 +2116,15 @@ run</programlisting> ...@@ -2116,6 +2116,15 @@ run</programlisting>
</row> </row>
<row> <row>
<entry> <entry>
<varname>password</varname>
</entry>
<entry>
The password used to log in to the "master"
<application>MPD</application> instance.
</entry>
</row>
<row>
<entry>
<varname>keepalive</varname> <varname>keepalive</varname>
<parameter>yes|no</parameter> <parameter>yes|no</parameter>
</entry> </entry>
......
...@@ -82,6 +82,7 @@ class ProxyDatabase final : public Database, SocketMonitor, IdleMonitor { ...@@ -82,6 +82,7 @@ class ProxyDatabase final : public Database, SocketMonitor, IdleMonitor {
DatabaseListener &listener; DatabaseListener &listener;
const std::string host; const std::string host;
const std::string password;
const unsigned port; const unsigned port;
const bool keepalive; const bool keepalive;
...@@ -359,6 +360,7 @@ ProxyDatabase::ProxyDatabase(EventLoop &_loop, DatabaseListener &_listener, ...@@ -359,6 +360,7 @@ ProxyDatabase::ProxyDatabase(EventLoop &_loop, DatabaseListener &_listener,
SocketMonitor(_loop), IdleMonitor(_loop), SocketMonitor(_loop), IdleMonitor(_loop),
listener(_listener), listener(_listener),
host(block.GetBlockValue("host", "")), host(block.GetBlockValue("host", "")),
password(block.GetBlockValue("password", "")),
port(block.GetBlockValue("port", 0u)), port(block.GetBlockValue("port", 0u)),
keepalive(block.GetBlockValue("keepalive", false)) keepalive(block.GetBlockValue("keepalive", false))
{ {
...@@ -402,6 +404,10 @@ ProxyDatabase::Connect() ...@@ -402,6 +404,10 @@ ProxyDatabase::Connect()
try { try {
CheckError(connection); CheckError(connection);
if (!password.empty() &&
!mpd_run_password(connection, password.c_str()))
ThrowError(connection);
} catch (...) { } catch (...) {
mpd_connection_free(connection); mpd_connection_free(connection);
connection = nullptr; connection = nullptr;
......
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