163static int hostmatch(
const char *hostname,
const char *pattern)
165 const char *pattern_label_end, *pattern_wildcard, *hostname_label_end;
166 int wildcard_enabled;
167 size_t prefixlen, suffixlen;
168 pattern_wildcard = strchr(pattern,
'*');
169 if(pattern_wildcard == NULL)
175 wildcard_enabled = 1;
176 pattern_label_end = strchr(pattern,
'.');
177 if(pattern_label_end == NULL || strchr(pattern_label_end+1,
'.') == NULL ||
178 pattern_wildcard > pattern_label_end ||
180 wildcard_enabled = 0;
182 if(!wildcard_enabled)
186 hostname_label_end = strchr(hostname,
'.');
187 if(hostname_label_end == NULL ||
194 if(hostname_label_end - hostname < pattern_label_end - pattern)
197 prefixlen = pattern_wildcard - pattern;
198 suffixlen = pattern_label_end - (pattern_wildcard+1);