2 * IRC - Internet Relay Chat, ircd/client.c
3 * Copyright (C) 1990 Darren Reed
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 1, or (at your option)
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 #include "ircd_reply.h"
34 #define BAD_PING ((unsigned int)-2)
38 * returns shortest ping time in attached server or client conf
39 * classes or PINGFREQUENCY
41 int client_get_ping(const struct Client* acptr)
44 struct ConfItem* aconf;
47 for (link = cli_confs(acptr); link; link = link->next) {
48 aconf = link->value.aconf;
49 if (aconf->status & (CONF_CLIENT | CONF_SERVER)) {
50 int tmp = get_conf_ping(aconf);
51 if (0 < tmp && (ping > tmp || !ping))
58 Debug((DEBUG_DEBUG, "Client %s Ping %d", cli_name(acptr), ping));
64 * removes the client's connection from the list of connections with
67 void client_drop_sendq(struct Connection* con)
69 if (con_prev_p(con)) { /* on the queued data list... */
71 con_prev_p(con_next(con)) = con_prev_p(con);
72 *(con_prev_p(con)) = con_next(con);
81 * adds the client's connection to the list of connections with
84 void client_add_sendq(struct Connection* con, struct Connection** con_p)
86 if (!con_prev_p(con)) { /* not on the queued data list yet... */
87 con_prev_p(con) = con_p;
88 con_next(con) = *con_p;
91 con_prev_p(*con_p) = &(con_next(con));