aboutsummaryrefslogtreecommitdiffstats
path: root/net/rxrpc/insecure.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2016-04-11 15:34:42 -0400
committerDavid S. Miller <davem@davemloft.net>2016-04-11 15:34:42 -0400
commit7c3da7d0d4f3506ef70d9cf148a22400477854d0 (patch)
tree717c4bd8d4a001016917688b38ce767ecf79ce39 /net/rxrpc/insecure.c
parentc64a73d584cc344915baee1183c791c0d0c42d79 (diff)
parente0e4d82f3be60cfe8b10304c6daf3ca5973ae9e3 (diff)
Merge branch 'rprpc-2nd-rewrite-part-1'
David Howells says: ==================== RxRPC: 2nd rewrite part 1 Okay, I'm in the process of rewriting the RxRPC rewrite. The primary aim of this second rewrite is to strictly control the number of active connections we know about and to get rid of connections we don't need much more quickly. On top of this, there are fixes to the protocol handling which will all occur in later parts. Here's the first set of patches from the second go, aimed at net-next. These are all fixes and cleanups preparatory to the main event. Notable parts of this set include: (1) A fix for the AFS filesystem to wait for outstanding calls to complete before closing the RxRPC socket. (2) Differentiation of local and remote abort codes. At a future point userspace will get to see this via control message data on recvmsg(). (3) Absorb the rxkad module into the af_rxrpc module to prevent a dependency loop. (4) Create a null security module and unconditionalise calls into the security module that's in force (there will always be a security module applied to a connection, even if it's just the null one). ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rxrpc/insecure.c')
-rw-r--r--net/rxrpc/insecure.c83
1 files changed, 83 insertions, 0 deletions
diff --git a/net/rxrpc/insecure.c b/net/rxrpc/insecure.c
new file mode 100644
index 000000000000..e571403613c1
--- /dev/null
+++ b/net/rxrpc/insecure.c
@@ -0,0 +1,83 @@
1/* Null security operations.
2 *
3 * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public Licence
8 * as published by the Free Software Foundation; either version
9 * 2 of the Licence, or (at your option) any later version.
10 */
11
12#include <net/af_rxrpc.h>
13#include "ar-internal.h"
14
15static int none_init_connection_security(struct rxrpc_connection *conn)
16{
17 return 0;
18}
19
20static void none_prime_packet_security(struct rxrpc_connection *conn)
21{
22}
23
24static int none_secure_packet(const struct rxrpc_call *call,
25 struct sk_buff *skb,
26 size_t data_size,
27 void *sechdr)
28{
29 return 0;
30}
31
32static int none_verify_packet(const struct rxrpc_call *call,
33 struct sk_buff *skb,
34 u32 *_abort_code)
35{
36 return 0;
37}
38
39static int none_respond_to_challenge(struct rxrpc_connection *conn,
40 struct sk_buff *skb,
41 u32 *_abort_code)
42{
43 *_abort_code = RX_PROTOCOL_ERROR;
44 return -EPROTO;
45}
46
47static int none_verify_response(struct rxrpc_connection *conn,
48 struct sk_buff *skb,
49 u32 *_abort_code)
50{
51 *_abort_code = RX_PROTOCOL_ERROR;
52 return -EPROTO;
53}
54
55static void none_clear(struct rxrpc_connection *conn)
56{
57}
58
59static int none_init(void)
60{
61 return 0;
62}
63
64static void none_exit(void)
65{
66}
67
68/*
69 * RxRPC Kerberos-based security
70 */
71const struct rxrpc_security rxrpc_no_security = {
72 .name = "none",
73 .security_index = RXRPC_SECURITY_NONE,
74 .init = none_init,
75 .exit = none_exit,
76 .init_connection_security = none_init_connection_security,
77 .prime_packet_security = none_prime_packet_security,
78 .secure_packet = none_secure_packet,
79 .verify_packet = none_verify_packet,
80 .respond_to_challenge = none_respond_to_challenge,
81 .verify_response = none_verify_response,
82 .clear = none_clear,
83};