|
|
@@ -41,6 +41,7 @@ int afs_open_socket(struct afs_net *net)
|
|
|
{
|
|
|
struct sockaddr_rxrpc srx;
|
|
|
struct socket *socket;
|
|
|
+ unsigned int min_level;
|
|
|
int ret;
|
|
|
|
|
|
_enter("");
|
|
|
@@ -60,6 +61,12 @@ int afs_open_socket(struct afs_net *net)
|
|
|
srx.transport.sin6.sin6_family = AF_INET6;
|
|
|
srx.transport.sin6.sin6_port = htons(AFS_CM_PORT);
|
|
|
|
|
|
+ min_level = RXRPC_SECURITY_ENCRYPT;
|
|
|
+ ret = kernel_setsockopt(socket, SOL_RXRPC, RXRPC_MIN_SECURITY_LEVEL,
|
|
|
+ (void *)&min_level, sizeof(min_level));
|
|
|
+ if (ret < 0)
|
|
|
+ goto error_2;
|
|
|
+
|
|
|
ret = kernel_bind(socket, (struct sockaddr *) &srx, sizeof(srx));
|
|
|
if (ret == -EADDRINUSE) {
|
|
|
srx.transport.sin6.sin6_port = 0;
|