summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/extern.h2
-rw-r--r--include/services.h23
2 files changed, 17 insertions, 8 deletions
diff --git a/include/extern.h b/include/extern.h
index 1ddf6ecf6..1f2928c88 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -808,12 +808,14 @@ E void notice_help(char *source, User *dest, int message, ...);
E Server *servlist;
E Server *me_server;
+E Server *serv_uplink;
E uint32 uplink_capab;
E Server *first_server(int flags);
E Server *next_server(int flags);
E int is_ulined(char *server);
+E int is_sync(Server *server);
E Server *new_server(Server * uplink, const char *name, const char *desc,
uint16 flags, char *suid);
diff --git a/include/services.h b/include/services.h
index 51b9d3075..09a2682ca 100644
--- a/include/services.h
+++ b/include/services.h
@@ -335,6 +335,7 @@ struct ircdvars_ {
int supporthelper; /* +h helper umodes */
int p10; /* ircd is P10 */
char *nickchars; /* character set */
+ int sync; /* reports sync state */
};
struct ircdcapab_ {
@@ -750,17 +751,23 @@ struct csmodeutil_ {
/* Server data */
+typedef enum {
+ SSYNC_UNKNOWN = 0, /* We can't get the sync state */
+ SSYNC_IN_PROGRESS = 1, /* Sync is currently in progress */
+ SSYNC_DONE = 2 /* We're in sync */
+} SyncState;
+
struct server_ {
Server *next, *prev;
- char *name; /* Server name */
- uint16 hops; /* Hops between services and server */
- char *desc; /* Server description */
- uint16 flags; /* Some info flags, as defined below */
- char *suid; /* Server Univeral ID */
- int sync; /* Whether is synced or not */
-
- Server *links; /* Linked list head for linked servers */
+ char *name; /* Server name */
+ uint16 hops; /* Hops between services and server */
+ char *desc; /* Server description */
+ uint16 flags; /* Some info flags, as defined below */
+ char *suid; /* Server Univeral ID */
+ SyncState sync; /* Server sync state (see above) */
+
+ Server *links; /* Linked list head for linked servers */
Server *uplink; /* Server which pretends to be the uplink */
};