summaryrefslogtreecommitdiff
path: root/src/servers.c
diff options
context:
space:
mode:
authordane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-09-29 20:19:18 +0000
committerdane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-09-29 20:19:18 +0000
commit676b8eaf7fcec02ad2583dc0bcc531942b65068e (patch)
treed8405dc99f4b8a50935452374b7afc983dfde641 /src/servers.c
parentb6f83ea4db94339449c05be946477b729e9b991a (diff)
BUILD : 1.7.5 (362) BUGS : 17 143 147 166 172 173 NOTES : Applied patch 927 provided by Trystan.
git-svn-id: svn://svn.anope.org/anope/trunk@362 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@233 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/servers.c')
-rw-r--r--src/servers.c63
1 files changed, 41 insertions, 22 deletions
diff --git a/src/servers.c b/src/servers.c
index d69ac9afd..4d6a7f461 100644
--- a/src/servers.c
+++ b/src/servers.c
@@ -67,7 +67,7 @@ Server *next_server(int flags)
*/
Server *new_server(Server * uplink, const char *name, const char *desc,
- uint16 flags)
+ uint16 flags, char *suid)
{
Server *serv;
@@ -78,6 +78,8 @@ Server *new_server(Server * uplink, const char *name, const char *desc,
serv->desc = sstrdup(desc);
serv->flags = flags;
serv->uplink = uplink;
+ serv->suid = suid;
+ serv->sync = -1;
serv->links = NULL;
serv->prev = NULL;
@@ -197,18 +199,41 @@ Server *findserver(Server * s, const char *name)
return s;
}
+/*
+ Not Synced = -1
+ Error = 0
+ Synced = 1
+*/
+
+int anope_check_sync(const char *name)
+{
+ Server *s;
+ s = findserver(servlist, name);
+
+ if (!s) {
+ return 0;
+ }
+ if (s->sync) {
+ return s->sync;
+ } else {
+ return 0;
+ }
+}
+
/*************************************************************************/
/* :<introducing server> SERVER <servername> <hops> :<description>
*/
-void do_server(const char *source, int ac, char **av)
+void do_server(const char *source, char *servername, char *hops,
+ char *descript, char *numeric)
{
- Server *s;
+ Server *s, *s2;
if (debug) {
if (!*source) {
- alog("debug: Server introduced (%s)", av[0]);
+ alog("debug: Server introduced (%s)", servername);
} else {
- alog("debug: Server introduced (%s) from %s", av[0], source);
+ alog("debug: Server introduced (%s) from %s", servername,
+ source);
}
}
@@ -216,23 +241,8 @@ void do_server(const char *source, int ac, char **av)
s = me_server;
else
s = findserver(servlist, source);
- if (ircd->numservargs == 4) {
- if (ac < 4)
- alog("Malformed SERVER received (less than 4 params)");
- else
- new_server(s, av[0], av[3], 0);
- }
- if (ircd->numservargs == 7) {
- if (ac < 7)
- alog("Malformed SERVER received (less than 7 params)");
- else
- new_server(s, av[0], av[6], 0);
- } else {
- if (ac < 3)
- alog("Malformed SERVER received (less than 3 params)");
- else
- new_server(s, av[0], av[2], 0);
- }
+
+ new_server(s, servername, descript, 0, numeric);
}
/*************************************************************************/
@@ -293,6 +303,10 @@ void capab_parse(int ac, char **av)
}
if (!stricmp(s, "NICKIP")) {
uplink_capab |= CAPAB_NICKIP;
+ /* Update the struct so that we know we can get NICKIP */
+ if (!ircd->nickip) {
+ ircd->nickip = 1;
+ }
}
if (!stricmp(s, "SSJOIN")) {
uplink_capab |= CAPAB_NSJOIN;
@@ -352,6 +366,11 @@ void capab_parse(int ac, char **av)
uplink_capab |= CAPAB_SSJ3;
}
+ if (!stricmp(s, "SJB64")) {
+ uplink_capab |= CAPAB_SJB64;
+
+ }
+
if (!stricmp(s, "CHANMODES")) {
uplink_capab |= CAPAB_CHANMODE;
if (tmp) {