]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/tools.c
Fix typos and copy errors in memoserv help
[irc/evilnet/x3.git] / src / tools.c
index 357c1c7c3f6eb35a6c66d4957988947115c932f6..ce3c936985284e9d842f67b300a89061971124f3 100644 (file)
@@ -645,7 +645,7 @@ user_matches_glob(struct userNode *user, const char *orig_glob, int flags, int s
     if (is_extended) {
         log_module(MAIN_LOG, LOG_DEBUG, "Extended ban. T (%c) R (%d) M (%s)", exttype, extreverse, glob);
         switch (exttype) {
-            case 'a':
+            case 'a': // account
                 if (user->handle_info) {
                     if (extreverse) {
                         if (0 != strcasecmp(glob, user->handle_info->handle))
@@ -659,7 +659,7 @@ user_matches_glob(struct userNode *user, const char *orig_glob, int flags, int s
                         return 1;
                 }
                 return match_ircglob(user->hostname, glob);
-            case 'c':
+            case 'c': // another channel
                 if (!strstr(glob, "#"))
                     return -1;
 
@@ -738,6 +738,15 @@ user_matches_glob(struct userNode *user, const char *orig_glob, int flags, int s
                 return match_ircglob(user->hostname, glob);
             case 'R': /* this is handled ircd side */
                 return match_ircglob(user->hostname, glob);
+            case 'm': // mute by mark
+                 if(user->mark && !strcmp(glob, user->mark)) 
+                    return true;
+                else 
+                    return false;
+                
+            case 'M': // mute by mark unless authed
+                return false; // can never match a logged in user
+
             default:
                 return -1;
         }
@@ -788,7 +797,8 @@ user_matches_glob(struct userNode *user, const char *orig_glob, int flags, int s
 
     /* If only matching the visible hostnames, bail early. */
     if ((flags & MATCH_VISIBLE) && IsHiddenHost(user)
-        && (IsFakeHost(user) || (hidden_host_suffix && user->handle_info)))
+        && (IsFakeHost(user) || (hidden_host_suffix && user->handle_info) ||
+            user->crypthost || user->cryptip))
         return 0;
     /* If it might be an IP glob, test that. */
     if (!glob[strspn(glob, "0123456789./*?")]