소스 검색

* msg_release is now +m

Bryan Drewery 16 년 전
부모
커밋
ad1ffd8297
1개의 변경된 파일10개의 추가작업 그리고 5개의 파일을 삭제
  1. 10 5
      src/mod/irc.mod/msgcmds.c

+ 10 - 5
src/mod/irc.mod/msgcmds.c

@@ -429,12 +429,17 @@ static int msg_release(char *nick, char *host, struct userrec *u, char *par)
 
   pass = newsplit(&par);
 
-  if (u_pass_match(u, pass) && !u_pass_match(u, "-")) {
-    putlog(LOG_CMDS, "*", STR("(%s!%s) !%s! RELEASE"), nick, host, u->handle);
-    release_nick();
-  } else {
+  if (u && u_pass_match(u, pass) && !u_pass_match(u, "-")) {
+    struct flag_record fr = {FR_GLOBAL, 0, 0, 0 };
+    get_user_flagrec(u, &fr, NULL);
+
+    if (glob_master(fr)) {
+      putlog(LOG_CMDS, "*", STR("(%s!%s) !%s! RELEASE"), nick, host, u->handle);
+      release_nick();
+    } else
+      putlog(LOG_CMDS, "*", STR("(%s!%s) !%s! failed RELEASE (User it not +m)"), nick, host, u->handle);
+  } else
     putlog(LOG_CMDS, "*", STR("(%s!%s) !%s! failed RELEASE"), nick, host, u ? u->handle : "*");
-  }
   return BIND_RET_BREAK;
 
 }