From ad13bb75563b8e411a68e5afb505e4cf87967fe8 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Sat, 7 Mar 2009 01:27:05 +0100 Subject: [PATCH] Rework remote rehash messages to apply to all server notices during rehash. Previously various notices such as those applying to modules were not sent to the remote oper. --- include/s_conf.h | 2 -- include/send.h | 2 ++ src/newconf.c | 2 -- src/s_conf.c | 11 ----------- src/send.c | 12 ++++++++++++ 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/include/s_conf.h b/include/s_conf.h index 31766467..4e734d79 100644 --- a/include/s_conf.h +++ b/include/s_conf.h @@ -54,8 +54,6 @@ struct ip_value extern FILE *conf_fbfile_in; extern char conf_line_in[256]; -extern struct Client *remote_rehash_oper_p; - struct ConfItem { struct ConfItem *next; /* list node pointer */ diff --git a/include/send.h b/include/send.h index cacdc7a6..cc3e0112 100644 --- a/include/send.h +++ b/include/send.h @@ -38,6 +38,8 @@ struct monitor; /* The nasty global also used in s_serv.c for server bursts */ extern unsigned long current_serial; +extern struct Client *remote_rehash_oper_p; + extern void send_pop_queue(struct Client *); extern void send_queued(struct Client *to); diff --git a/src/newconf.c b/src/newconf.c index 19d6317c..36d05175 100644 --- a/src/newconf.c +++ b/src/newconf.c @@ -1790,8 +1790,6 @@ conf_report_error(const char *fmt, ...) ierror("\"%s\", line %d: %s", current_file, lineno + 1, msg); sendto_realops_snomask(SNO_GENERAL, L_ALL, "\"%s\", line %d: %s", current_file, lineno + 1, msg); - if (remote_rehash_oper_p) - sendto_one_notice(remote_rehash_oper_p, ":*** Notice -- \"%s\", line %d: %s", current_file, lineno + 1, msg); } int diff --git a/src/s_conf.c b/src/s_conf.c index 718993fc..fcf83bfa 100644 --- a/src/s_conf.c +++ b/src/s_conf.c @@ -76,7 +76,6 @@ static void reorganise_temp_kd(void *list); FILE *conf_fbfile_in; extern char yytext[]; -struct Client *remote_rehash_oper_p; static int verify_access(struct Client *client_p, const char *username); static int attach_iline(struct Client *, struct ConfItem *); @@ -683,10 +682,6 @@ rehash_bans(int sig) sendto_realops_snomask(SNO_GENERAL, L_ALL, "Can't open %s file bans could be missing!", *banconfs[i].filename); - if (remote_rehash_oper_p) - sendto_one_notice(remote_rehash_oper_p, - ":*** Notice -- Can't open %s file bans could be missing!", - *banconfs[i].filename); } else { @@ -1160,9 +1155,6 @@ read_conf_files(int cold) { sendto_realops_snomask(SNO_GENERAL, L_ALL, "Can't open file '%s' - aborting rehash!", filename); - if (remote_rehash_oper_p) - sendto_one_notice(remote_rehash_oper_p, - ":*** Notice -- Can't open file '%s' - aborting rehash!", filename); return; } } @@ -1533,9 +1525,6 @@ yyerror(const char *msg) sendto_realops_snomask(SNO_GENERAL, L_ALL, "\"%s\", line %d: %s at '%s'", conffilebuf, lineno + 1, msg, newlinebuf); - if (remote_rehash_oper_p) - sendto_one_notice(remote_rehash_oper_p, ":*** Notice -- \"%s\", line %d: %s at '%s'", - conffilebuf, lineno + 1, msg, newlinebuf); ilog(L_MAIN, "\"%s\", line %d: %s at '%s'", conffilebuf, lineno + 1, msg, newlinebuf); } diff --git a/src/send.c b/src/send.c index c0d029d0..0da51d36 100644 --- a/src/send.c +++ b/src/send.c @@ -49,6 +49,8 @@ static void send_queued_write(rb_fde_t *F, void *data); unsigned long current_serial = 0L; +struct Client *remote_rehash_oper_p; + /* send_linebuf() * * inputs - client to send to, linebuf to attach @@ -969,6 +971,16 @@ sendto_realops_snomask(int flags, int level, const char *pattern, ...) ":%s ENCAP * SNOTE %c :%s", me.id, snobuf[1], buf); } + else if (remote_rehash_oper_p != NULL) + { + /* rather a lot of copying around, oh well -- jilles */ + va_start(args, pattern); + rb_vsnprintf(buf, sizeof(buf), pattern, args); + va_end(args); + rb_linebuf_putmsg(&linebuf, pattern, NULL, + ":%s NOTICE * :*** Notice -- %s", me.name, buf); + sendto_one_notice(remote_rehash_oper_p, ":*** Notice -- %s", buf); + } else { va_start(args, pattern);