Blame SOURCES/0021-packet-add-sss_packet_set_body.patch

b833e0
From 3b0e48c33c6b43688ff46fed576266cfe6362595 Mon Sep 17 00:00:00 2001
b833e0
From: =?UTF-8?q?Pavel=20B=C5=99ezina?= <pbrezina@redhat.com>
b833e0
Date: Thu, 8 Oct 2020 13:25:17 +0200
b833e0
Subject: [PATCH 21/27] packet: add sss_packet_set_body
b833e0
b833e0
Reviewed-by: Robbie Harwood <rharwood@redhat.com>
b833e0
Reviewed-by: Sumit Bose <sbose@redhat.com>
b833e0
---
b833e0
 src/responder/common/responder_packet.c | 19 +++++++++++++++++++
b833e0
 src/responder/common/responder_packet.h |  5 +++++
b833e0
 2 files changed, 24 insertions(+)
b833e0
b833e0
diff --git a/src/responder/common/responder_packet.c b/src/responder/common/responder_packet.c
b833e0
index ab15b1dac..f56d92276 100644
b833e0
--- a/src/responder/common/responder_packet.c
b833e0
+++ b/src/responder/common/responder_packet.c
b833e0
@@ -302,6 +302,25 @@ void sss_packet_get_body(struct sss_packet *packet, uint8_t **body, size_t *blen
b833e0
     *blen = sss_packet_get_len(packet) - SSS_NSS_HEADER_SIZE;
b833e0
 }
b833e0
 
b833e0
+errno_t sss_packet_set_body(struct sss_packet *packet,
b833e0
+                            uint8_t *body,
b833e0
+                            size_t blen)
b833e0
+{
b833e0
+    uint8_t *pbody;
b833e0
+    size_t plen;
b833e0
+    errno_t ret;
b833e0
+
b833e0
+    ret = sss_packet_grow(packet, blen);
b833e0
+    if (ret != EOK) {
b833e0
+        return ret;
b833e0
+    }
b833e0
+
b833e0
+    sss_packet_get_body(packet, &pbody, &plen);
b833e0
+    memcpy(pbody, body, blen);
b833e0
+
b833e0
+    return EOK;
b833e0
+}
b833e0
+
b833e0
 void sss_packet_set_error(struct sss_packet *packet, int error)
b833e0
 {
b833e0
     SAFEALIGN_SETMEM_UINT32(packet->buffer + SSS_PACKET_ERR_OFFSET, error,
b833e0
diff --git a/src/responder/common/responder_packet.h b/src/responder/common/responder_packet.h
b833e0
index afceb4aae..509a22a9a 100644
b833e0
--- a/src/responder/common/responder_packet.h
b833e0
+++ b/src/responder/common/responder_packet.h
b833e0
@@ -42,4 +42,9 @@ uint32_t sss_packet_get_status(struct sss_packet *packet);
b833e0
 void sss_packet_get_body(struct sss_packet *packet, uint8_t **body, size_t *blen);
b833e0
 void sss_packet_set_error(struct sss_packet *packet, int error);
b833e0
 
b833e0
+/* Grow packet and set its body. */
b833e0
+errno_t sss_packet_set_body(struct sss_packet *packet,
b833e0
+                            uint8_t *body,
b833e0
+                            size_t blen);
b833e0
+
b833e0
 #endif /* __SSSSRV_PACKET_H__ */
b833e0
-- 
b833e0
2.21.3
b833e0