1 /* 2 * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd) 3 * 4 * Copyright (c) 2001-2021 ircd-hybrid development team 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 19 * USA 20 */ 21 22 /*! \file conf_resv.h 23 * \brief A header for the RESV functions. 24 * \version $Id: conf_resv.h 9858 2021-01-01 04:43:42Z michael $ 25 */ 26 27 #ifndef INCLUDED_conf_resv_h 28 #define INCLUDED_conf_resv_h 29 30 struct ResvItem 31 { 32 dlink_node node; 33 dlink_list *list; 34 dlink_list exempt_list; 35 char *mask; 36 char *reason; 37 uintmax_t expire; 38 uintmax_t setat; 39 bool in_database; 40 }; 41 42 struct ResvExemptItem 43 { 44 dlink_node node; 45 char *name; 46 char *user; 47 char *host; 48 struct irc_ssaddr addr; 49 int bits; 50 int type; 51 }; 52 53 extern const dlink_list *resv_chan_get_list(void); 54 extern const dlink_list *resv_nick_get_list(void); 55 extern void resv_delete(struct ResvItem *, bool); 56 extern struct ResvItem *resv_make(const char *, const char *, const dlink_list *); 57 extern bool resv_exempt_find(const struct Client *, const struct ResvItem *); 58 extern struct ResvItem *resv_find(const char *, int (*)(const char *, const char *)); 59 extern void resv_clear(void); 60 extern void resv_expire(void); 61 #endif /* INCLUDED_conf_resv_h */ 62