IRCUser to compare.
IRCUser to compare this_ with.
with which to translate the nicknames in the relevant masks to lowercase.
IRCServer server; IRCUser u1; with (u1) { nickname = "foo"; ident = "NaN"; address = "asdf.asdf.com"; } IRCUser u2; with (u2) { nickname = "*"; ident = "NaN"; address = "*"; } assert(u1.matchesByMask(u2, server.caseMapping)); assert(u1.matchesByMask(IRCUser("f*!NaN@*.com"), server.caseMapping));
IRCUser first = IRCUser("kameloso!NaN@wopkfoewopk.com"); IRCUser second = IRCUser("*!*@*"); assert(first.matchesByMask(second)); IRCUser third = IRCUser("kame*!*@*.com"); assert(first.matchesByMask(third)); IRCUser fourth = IRCUser("*loso!*@wop*"); assert(first.matchesByMask(fourth)); assert(second.matchesByMask(first)); assert(third.matchesByMask(first)); assert(fourth.matchesByMask(first)); IRCUser fifth = IRCUser("kameloso!*@*"); IRCUser sixth = IRCUser("KAMELOSO!ident@address.com"); assert(fifth.matchesByMask(sixth)); IRCUser seventh = IRCUser("^[0V0]^!ID@ADD"); IRCUser eight = IRCUser("~{0v0}~!id@add"); assert(seventh.matchesByMask(eight, IRCServer.CaseMapping.rfc1459)); assert(!seventh.matchesByMask(eight, IRCServer.CaseMapping.strict_rfc1459)); IRCUser ninth = IRCUser("*!*@170.233.40.144]"); // Accidental trailing ] IRCUser tenth = IRCUser("Joe!Shmoe@*"); assert(ninth.matchesByMask(tenth, IRCServer.CaseMapping.rfc1459)); IRCUser eleventh = IRCUser("abc]!*@*"); IRCUser twelfth = IRCUser("abc}!abc}@abc}"); assert(eleventh.matchesByMask(twelfth, IRCServer.CaseMapping.rfc1459));
Compares this IRCUser with a second one, treating fields with asterisks as glob wildcards, mimicking *!*@* mask matching.