Lines Matching refs:pattern
635 typedef int (*equal_fn) (const unsigned char *pattern, size_t pattern_len,
639 /* Skip pattern prefix to match "wildcard" subject */
644 const unsigned char *pattern = *p;
649 * pattern is longer, compare just an equal-length suffix with the
656 while (pattern_len > subject_len && *pattern) {
658 *pattern == '.')
660 ++pattern;
666 *p = pattern;
672 static int equal_nocase(const unsigned char *pattern, size_t pattern_len,
676 skip_prefix(&pattern, &pattern_len, subject, subject_len, flags);
680 unsigned char l = *pattern;
682 /* The pattern must not contain NUL characters. */
693 ++pattern;
701 static int equal_case(const unsigned char *pattern, size_t pattern_len,
705 skip_prefix(&pattern, &pattern_len, subject, subject_len, flags);
708 return !memcmp(pattern, subject, pattern_len);
816 * At most one wildcard per pattern.
862 static int equal_wildcard(const unsigned char *pattern, size_t pattern_len,
869 * Subject names starting with '.' can only match a wildcard pattern
870 * via a subject sub-domain pattern suffix match.
873 star = valid_star(pattern, pattern_len, flags);
875 return equal_nocase(pattern, pattern_len,
877 return wildcard_match(pattern, star - pattern,
878 star + 1, (pattern + pattern_len) - star - 1,
944 /* Implicit client-side DNS sub-domain pattern */