ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/include/server.h
Revision: 6470
Committed: Thu Sep 3 13:06:17 2015 UTC (10 years, 10 months ago) by michael
Content type: text/x-chdr
File size: 3548 byte(s)
Log Message:
- Make use of enum in some places; make use of the HasFlag() macro some more; minor style corrections

File Contents

# User Rev Content
1 adx 30 /*
2 michael 2865 * ircd-hybrid: an advanced, lightweight Internet Relay Chat Daemon (ircd)
3 adx 30 *
4 michael 5347 * Copyright (c) 1997-2015 ircd-hybrid development team
5 adx 30 *
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 michael 4565 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
19 adx 30 * USA
20     */
21    
22 michael 3347 /*! \file server.h
23 michael 2865 * \brief A header for the server functions.
24     * \version $Id$
25     */
26    
27 michael 6345 #ifndef INCLUDED_server_h
28     #define INCLUDED_server_h
29 adx 30
30 michael 6470 struct Client;
31     struct MaskItem;
32 michael 2925
33 adx 30 /*
34 michael 6470 * Number of seconds to wait after server starts up, before
35 adx 30 * starting try_connections()
36 michael 2865 * TOO SOON and you can nick collide like crazy.
37 adx 30 */
38 michael 6315 enum { STARTUP_CONNECTIONS_TIME = 60 };
39 adx 30
40 michael 6470 /*
41     * Return values for hunt_server()
42     */
43     enum
44     {
45     HUNTED_NOSUCH = -1, /**< If the hunted server is not found */
46     HUNTED_ISME = 0, /**< If this server should execute the command */
47     HUNTED_PASS = 1 /**< If message passed onwards successfully */
48     };
49 adx 30
50 michael 6470
51 adx 30 /* Capabilities */
52     struct Capability
53     {
54     dlink_node node;
55 michael 6470 char *name; /**< Name of capability */
56     unsigned int cap; /**< Mask value */
57 adx 30 };
58    
59 michael 6315 enum
60     {
61 michael 6354 CAPAB_QS = 0x00000001U, /* Can handle quit storm removal */
62     CAPAB_EX = 0x00000002U, /* Can do channel +e exemptions */
63     CAPAB_IE = 0x00000004U, /* Can do invite exceptions */
64     CAPAB_EOB = 0x00000008U, /* Can do EOB message */
65     CAPAB_KLN = 0x00000010U, /* Can do KLINE message */
66 michael 6470 CAPAB_KNOCK = 0x00000020U, /* Supports KNOCK */
67 michael 6354 CAPAB_UNKLN = 0x00000040U, /* Can do UNKLINE message */
68 michael 6470 CAPAB_CLUSTER = 0x00000080U, /* Supports server clustering */
69     CAPAB_ENCAP = 0x00000100U, /* Supports ENCAP message */
70     CAPAB_HOPS = 0x00000200U, /* Supports HALFOPS */
71     CAPAB_TBURST = 0x00000400U, /* Supports TBURST */
72     CAPAB_SVS = 0x00000800U, /* Supports services */
73 michael 6354 CAPAB_DLN = 0x00001000U, /* Can do DLINE message */
74     CAPAB_UNDLN = 0x00002000U, /* Can do UNDLINE message */
75     CAPAB_CHW = 0x00004000U /* Can do channel wall @# */
76 michael 6315 };
77 adx 30
78     /*
79     * Capability macros.
80     */
81 michael 4588 #define IsCapable(x, cap) ((x)->connection->caps & (cap))
82     #define SetCapable(x, cap) ((x)->connection->caps |= (cap))
83     #define ClearCap(x, cap) ((x)->connection->caps &= ~(cap))
84 adx 30
85 michael 1115 extern int valid_servname(const char *);
86 michael 1302 extern int check_server(const char *, struct Client *);
87 michael 3156 extern int hunt_server(struct Client *, const char *, const int, const int, char *[]);
88 michael 5796 extern void add_capability(const char *, unsigned int);
89 michael 5776 extern void delete_capability(const char *);
90 michael 1877 extern int unsigned find_capability(const char *);
91 michael 5796 extern void send_capabilities(struct Client *);
92 adx 30 extern void write_links_file(void *);
93 michael 2216 extern void read_links_file(void);
94 michael 2282 extern const char *show_capabilities(const struct Client *);
95 adx 30 extern void try_connections(void *);
96 michael 1632 extern int serv_connect(struct MaskItem *, struct Client *);
97 adx 30 extern struct Client *find_servconn_in_progress(const char *);
98     extern struct Server *make_server(struct Client *);
99 michael 6470 #endif /* INCLUDED_server_h */

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision