-/*
-
-$Log$
-Revision 1.1 2003/01/26 20:15:00 brain
-Added server classes for linking
-
-
-*/
+/* +------------------------------------+
+ * | Inspire Internet Relay Chat Daemon |
+ * +------------------------------------+
+ *
+ * Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
+ * E-mail:
+ * <brain@chatspike.net>
+ * <Craig@chatspike.net>
+ *
+ * Written by Craig Edwards, Craig McLure, and others.
+ * This program is free but copyrighted software; see
+ * the file COPYING for details.
+ *
+ * ---------------------------------------------------
+ */
#include "inspircd_config.h"
+#include "connection.h"
#include <string>
+#include <map>
#ifndef __SERVERS_H__
#define __SERVERS_H__
#define LINK_ACTIVE 1
#define LINK_INACTIVE 0
-typedef vector<serverrec*> server_list;
-
-class serverrec
+/** A class that defines the local server or a remote server
+ */
+class serverrec : public connection
{
private:
- server_list leaf; // list of child servers (leaves)
public:
- char name[MAXBUF]; // server name
- int pingtime; // last ping response (ms)
- int linktype; // link type, LINK_ACTIVE or LINK_INACTIVE
- time_t lastping; // time the link was last pinged
- long usercount_i; // invisible users on server
- long usercount; // non-invisible users on server
- long opercount; // opers on server
- time_t connected_at; // time server was connected into the network
- time_t hops_away; // number of hops away (for quick access)
- long version; // ircd version
- bool jupiter; // is a JUPE server (faked to enforce a server ban)
+ /** server name
+ */
+ char name[MAXBUF];
+ /** last ping response (ms)
+ */
+ long pingtime;
+ /** invisible users on server
+ */
+ long usercount_i;
+ /** non-invisible users on server
+ */
+ long usercount;
+ /** opers on server
+ */
+ long opercount;
+ /** number of hops away (for quick access)
+ */
+ int hops_away;
+ /** ircd version
+ */
+ long version;
+ /** is a JUPE server (faked to enforce a server ban)
+ */
+ bool jupiter;
+
+ /** Description of the server
+ */
+ char description[MAXBUF];
+
+ /** Holds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/)
+ */
+ char nickserv[NICKMAX];
+
+ bool sync_soon;
+ /** Constructor
+ */
serverrec();
- serverrec(char* n, int link_t, long ver, bool jupe);
- ~serverrec()
- void AddLeaf(serverrec *child);
- void DelLeaf(char* n);
+ /** Constructor which initialises some of the main variables
+ */
+ serverrec(char* n, long ver, bool jupe);
+ /** Destructor
+ */
+ ~serverrec();
+
};
+
#endif