Bläddra i källkod

strings: Restrict *? explicitly as they are used for mask matching

tags/v0.1.0
Daniel Oaks 8 år sedan
förälder
incheckning
fd6ed36995
1 ändrade filer med 7 tillägg och 4 borttagningar
  1. 7
    4
      irc/strings.go

+ 7
- 4
irc/strings.go Visa fil

@@ -38,13 +38,16 @@ func (name Name) IsChannel() bool {
38 38
 func (name Name) IsNickname() bool {
39 39
 	namestr := name.String()
40 40
 	// * is used for unregistered clients
41
+	// * is used for mask matching
42
+	// ? is used for mask matching
41 43
 	// , is used as a separator by the protocol
42
-	// # is a channel prefix
43
-	// @+ are channel membership prefixes
44 44
 	// ! separates username from nickname
45 45
 	// @ separates nick+user from hostname
46
-	if namestr == "*" || strings.Contains(namestr, ",") || strings.Contains("#@+", string(namestr[0])) ||
47
-		strings.Contains(namestr, "!") || strings.Contains(namestr, "@") {
46
+	// # is a channel prefix
47
+	// @+ are channel membership prefixes
48
+	if strings.Contains(namestr, "*") || strings.Contains(namestr, "?") ||
49
+		strings.Contains(namestr, ",") || strings.Contains(namestr, "!") ||
50
+		strings.Contains(namestr, "@") || strings.Contains("#@+", string(namestr[0])) {
48 51
 		return false
49 52
 	}
50 53
 	// names that look like hostnames are restricted to servers, as with other ircds

Laddar…
Avbryt
Spara