فهرست منبع

* cmd_chanset wasn't either (checking +private)

svn: 1361
Bryan Drewery 21 سال پیش
والد
کامیت
c1a7e00d9e
2فایلهای تغییر یافته به همراه5 افزوده شده و 3 حذف شده
  1. 1 1
      doc/UPDATES
  2. 4 2
      src/mod/channels.mod/cmdschan.c

+ 1 - 1
doc/UPDATES

@@ -46,7 +46,7 @@ This is a summary of ChangeLog basically.
 * Simple autoaway on dcc after 10 minutes, will be customizable in the future.
 * Fixed a problem with what ip was bined when using '.' as the ip.
 * Fixed some problems with special characters in conf files.
-* cmd_chaninfo didn't check for +private 
+* cmd_chaninfo/chanset didn't check for +private access correctly
 
 1.1.9
 

+ 4 - 2
src/mod/channels.mod/cmdschan.c

@@ -1324,11 +1324,13 @@ static void cmd_chanset(int idx, char *par)
     if (strchr(CHANMETA, par[0])) {
       chname = newsplit(&par);
       get_user_flagrec(dcc[idx].user, &user, chname);
+      chan = findchan_by_dname(chname);
+
       if (!glob_master(user) && !chan_master(user)) {
         dprintf(idx, "You don't have access to %s. \n", chname);
 	return;
-      } else if (!(chan = findchan_by_dname(chname)) && (chname[0] != '+')) {
-        dprintf(idx, "That channel doesn't exist!\n");
+      } else if ((!chan && (chname[0] != '+')) || (chan && privchan(user, chan, PRIV_OP))) {
+        dprintf(idx, "No such channel.\n");
 	return;
       } else if ((strstr(par, "+private") || strstr(par, "-private")) && (!glob_owner(user))) {
         dprintf(idx, "You don't have access to set +/-private on %s (halting command due to lazy coder).\n", chname);