aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2014-09-16 12:36:06 -0400
committerDavid Howells <dhowells@redhat.com>2014-09-16 12:36:06 -0400
commitc06cfb08b88dfbe13be44a69ae2fdc3a7c902d81 (patch)
tree8bc0e3794ffb426b3cbb2c0d7c2dbbd4b28e3054 /net
parent614d8c39014c185aa0f7254f0a470cc33fc1b284 (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.c1
-rw-r--r--net/dns_resolver/dns_key.c17
-rw-r--r--net/rxrpc/ar-key.c2
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 */
179static int 179static int dns_resolver_cmp(const struct key *key,
180dns_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 */
214static 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 */
215static void dns_resolver_describe(const struct key *key, struct seq_file *m) 224static 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};