func wildcardMatch()

in plugins/core/tracer_ignore.go [82:115]


func wildcardMatch(pattern string, p int, operationName string, s int) bool {
	pc := safeCharAt(pattern, p)

	if pc == 0 {
		for {
			sc := safeCharAt(operationName, s)
			if sc == 0 {
				return true
			}
			if sc == '/' {
				return s == len(operationName)-1
			}
			s++
		}
	}

	for {
		sc := safeCharAt(operationName, s)
		if sc == '/' {
			if pc == sc {
				return normalMatch(pattern, p+1, operationName, s+1)
			}
			return false
		}
		if !normalMatch(pattern, p, operationName, s) {
			if s >= len(operationName) {
				return false
			}
			s++
			continue
		}
		return true
	}
}