summaryrefslogtreecommitdiff
path: root/src/servers.c
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-11-08 20:06:21 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-11-08 20:06:21 +0000
commit458be36a321615c0f3004a6abde7e14d40f5da32 (patch)
tree711be83fc6f2d49f9d31015db51730cdac57f687 /src/servers.c
parent38ad96c57c520dd84c8de21766f5de082a844a99 (diff)
Rewrote all of the old C style flag systems into a new Flag class which everything inherits from. This breaks reading and writing flags to the old databases (and probably many other things aswell) - Don't use it
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2636 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/servers.c')
-rw-r--r--src/servers.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/src/servers.c b/src/servers.c
index fa44740cc..4af9c62bc 100644
--- a/src/servers.c
+++ b/src/servers.c
@@ -53,23 +53,22 @@ CapabInfo capab_info[] = {
{"SJB64", CAPAB_SJB64},
{"CHANMODES", CAPAB_CHANMODE},
{"NICKCHARS", CAPAB_NICKCHARS},
- {NULL, 0}
+ {NULL, CAPAB_END}
};
/*************************************************************************/
/**
* Return the first server in the server struct
- * @param flags Server Flags, see services.h
+ * @param flag Server Flag, see services.h
* @return Server Struct
*/
-Server *first_server(int flags)
+Server *first_server(ServerFlag flag)
{
server_cur = servlist;
- if (flags > -1) {
- while (server_cur && (server_cur->flags != flags))
- server_cur = next_server(flags);
- }
+
+ while (server_cur && !server_cur->HasFlag(flag))
+ server_cur = next_server(flag);
return server_cur;
}
@@ -80,7 +79,7 @@ Server *first_server(int flags)
* @param flags Server Flags, see services.h
* @return Server Struct
*/
-Server *next_server(int flags)
+Server *next_server(ServerFlag flag)
{
if (!server_cur)
return NULL;
@@ -99,7 +98,7 @@ Server *next_server(int flags)
}
} while (server_cur);
}
- } while (server_cur && ((flags > -1) && (server_cur->flags != flags)));
+ } while (server_cur && !server_cur->HasFlag(flag));
return server_cur;
}
@@ -119,7 +118,7 @@ Server *next_server(int flags)
* @return Server Struct
*/
Server *new_server(Server * server_uplink, const char *name, const char *desc,
- uint16 flags, const char *suid)
+ ServerFlag flag, const char *suid)
{
Server *serv;
@@ -130,7 +129,8 @@ Server *new_server(Server * server_uplink, const char *name, const char *desc,
name = "";
serv->name = sstrdup(name);
serv->desc = sstrdup(desc);
- serv->flags = flags;
+ if (flag != SERVER_START)
+ serv->SetFlag(flag);
serv->uplink = server_uplink;
if (suid) {
serv->suid = sstrdup(suid);
@@ -157,7 +157,7 @@ Server *new_server(Server * server_uplink, const char *name, const char *desc,
}
/* Check if this is our uplink server */
- if ((server_uplink == me_server) && !(flags & SERVER_JUPED))
+ if ((server_uplink == me_server) && flag != SERVER_JUPED)
{
// XXX: Apparantly we set ourselves as serv_uplink before we (really) set the uplink when we recieve SERVER. This is wrong and ugly.
if (serv_uplink != NULL)
@@ -172,7 +172,7 @@ Server *new_server(Server * server_uplink, const char *name, const char *desc,
}
}
serv_uplink = serv;
- serv->flags |= SERVER_ISUPLINK;
+ serv->SetFlag(SERVER_ISUPLINK);
}
return serv;
@@ -217,8 +217,8 @@ static void delete_server(Server * serv, const char *quitreason)
unext = nextuser();
if (u->server == serv)
{
- if ((na = findnick(u->nick)) && !(na->status & NS_FORBIDDEN)
- && (!(na->nc->flags & NI_SUSPENDED))
+ if ((na = findnick(u->nick)) && !na->HasFlag(NS_FORBIDDEN)
+ && (!na->nc->HasFlag(NI_SUSPENDED))
&& (u->IsRecognized() || nick_identified(u))) {
na->last_seen = time(NULL);
if (na->last_quit)
@@ -413,7 +413,7 @@ void do_server(const char *source, const char *servername, const char *hops,
throw CoreException("Recieved a server from a nonexistant uplink?");
/* Create a server structure. */
- newserver = new_server(s, servername, descript, 0, numeric);
+ newserver = new_server(s, servername, descript, SERVER_START, numeric);
/* Announce services being online. */
if (GlobalOnCycle && GlobalOnCycleUP)
@@ -454,7 +454,8 @@ void do_squit(const char *source, int ac, const char **av)
/* If this is a juped server, send a nice global to inform the online
* opers that we received it.
*/
- if (s->flags & SERVER_JUPED) {
+ if (s->HasFlag(SERVER_JUPED))
+ {
snprintf(buf, BUFSIZE, "Received SQUIT for juped server %s",
s->name);
ircdproto->SendGlobops(s_OperServ, buf);