const char *const *pati;
for (pati=pats; *pati; pati++) {
const char *pat=*pati;
- if (*pat=='!' || *pat=='+') { *want_io=*pat; pat++; }
+ if (*pat=='!' || *pat=='+' || *pat=='@') { *want_io=*pat; pat++; }
else if (*pat=='*' || isalnum((unsigned char)*pat)) { *want_io='+'; }
else cfgfatal(loc,"polypath","invalid interface name pattern `%s'",pat);
int match=fnmatch(pat,ifname,0);
struct interf_list *interfs;
switch (want) {
- case '+': interfs=&st->interfs_general; max_interfs=st->max_interfs;
- case '@': interfs=&st->interfs_dedicated; max_interfs=INT_MAX;
+ case '+': interfs=&st->interfs_general; max_interfs=st->max_interfs; break;
+ case '@': interfs=&st->interfs_dedicated; max_interfs=INT_MAX; break;
default: fatal("polypath: got bad want (%#x, %s)", want, ifname);
}