diff options
author | David Howells <dhowells@redhat.com> | 2014-09-16 12:36:06 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2014-09-16 12:36:06 -0400 |
commit | c06cfb08b88dfbe13be44a69ae2fdc3a7c902d81 (patch) | |
tree | 8bc0e3794ffb426b3cbb2c0d7c2dbbd4b28e3054 /net | |
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')
-rw-r--r-- | net/ceph/crypto.c | 1 | ||||
-rw-r--r-- | net/dns_resolver/dns_key.c | 17 | ||||
-rw-r--r-- | net/rxrpc/ar-key.c | 2 |
3 files changed, 13 insertions, 7 deletions
diff --git a/net/ceph/crypto.c b/net/ceph/crypto.c index ffeba8f9dda9..62fc5e7a9acf 100644 --- a/net/ceph/crypto.c +++ b/net/ceph/crypto.c | |||
@@ -476,7 +476,6 @@ struct key_type key_type_ceph = { | |||
476 | .preparse = ceph_key_preparse, | 476 | .preparse = ceph_key_preparse, |
477 | .free_preparse = ceph_key_free_preparse, | 477 | .free_preparse = ceph_key_free_preparse, |
478 | .instantiate = generic_key_instantiate, | 478 | .instantiate = generic_key_instantiate, |
479 | .match = user_match, | ||
480 | .destroy = ceph_key_destroy, | 479 | .destroy = ceph_key_destroy, |
481 | }; | 480 | }; |
482 | 481 | ||
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) | |||
176 | * The domain name may be a simple name or an absolute domain name (which | 176 | * The domain name may be a simple name or an absolute domain name (which |
177 | * should end with a period). The domain name is case-independent. | 177 | * should end with a period). The domain name is case-independent. |
178 | */ | 178 | */ |
179 | static int | 179 | static int dns_resolver_cmp(const struct key *key, |
180 | dns_resolver_match(const struct key *key, | 180 | const struct key_match_data *match_data) |
181 | const struct key_match_data *match_data) | ||
182 | { | 181 | { |
183 | int slen, dlen, ret = 0; | 182 | int slen, dlen, ret = 0; |
184 | const char *src = key->description, *dsp = match_data->raw_data; | 183 | const char *src = key->description, *dsp = match_data->raw_data; |
@@ -210,6 +209,16 @@ no_match: | |||
210 | } | 209 | } |
211 | 210 | ||
212 | /* | 211 | /* |
212 | * Preparse the match criterion. | ||
213 | */ | ||
214 | static int dns_resolver_match_preparse(struct key_match_data *match_data) | ||
215 | { | ||
216 | match_data->lookup_type = KEYRING_SEARCH_LOOKUP_ITERATE; | ||
217 | match_data->cmp = dns_resolver_cmp; | ||
218 | return 0; | ||
219 | } | ||
220 | |||
221 | /* | ||
213 | * Describe a DNS key | 222 | * Describe a DNS key |
214 | */ | 223 | */ |
215 | static void dns_resolver_describe(const struct key *key, struct seq_file *m) | 224 | static void dns_resolver_describe(const struct key *key, struct seq_file *m) |
@@ -243,7 +252,7 @@ struct key_type key_type_dns_resolver = { | |||
243 | .preparse = dns_resolver_preparse, | 252 | .preparse = dns_resolver_preparse, |
244 | .free_preparse = dns_resolver_free_preparse, | 253 | .free_preparse = dns_resolver_free_preparse, |
245 | .instantiate = generic_key_instantiate, | 254 | .instantiate = generic_key_instantiate, |
246 | .match = dns_resolver_match, | 255 | .match_preparse = dns_resolver_match_preparse, |
247 | .revoke = user_revoke, | 256 | .revoke = user_revoke, |
248 | .destroy = user_destroy, | 257 | .destroy = user_destroy, |
249 | .describe = dns_resolver_describe, | 258 | .describe = dns_resolver_describe, |
diff --git a/net/rxrpc/ar-key.c b/net/rxrpc/ar-key.c index 3907add75932..10c6cb694b43 100644 --- a/net/rxrpc/ar-key.c +++ b/net/rxrpc/ar-key.c | |||
@@ -44,7 +44,6 @@ struct key_type key_type_rxrpc = { | |||
44 | .preparse = rxrpc_preparse, | 44 | .preparse = rxrpc_preparse, |
45 | .free_preparse = rxrpc_free_preparse, | 45 | .free_preparse = rxrpc_free_preparse, |
46 | .instantiate = generic_key_instantiate, | 46 | .instantiate = generic_key_instantiate, |
47 | .match = user_match, | ||
48 | .destroy = rxrpc_destroy, | 47 | .destroy = rxrpc_destroy, |
49 | .describe = rxrpc_describe, | 48 | .describe = rxrpc_describe, |
50 | .read = rxrpc_read, | 49 | .read = rxrpc_read, |
@@ -61,7 +60,6 @@ struct key_type key_type_rxrpc_s = { | |||
61 | .preparse = rxrpc_preparse_s, | 60 | .preparse = rxrpc_preparse_s, |
62 | .free_preparse = rxrpc_free_preparse_s, | 61 | .free_preparse = rxrpc_free_preparse_s, |
63 | .instantiate = generic_key_instantiate, | 62 | .instantiate = generic_key_instantiate, |
64 | .match = user_match, | ||
65 | .destroy = rxrpc_destroy_s, | 63 | .destroy = rxrpc_destroy_s, |
66 | .describe = rxrpc_describe, | 64 | .describe = rxrpc_describe, |
67 | }; | 65 | }; |