Merge pull request #14547 from keszybz/networkctl-matching
networkctl: return error or warning when interfaces are not matched
This commit is contained in:
+6
-5
@@ -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
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user