diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /net/dns_resolver | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'net/dns_resolver')
-rw-r--r-- | net/dns_resolver/Makefile | 2 | ||||
-rw-r--r-- | net/dns_resolver/dns_key.c | 30 |
2 files changed, 24 insertions, 8 deletions
diff --git a/net/dns_resolver/Makefile b/net/dns_resolver/Makefile index c0ef4e71dc49..d5c13c2eb36d 100644 --- a/net/dns_resolver/Makefile +++ b/net/dns_resolver/Makefile | |||
@@ -4,4 +4,4 @@ | |||
4 | 4 | ||
5 | obj-$(CONFIG_DNS_RESOLVER) += dns_resolver.o | 5 | obj-$(CONFIG_DNS_RESOLVER) += dns_resolver.o |
6 | 6 | ||
7 | dns_resolver-objs := dns_key.o dns_query.o | 7 | dns_resolver-y := dns_key.o dns_query.o |
diff --git a/net/dns_resolver/dns_key.c b/net/dns_resolver/dns_key.c index 739435a6af39..fa000d26dc60 100644 --- a/net/dns_resolver/dns_key.c +++ b/net/dns_resolver/dns_key.c | |||
@@ -67,8 +67,9 @@ dns_resolver_instantiate(struct key *key, const void *_data, size_t datalen) | |||
67 | size_t result_len = 0; | 67 | size_t result_len = 0; |
68 | const char *data = _data, *end, *opt; | 68 | const char *data = _data, *end, *opt; |
69 | 69 | ||
70 | kenter("%%%d,%s,'%s',%zu", | 70 | kenter("%%%d,%s,'%*.*s',%zu", |
71 | key->serial, key->description, data, datalen); | 71 | key->serial, key->description, |
72 | (int)datalen, (int)datalen, data, datalen); | ||
72 | 73 | ||
73 | if (datalen <= 1 || !data || data[datalen - 1] != '\0') | 74 | if (datalen <= 1 || !data || data[datalen - 1] != '\0') |
74 | return -EINVAL; | 75 | return -EINVAL; |
@@ -211,10 +212,25 @@ static void dns_resolver_describe(const struct key *key, struct seq_file *m) | |||
211 | int err = key->type_data.x[0]; | 212 | int err = key->type_data.x[0]; |
212 | 213 | ||
213 | seq_puts(m, key->description); | 214 | seq_puts(m, key->description); |
214 | if (err) | 215 | if (key_is_instantiated(key)) { |
215 | seq_printf(m, ": %d", err); | 216 | if (err) |
216 | else | 217 | seq_printf(m, ": %d", err); |
217 | seq_printf(m, ": %u", key->datalen); | 218 | else |
219 | seq_printf(m, ": %u", key->datalen); | ||
220 | } | ||
221 | } | ||
222 | |||
223 | /* | ||
224 | * read the DNS data | ||
225 | * - the key's semaphore is read-locked | ||
226 | */ | ||
227 | static long dns_resolver_read(const struct key *key, | ||
228 | char __user *buffer, size_t buflen) | ||
229 | { | ||
230 | if (key->type_data.x[0]) | ||
231 | return key->type_data.x[0]; | ||
232 | |||
233 | return user_read(key, buffer, buflen); | ||
218 | } | 234 | } |
219 | 235 | ||
220 | struct key_type key_type_dns_resolver = { | 236 | struct key_type key_type_dns_resolver = { |
@@ -224,7 +240,7 @@ struct key_type key_type_dns_resolver = { | |||
224 | .revoke = user_revoke, | 240 | .revoke = user_revoke, |
225 | .destroy = user_destroy, | 241 | .destroy = user_destroy, |
226 | .describe = dns_resolver_describe, | 242 | .describe = dns_resolver_describe, |
227 | .read = user_read, | 243 | .read = dns_resolver_read, |
228 | }; | 244 | }; |
229 | 245 | ||
230 | static int __init init_dns_resolver(void) | 246 | static int __init init_dns_resolver(void) |