From 1ba281712f9db474b7e002825188cc418517bba3 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Fri, 30 Jan 2009 00:11:12 +0100 Subject: [PATCH] For remote rehashes, send error messages to the requesting oper as well. --- include/s_conf.h | 2 ++ modules/m_rehash.c | 2 ++ src/newconf.c | 2 ++ src/s_conf.c | 11 +++++++++++ 4 files changed, 17 insertions(+) diff --git a/include/s_conf.h b/include/s_conf.h index 815703e..f9b0ef7 100644 --- a/include/s_conf.h +++ b/include/s_conf.h @@ -54,6 +54,8 @@ 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/modules/m_rehash.c b/modules/m_rehash.c index 8bddf18..22848a8 100644 --- a/modules/m_rehash.c +++ b/modules/m_rehash.c @@ -361,7 +361,9 @@ me_rehash(struct Client *client_p, struct Client *source_p, int parc, const char source_p->servptr->name, SHARED_REHASH)) return 0; + remote_rehash_oper_p = source_p; do_rehash(source_p, parc > 1 ? parv[1] : NULL); + remote_rehash_oper_p = NULL; return 0; } diff --git a/src/newconf.c b/src/newconf.c index 9e929f3..ce954c4 100644 --- a/src/newconf.c +++ b/src/newconf.c @@ -1778,6 +1778,8 @@ 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 f578ae2..13751b5 100644 --- a/src/s_conf.c +++ b/src/s_conf.c @@ -76,6 +76,7 @@ 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 *); @@ -682,6 +683,10 @@ 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 { @@ -1154,6 +1159,9 @@ 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; } } @@ -1524,6 +1532,9 @@ 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); }