diff options
| author | David Howells <dhowells@redhat.com> | 2014-09-16 17:36:06 +0100 | 
|---|---|---|
| committer | David Howells <dhowells@redhat.com> | 2014-09-16 17:36:06 +0100 | 
| commit | c06cfb08b88dfbe13be44a69ae2fdc3a7c902d81 (patch) | |
| tree | 8bc0e3794ffb426b3cbb2c0d7c2dbbd4b28e3054 /net/dns_resolver | |
| parent | 614d8c39014c185aa0f7254f0a470cc33fc1b284 (diff) | |
KEYS: Remove key_type::match in favour of overriding default by match_preparse
A previous patch added a ->match_preparse() method to the key type.  This is
allowed to override the function called by the iteration algorithm.
Therefore, we can just set a default that simply checks for an exact match of
the key description with the original criterion data and allow match_preparse
to override it as needed.
The key_type::match op is then redundant and can be removed, as can the
user_match() function.
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Diffstat (limited to 'net/dns_resolver')
| -rw-r--r-- | net/dns_resolver/dns_key.c | 17 | 
1 files changed, 13 insertions, 4 deletions
| diff --git a/net/dns_resolver/dns_key.c b/net/dns_resolver/dns_key.c index 92df6e508ae7..a07b9ba7e0b7 100644 --- a/net/dns_resolver/dns_key.c +++ b/net/dns_resolver/dns_key.c @@ -176,9 +176,8 @@ static void dns_resolver_free_preparse(struct key_preparsed_payload *prep)   * The domain name may be a simple name or an absolute domain name (which   * should end with a period).  The domain name is case-independent.   */ -static int -dns_resolver_match(const struct key *key, -		   const struct key_match_data *match_data) +static int dns_resolver_cmp(const struct key *key, +			    const struct key_match_data *match_data)  {  	int slen, dlen, ret = 0;  	const char *src = key->description, *dsp = match_data->raw_data; @@ -210,6 +209,16 @@ no_match:  }  /* + * Preparse the match criterion. + */ +static int dns_resolver_match_preparse(struct key_match_data *match_data) +{ +	match_data->lookup_type = KEYRING_SEARCH_LOOKUP_ITERATE; +	match_data->cmp = dns_resolver_cmp; +	return 0; +} + +/*   * Describe a DNS key   */  static void dns_resolver_describe(const struct key *key, struct seq_file *m) @@ -243,7 +252,7 @@ struct key_type key_type_dns_resolver = {  	.preparse	= dns_resolver_preparse,  	.free_preparse	= dns_resolver_free_preparse,  	.instantiate	= generic_key_instantiate, -	.match		= dns_resolver_match, +	.match_preparse	= dns_resolver_match_preparse,  	.revoke		= user_revoke,  	.destroy	= user_destroy,  	.describe	= dns_resolver_describe, | 
