diff options
author | Max Kellermann <max@duempel.org> | 2013-01-03 10:33:04 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-01-03 11:16:18 +0100 |
commit | 70b87f2eb620bdf1d7e07141914feb2316794fb3 (patch) | |
tree | 427aba509182a185263e00e222c4ee7b0fd0eb87 /src/client_expire.c | |
parent | 94b2ee627c06679eb2622f2ac2e2fb0240fbab3c (diff) | |
download | mpd-70b87f2eb620bdf1d7e07141914feb2316794fb3.tar.gz mpd-70b87f2eb620bdf1d7e07141914feb2316794fb3.tar.xz mpd-70b87f2eb620bdf1d7e07141914feb2316794fb3.zip |
client: convert to C++
Diffstat (limited to 'src/client_expire.c')
-rw-r--r-- | src/client_expire.c | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/src/client_expire.c b/src/client_expire.c deleted file mode 100644 index 1ca32ebcc..000000000 --- a/src/client_expire.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2003-2011 The Music Player Daemon Project - * http://www.musicpd.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "config.h" -#include "client_internal.h" - -static guint expire_source_id; - -void -client_set_expired(struct client *client) -{ - if (!client_is_expired(client)) - client_schedule_expire(); - - 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; - } -} - -static void -client_check_expired_callback(gpointer data, G_GNUC_UNUSED gpointer user_data) -{ - struct client *client = data; - - if (client_is_expired(client)) { - g_debug("[%u] expired", client->num); - client_close(client); - } 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); - } -} - -static void -client_manager_expire(void) -{ - client_list_foreach(client_check_expired_callback, NULL); -} - -/** - * An idle event which calls client_manager_expire(). - */ -static gboolean -client_manager_expire_event(G_GNUC_UNUSED gpointer data) -{ - expire_source_id = 0; - client_manager_expire(); - return false; -} - -void -client_schedule_expire(void) -{ - if (expire_source_id == 0) - /* delayed deletion */ - expire_source_id = g_idle_add(client_manager_expire_event, - NULL); -} - -void -client_deinit_expire(void) -{ - if (expire_source_id != 0) - g_source_remove(expire_source_id); -} |