}
user = userhost;
host = NULL;
- tmp = count_realnames(userhost + 2);
- if ((tmp >= feature_int(FEAT_GLINEMAXUSERCOUNT))
- && !(flags & GLINE_OPERFORCE))
- return send_reply(sptr, ERR_TOOMANYUSERS, tmp);
+ if (MyUser(sptr) || (IsUser(sptr) && flags & GLINE_LOCAL)) {
+ tmp = count_realnames(userhost + 2);
+ if ((tmp >= feature_int(FEAT_GLINEMAXUSERCOUNT))
+ && !(flags & GLINE_OPERFORCE))
+ return send_reply(sptr, ERR_TOOMANYUSERS, tmp);
+ }
} else {
canon_userhost(userhost, &user, &host, "*");
if (sizeof(uhmask) <