aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-10-19 19:39:40 +0200
committerMax Kellermann <max@duempel.org>2013-10-19 19:39:40 +0200
commitc2d5ce0ca213e2d25df17e080b07a3d91d330972 (patch)
tree4d7088e9e2a91408a0d5f16b247016fc125cdecc
parent32645b80c4c6792140e312b5b9fe9f96b48c6ec7 (diff)
downloadmpd-c2d5ce0ca213e2d25df17e080b07a3d91d330972.tar.gz
mpd-c2d5ce0ca213e2d25df17e080b07a3d91d330972.tar.xz
mpd-c2d5ce0ca213e2d25df17e080b07a3d91d330972.zip
Client: move trivial functions into the Client class
-rw-r--r--src/AllCommands.cxx6
-rw-r--r--src/Client.cxx18
-rw-r--r--src/Client.hxx49
-rw-r--r--src/ClientFile.cxx2
-rw-r--r--src/OtherCommands.cxx6
5 files changed, 31 insertions, 50 deletions
diff --git a/src/AllCommands.cxx b/src/AllCommands.cxx
index 73dd7d218..95edb0f19 100644
--- a/src/AllCommands.cxx
+++ b/src/AllCommands.cxx
@@ -182,7 +182,7 @@ static enum command_return
handle_commands(Client &client,
gcc_unused int argc, gcc_unused char *argv[])
{
- const unsigned permission = client_get_permission(client);
+ const unsigned permission = client.GetPermission();
const struct command *cmd;
for (unsigned i = 0; i < num_commands; ++i) {
@@ -200,7 +200,7 @@ static enum command_return
handle_not_commands(Client &client,
gcc_unused int argc, gcc_unused char *argv[])
{
- const unsigned permission = client_get_permission(client);
+ const unsigned permission = client.GetPermission();
const struct command *cmd;
for (unsigned i = 0; i < num_commands; ++i) {
@@ -364,7 +364,7 @@ command_process(Client &client, unsigned num, char *line)
/* look up and invoke the command handler */
- cmd = command_checked_lookup(client, client_get_permission(client),
+ cmd = command_checked_lookup(client, client.GetPermission(),
argc, argv);
if (cmd)
ret = cmd->handler(client, argc, argv);
diff --git a/src/Client.cxx b/src/Client.cxx
index b60061a60..928747897 100644
--- a/src/Client.cxx
+++ b/src/Client.cxx
@@ -22,21 +22,3 @@
#include "util/Domain.hxx"
const Domain client_domain("client");
-
-int
-client_get_uid(const Client &client)
-{
- return client.uid;
-}
-
-unsigned
-client_get_permission(const Client &client)
-{
- return client.permission;
-}
-
-void
-client_set_permission(Client &client, unsigned permission)
-{
- client.permission = permission;
-}
diff --git a/src/Client.hxx b/src/Client.hxx
index 3a2fda282..13a4a14e7 100644
--- a/src/Client.hxx
+++ b/src/Client.hxx
@@ -102,6 +102,30 @@ public:
using FullyBufferedSocket::Write;
/**
+ * returns the uid of the client process, or a negative value
+ * if the uid is unknown
+ */
+ int GetUID() const {
+ return uid;
+ }
+
+ /**
+ * Is this client running on the same machine, connected with
+ * a local (UNIX domain) socket?
+ */
+ bool IsLocal() const {
+ return uid > 0;
+ }
+
+ unsigned GetPermission() const {
+ return permission;
+ }
+
+ void SetPermission(unsigned _permission) {
+ permission = _permission;
+ }
+
+ /**
* Send "idle" response to this client.
*/
void IdleNotify();
@@ -125,31 +149,6 @@ client_new(EventLoop &loop, Partition &partition,
int fd, const struct sockaddr *sa, size_t sa_length, int uid);
/**
- * returns the uid of the client process, or a negative value if the
- * uid is unknown
- */
-gcc_pure
-int
-client_get_uid(const Client &client);
-
-/**
- * Is this client running on the same machine, connected with a local
- * (UNIX domain) socket?
- */
-gcc_pure
-static inline bool
-client_is_local(const Client &client)
-{
- return client_get_uid(client) > 0;
-}
-
-gcc_pure
-unsigned
-client_get_permission(const Client &client);
-
-void client_set_permission(Client &client, unsigned permission);
-
-/**
* Write a C string to the client.
*/
void client_puts(Client &client, const char *s);
diff --git a/src/ClientFile.cxx b/src/ClientFile.cxx
index 6d9fa474e..382b76083 100644
--- a/src/ClientFile.cxx
+++ b/src/ClientFile.cxx
@@ -41,7 +41,7 @@ client_allow_file(const Client &client, Path path_fs, Error &error)
error.Set(ack_domain, ACK_ERROR_PERMISSION, "Access denied");
return false;
#else
- const int uid = client_get_uid(client);
+ const int uid = client.GetUID();
if (uid >= 0 && (uid_t)uid == geteuid())
/* always allow access if user runs his own MPD
instance */
diff --git a/src/OtherCommands.cxx b/src/OtherCommands.cxx
index 038a6448b..3e1e6fdd4 100644
--- a/src/OtherCommands.cxx
+++ b/src/OtherCommands.cxx
@@ -67,7 +67,7 @@ enum command_return
handle_urlhandlers(Client &client,
gcc_unused int argc, gcc_unused char *argv[])
{
- if (client_is_local(client))
+ if (client.IsLocal())
client_puts(client, "handler: file://\n");
print_supported_uri_schemes(client);
return COMMAND_RETURN_OK;
@@ -262,7 +262,7 @@ handle_password(Client &client, gcc_unused int argc, char *argv[])
return COMMAND_RETURN_ERROR;
}
- client_set_permission(client, permission);
+ client.SetPermission(permission);
return COMMAND_RETURN_OK;
}
@@ -271,7 +271,7 @@ enum command_return
handle_config(Client &client,
gcc_unused int argc, gcc_unused char *argv[])
{
- if (!client_is_local(client)) {
+ if (!client.IsLocal()) {
command_error(client, ACK_ERROR_PERMISSION,
"Command only permitted to local clients");
return COMMAND_RETURN_ERROR;