summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/extern.h12
-rw-r--r--include/services.h28
2 files changed, 26 insertions, 14 deletions
diff --git a/include/extern.h b/include/extern.h
index b1706b622..1ff32aba5 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -227,15 +227,7 @@ char *sockstrerror(int error);
/**** config.c ****/
-E char *RemoteServer;
-E int RemotePort;
-E char *RemotePassword;
-E char *RemoteServer2;
-E int RemotePort2;
-E char *RemotePassword2;
-E char *RemoteServer3;
-E int RemotePort3;
-E char *RemotePassword3;
+E std::list<Uplink *> Uplinks;
E char *LocalHost;
E int LocalPort;
@@ -514,7 +506,7 @@ E void set_lastmask(User * u);
E void introduce_user(const char *user);
E int init_primary(int ac, char **av);
E int init_secondary(int ac, char **av);
-E int servernum;
+E Uplink *uplink_server;
/**** ircd.c ****/
E void pmodule_ircd_proto(IRCDProto *);
diff --git a/include/services.h b/include/services.h
index ba04d873a..8ba6db085 100644
--- a/include/services.h
+++ b/include/services.h
@@ -229,6 +229,7 @@ extern int strncasecmp(const char *, const char *, size_t);
#include <string>
#include <map>
#include <exception>
+#include <list>
/** This class can be used on its own to represent an exception, or derived to represent a module-specific exception.
* When a module whishes to abort, e.g. within a constructor, it should throw an exception using ModuleException or
@@ -351,7 +352,7 @@ class Extensible
* @return Returns true on success.
*/
bool Shrink(const std::string &key);
-
+
/** Get an extension item.
*
* @param key The key parameter is an arbitary string which identifies the extension data
@@ -372,12 +373,12 @@ class Extensible
return false;
}
}
-
+
/** Get an extension item.
*
* @param key The key parameter is an arbitary string which identifies the extension data
* @return Returns true if the item was found and false if it was not.
- *
+ *
* This single-parameter version only checks if the key exists, it does nothing with
* the 'data' field and is probably only useful in conjunction with the single-parameter
* version of Extend().
@@ -1249,11 +1250,11 @@ struct capabinfo_ {
/*************************************************************************/
-
/*
* Forward declaration reqired, because the base IRCDProto class uses some crap from in here.
*/
class IRCDProto;
+struct Uplink;
#include "extern.h"
class IRCDProto {
@@ -1517,4 +1518,23 @@ class IRCDTS6Proto : public IRCDProto
/*************************************************************************/
+struct Uplink {
+ char *host;
+ int port;
+ char *password;
+ Uplink(const char *_host, int _port, const char *_password)
+ {
+ host = sstrdup(_host);
+ port = _port;
+ password = sstrdup(_password);
+ }
+ ~Uplink()
+ {
+ free(host);
+ free(password);
+ }
+};
+
+/*************************************************************************/
+
#endif /* SERVICES_H */