summaryrefslogtreecommitdiff
path: root/include/s_serv.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/s_serv.h')
-rw-r--r--include/s_serv.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/include/s_serv.h b/include/s_serv.h
new file mode 100644
index 0000000..31582ea
--- /dev/null
+++ b/include/s_serv.h
@@ -0,0 +1,101 @@
+/*
+ * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
+ * s_serv.h: A header for the server functions.
+ *
+ * Copyright (C) 2002 by the past and present ircd coders, and others.
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ *
+ * $Id$
+ */
+
+#ifndef INCLUDED_serv_h
+#define INCLUDED_serv_h
+#include "config.h"
+
+struct ConfItem;
+
+/*
+ * number of seconds to wait after server starts up, before
+ * starting try_connections()
+ * TOO SOON and you can nick collide like crazy.
+ */
+#define STARTUP_CONNECTIONS_TIME 60
+
+struct Client;
+struct AccessItem;
+struct Channel;
+
+/* Capabilities */
+struct Capability
+{
+ dlink_node node;
+ char *name; /* name of capability */
+ unsigned int cap; /* mask value */
+};
+
+#define CAP_CAP 0x00000001 /* received a CAP to begin with */
+#define CAP_QS 0x00000002 /* Can handle quit storm removal */
+#define CAP_EX 0x00000004 /* Can do channel +e exemptions */
+#define CAP_CHW 0x00000008 /* Can do channel wall @# */
+#define CAP_IE 0x00000010 /* Can do invite exceptions */
+#define CAP_EOB 0x00000020 /* Can do EOB message */
+#define CAP_KLN 0x00000040 /* Can do KLINE message */
+#define CAP_GLN 0x00000080 /* Can do GLINE message */
+#define CAP_TS6 0x00000100 /* Can do TS6 */
+#define CAP_KNOCK 0x00000200 /* supports KNOCK */
+#define CAP_UNKLN 0x00000400 /* Can do UNKLINE message */
+#define CAP_CLUSTER 0x00000800 /* supports server clustering */
+#define CAP_ENCAP 0x00001000 /* supports ENCAP message */
+#define CAP_HOPS 0x00002000 /* supports HALFOPS */
+#define CAP_TBURST 0x00004000 /* supports TBURST */
+#define CAP_SVS 0x00008000 /* supports services */
+#define CAP_DLN 0x00010000 /* Can do DLINE message */
+#define CAP_UNDLN 0x00020000 /* Can do UNDLINE message */
+
+/*
+ * Capability macros.
+ */
+#define IsCapable(x, cap) ((x)->localClient->caps & (cap))
+#define SetCapable(x, cap) ((x)->localClient->caps |= (cap))
+#define ClearCap(x, cap) ((x)->localClient->caps &= ~(cap))
+
+
+/*
+ * return values for hunt_server()
+ */
+#define HUNTED_NOSUCH (-1) /* if the hunted server is not found */
+#define HUNTED_ISME 0 /* if this server should execute the command */
+#define HUNTED_PASS 1 /* if message passed onwards successfully */
+
+extern int valid_servname(const char *);
+extern int check_server(const char *, struct Client *);
+extern int hunt_server(struct Client *, struct Client *,
+ const char *, int, int, char **);
+extern void add_capability(const char *, int, int);
+extern int delete_capability(const char *);
+extern int find_capability(const char *);
+extern void send_capabilities(struct Client *, struct AccessItem *, int);
+extern void write_links_file(void *);
+extern void server_estab(struct Client *);
+extern const char *show_capabilities(struct Client *);
+extern void try_connections(void *);
+extern void burst_channel(struct Client *client_p, struct Channel *);
+extern void sendnick_TS(struct Client *, struct Client *);
+extern int serv_connect(struct AccessItem *, struct Client *);
+extern struct Client *find_servconn_in_progress(const char *);
+extern struct Server *make_server(struct Client *);
+#endif /* INCLUDED_s_serv_h */