X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=urlmatch.h;h=6ff42f81b0c1e0fdcdd75511f8b7746da0dccbf7;hb=ffc97f1a9e154262ae23bf2d6ec6c1541fa3b15a;hp=eed5f292354cfef466f15f29ef944450e10d4d1a;hpb=bcf08f33d840b8a6bef347aea3ac2359874c888a;p=thirdparty%2Fgit.git diff --git a/urlmatch.h b/urlmatch.h index eed5f29235..6ff42f81b0 100644 --- a/urlmatch.h +++ b/urlmatch.h @@ -50,6 +50,20 @@ struct urlmatch_config { void *cb; int (*collect_fn)(const char *var, const char *value, void *cb); int (*cascade_fn)(const char *var, const char *value, void *cb); + /* + * Compare the two matches, the one just discovered and the existing + * best match and return a negative value if the found item is to be + * rejected or a non-negative value if it is to be accepted. If this + * field is set to NULL, use the default comparison technique, which + * checks to ses if found is better (according to the urlmatch + * specificity rules) than existing. + */ + int (*select_fn)(const struct urlmatch_item *found, const struct urlmatch_item *existing); + /* + * An optional callback to allow e.g. for partial URLs; it shall + * return 1 or 0 depending whether `url` matches or not. + */ + int (*fallback_match_fn)(const char *url, void *cb); }; int urlmatch_config_entry(const char *var, const char *value, void *cb);