aboutsummaryrefslogtreecommitdiffstats
path: root/src/ClientExpire.cxx
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/ClientExpire.cxx (renamed from src/client_expire.c)32
1 files changed, 12 insertions, 20 deletions
diff --git a/src/client_expire.c b/src/ClientExpire.cxx
index 1ca32ebcc..56b003df8 100644
--- a/src/client_expire.c
+++ b/src/ClientExpire.cxx
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003-2011 The Music Player Daemon Project
+ * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -18,41 +18,33 @@
*/
#include "config.h"
-#include "client_internal.h"
+#include "ClientInternal.hxx"
+#include "ClientList.hxx"
static guint expire_source_id;
void
-client_set_expired(struct client *client)
+Client::SetExpired()
{
- if (!client_is_expired(client))
- client_schedule_expire();
+ if (IsExpired())
+ return;
- if (client->source_id != 0) {
- g_source_remove(client->source_id);
- client->source_id = 0;
- }
-
- if (client->channel != NULL) {
- g_io_channel_unref(client->channel);
- client->channel = NULL;
- }
+ client_schedule_expire();
+ BufferedSocket::Close();
}
static void
-client_check_expired_callback(gpointer data, G_GNUC_UNUSED gpointer user_data)
+client_check_expired_callback(Client *client, G_GNUC_UNUSED gpointer user_data)
{
- struct client *client = data;
-
- if (client_is_expired(client)) {
+ if (client->IsExpired()) {
g_debug("[%u] expired", client->num);
- client_close(client);
+ client->Close();
} else if (!client->idle_waiting && /* idle clients
never expire */
(int)g_timer_elapsed(client->last_activity, NULL) >
client_timeout) {
g_debug("[%u] timeout", client->num);
- client_close(client);
+ client->Close();
}
}