mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-24 10:16:37 +02:00
Communicate server featureset (and changes) across server links.
Previously various information was only available for directly attached servers, since it is communicated via PROTOCTL. Now, we will also communicate information about leafs behind us. IRCOps can use the /SINFO command to see these server features. Services codes don't need to do anything, or at least are not expected to do anything. They can still receive the information and do something with it, of course... Read the following technical documentation for full information, as it will outline very specific rules for using the command S2S: https://www.unrealircd.org/docs/Server_protocol:SINFO_command
This commit is contained in:
@@ -43,6 +43,8 @@ extern MODVAR struct stats *ircstp;
|
||||
extern MODVAR int bootopt;
|
||||
extern MODVAR time_t TSoffset;
|
||||
extern MODVAR time_t timeofday;
|
||||
extern MODVAR char cmodestring[512];
|
||||
extern MODVAR char umodestring[UMODETABLESZ+1];
|
||||
/* newconf */
|
||||
#define get_sendq(x) ((x)->local->class ? (x)->local->class->sendq : MAXSENDQLENGTH)
|
||||
/* get_recvq is only called in send.c for local connections */
|
||||
@@ -491,6 +493,7 @@ extern void flag_add(char ch);
|
||||
extern void flag_del(char ch);
|
||||
extern void init_dynconf(void);
|
||||
extern char *pretty_time_val(long);
|
||||
extern char *pretty_date(TS t);
|
||||
extern int init_conf(char *filename, int rehash);
|
||||
extern void validate_configuration(void);
|
||||
extern void run_configuration(void);
|
||||
@@ -669,6 +672,7 @@ extern MODVAR void (*send_join_to_local_users)(aClient *sptr, aChannel *chptr);
|
||||
extern MODVAR int (*do_nick_name)(char *nick);
|
||||
extern MODVAR int (*do_remote_nick_name)(char *nick);
|
||||
extern MODVAR char *(*charsys_get_current_languages)(void);
|
||||
extern MODVAR void *(*broadcast_sinfo)(aClient *acptr, aClient *to, aClient *except);
|
||||
/* /Efuncs */
|
||||
|
||||
extern MODVAR aMotdFile opermotd, svsmotd, motd, botmotd, smotd, rules;
|
||||
@@ -741,6 +745,7 @@ extern MODVAR BOOL IsService;
|
||||
#endif
|
||||
extern int match_ip46(char *a, char *b);
|
||||
extern void extcmodes_check_for_changes(void);
|
||||
extern void umodes_check_for_changes(void);
|
||||
extern int config_parse_flood(char *orig, int *times, int *period);
|
||||
extern int swhois_add(aClient *acptr, char *tag, int priority, char *swhois, aClient *from, aClient *skip);
|
||||
extern int swhois_delete(aClient *acptr, char *tag, char *swhois, aClient *from, aClient *skip);
|
||||
@@ -809,3 +814,6 @@ extern void setmaxtargets(char *cmd, int limit);
|
||||
extern void freemaxtargets(void);
|
||||
extern int max_targets_for_command(char *cmd);
|
||||
extern void set_targmax_defaults(void);
|
||||
extern void parse_chanmodes_protoctl(aClient *sptr, char *str);
|
||||
extern void concat_params(char *buf, int len, int parc, char *parv[]);
|
||||
extern void charsys_check_for_changes(void);
|
||||
|
||||
@@ -1101,6 +1101,7 @@ _UNREAL_ERROR(_hook_error_incompatible, "Incompatible hook function. Check argum
|
||||
#define EFUNC_DO_NICK_NAME 57
|
||||
#define EFUNC_DO_REMOTE_NICK_NAME 58
|
||||
#define EFUNC_CHARSYS_GET_CURRENT_LANGUAGES 59
|
||||
#define EFUNC_BROADCAST_SINFO 60
|
||||
|
||||
/* Module flags */
|
||||
#define MODFLAG_NONE 0x0000
|
||||
|
||||
+5
-2
@@ -696,8 +696,9 @@ struct Server {
|
||||
char *up; /* uplink for this server */
|
||||
char by[NICKLEN + 1];
|
||||
ConfigItem_link *conf;
|
||||
TS timestamp; /* Remotely determined connect try time */
|
||||
long users;
|
||||
TS timestamp; /* Remotely determined connect try time */
|
||||
long users;
|
||||
TS boottime; /* Startup time of server */
|
||||
#ifdef LIST_DEBUG
|
||||
aClient *bcptr;
|
||||
#endif
|
||||
@@ -706,9 +707,11 @@ struct Server {
|
||||
unsigned server_sent:1; /* SERVER message sent to this link? (for outgoing links) */
|
||||
} flags;
|
||||
struct {
|
||||
char *usermodes;
|
||||
char *chanmodes[4];
|
||||
int protocol;
|
||||
char *software;
|
||||
char *nickchars;
|
||||
} features;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user