Merge pull request #14547 from keszybz/networkctl-matching

networkctl: return error or warning when interfaces are not matched
This commit is contained in:
Yu Watanabe
2020-01-15 11:56:01 +09:00
committed by GitHub
7 changed files with 59 additions and 22 deletions
+6 -5
View File
@@ -800,12 +800,13 @@ char **strv_shell_escape(char **l, const char *bad) {
return l;
}
bool strv_fnmatch(char* const* patterns, const char *s, int flags) {
char* const* p;
STRV_FOREACH(p, patterns)
if (fnmatch(*p, s, flags) == 0)
bool strv_fnmatch_full(char* const* patterns, const char *s, int flags, size_t *matched_pos) {
for (size_t i = 0; patterns && patterns[i]; i++)
if (fnmatch(patterns[i], s, flags) == 0) {
if (matched_pos)
*matched_pos = i;
return true;
}
return false;
}
+5 -2
View File
@@ -177,12 +177,15 @@ void strv_print(char * const *l);
char **strv_reverse(char **l);
char **strv_shell_escape(char **l, const char *bad);
bool strv_fnmatch(char* const* patterns, const char *s, int flags);
bool strv_fnmatch_full(char* const* patterns, const char *s, int flags, size_t *matched_pos);
static inline bool strv_fnmatch(char* const* patterns, const char *s) {
return strv_fnmatch_full(patterns, s, 0, NULL);
}
static inline bool strv_fnmatch_or_empty(char* const* patterns, const char *s, int flags) {
assert(s);
return strv_isempty(patterns) ||
strv_fnmatch(patterns, s, flags);
strv_fnmatch_full(patterns, s, flags, NULL);
}
char ***strv_free_free(char ***l);