summaryrefslogtreecommitdiffstats
path: root/net/tls/tls_strp.c
blob: 40b17736612184796cf8d40cf3f4415725f64d77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: GPL-2.0-only

#include <linux/skbuff.h>

#include "tls.h"

struct sk_buff *tls_strp_msg_detach(struct tls_sw_context_rx *ctx)
{
	struct sk_buff *skb;

	skb = ctx->recv_pkt;
	ctx->recv_pkt = NULL;
	return skb;
}

int tls_strp_msg_hold(struct sock *sk, struct sk_buff *skb,
		      struct sk_buff_head *dst)
{
	struct sk_buff *clone;

	clone = skb_clone(skb, sk->sk_allocation);
	if (!clone)
		return -ENOMEM;
	__skb_queue_tail(dst, clone);
	return 0;
}