]> jfr.im git - solanum.git/blobdiff - ircd/s_conf.c
Merge pull request #293 from edk0/webirc
[solanum.git] / ircd / s_conf.c
index dbed64d02c85717c01e524ac9a9f8b5f6946a7be..700b8f7dca80378f88cef915a66efaaa364957b9 100644 (file)
@@ -25,6 +25,7 @@
 #include "stdinc.h"
 #include "ircd_defs.h"
 #include "s_conf.h"
+#include "s_user.h"
 #include "s_newconf.h"
 #include "newconf.h"
 #include "s_serv.h"
@@ -630,6 +631,8 @@ attach_conf(struct Client *client_p, struct ConfItem *aconf)
 bool
 rehash(bool sig)
 {
+       rb_dlink_node *n;
+
        hook_data_rehash hdata = { sig };
 
        if(sig)
@@ -648,6 +651,16 @@ rehash(bool sig)
 
        open_logfiles();
 
+       RB_DLINK_FOREACH(n, local_oper_list.head)
+       {
+               struct Client *oper = n->data;
+               const char *modeparv[4];
+               modeparv[0] = modeparv[1] = oper->name;
+               modeparv[2] = "+";
+               modeparv[3] = NULL;
+               user_mode(oper, oper, 3, modeparv);
+       }
+
        call_hook(h_rehash, &hdata);
        return false;
 }
@@ -1267,7 +1280,7 @@ get_oper_name(struct Client *client_p)
        {
                snprintf(buffer, sizeof(buffer), "%s!%s@%s{%s}",
                                client_p->name, client_p->username,
-                               client_p->host, client_p->localClient->opername);
+                               client_p->host, client_p->user->opername);
                return buffer;
        }