]> jfr.im git - solanum.git/blobdiff - modules/m_topic.c
chmode: Get elevated access for op-only queries
[solanum.git] / modules / m_topic.c
index a9b169a5e86a253812cdd9db136a65ba2d138aa3..e4e734b2bff341d6cdf23ed182a27de7a768c93e 100644 (file)
@@ -112,7 +112,7 @@ m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
                }
 
                if(MyClient(source_p) && !is_chanop_voiced(msptr) &&
-                               !IsOper(source_p) &&
+                               !IsOperGeneral(source_p) &&
                                !add_channel_target(source_p, chptr))
                {
                        sendto_one(source_p, form_str(ERR_TARGCHANGE),
@@ -140,7 +140,7 @@ m_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
                                        ":%s TOPIC %s :%s",
                                        use_id(source_p), chptr->chname,
                                        chptr->topic == NULL ? "" : chptr->topic);
-                       sendto_channel_local(ALL_MEMBERS,
+                       sendto_channel_local(source_p, ALL_MEMBERS,
                                        chptr, ":%s!%s@%s TOPIC %s :%s",
                                        source_p->name, source_p->username,
                                        source_p->host, chptr->chname,
@@ -197,7 +197,7 @@ ms_topic(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
 
        set_channel_topic(chptr, parv[4], parv[2], atoi(parv[3]));
 
-       sendto_channel_local(ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
+       sendto_channel_local(source_p, ALL_MEMBERS, chptr, ":%s TOPIC %s :%s",
                             source_p->name, parv[1],
                             chptr->topic == NULL ? "" : chptr->topic);
 }