From 93e4acb0463657f1c4a2467ec7fdeafad907fd25 Mon Sep 17 00:00:00 2001
From: Alexander Stephan <alexander.stephan@sap.com>
Date: Wed, 16 Aug 2023 16:22:25 +0200
Subject: [PATCH 5/6] MINOR: sample: Refactor fc_pp_unique_id by wrapping the
 generic TLV fetch

The fetch logic is redundant and can be simplified by simply
calling the generic fetch with the correct TLV ID set as an
argument, similar to fc_pp_authority.
---
 src/connection.c | 30 +++---------------------------
 1 file changed, 3 insertions(+), 27 deletions(-)

diff --git a/src/connection.c b/src/connection.c
index e796f4f1a..bbdf50a25 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -2277,34 +2277,10 @@ int smp_fetch_fc_pp_authority(const struct arg *args, struct sample *smp, const
 /* fetch the unique ID TLV from a PROXY protocol header */
 int smp_fetch_fc_pp_unique_id(const struct arg *args, struct sample *smp, const char *kw, void *private)
 {
-	struct connection *conn = NULL;
-	struct conn_tlv_list *conn_tlv = NULL;
-
-	conn = objt_conn(smp->sess->origin);
-	if (!conn)
-		return 0;
-
-	if (conn->flags & CO_FL_WAIT_XPRT) {
-		smp->flags |= SMP_F_MAY_CHANGE;
-		return 0;
-	}
-
-	conn_tlv = smp->ctx.p ? smp->ctx.p : LIST_ELEM(conn->tlv_list.n, struct conn_tlv_list *, list);
-	list_for_each_entry_from(conn_tlv, &conn->tlv_list, list) {
-		if (conn_tlv->type == PP2_TYPE_UNIQUE_ID) {
-			smp->flags |= SMP_F_NOT_LAST;
-			smp->data.type = SMP_T_STR;
-			smp->data.u.str.area = conn_tlv->value;
-			smp->data.u.str.data = conn_tlv->len;
-			smp->ctx.p = conn_tlv;
-
-			return 1;
-		}
-	}
-
-	smp->flags &= ~SMP_F_NOT_LAST;
+	struct arg tlv_arg;
 
-	return 0;
+	set_tlv_arg(PP2_TYPE_UNIQUE_ID, &tlv_arg);
+	return smp_fetch_fc_pp_tlv(&tlv_arg, smp, kw, private);
 }
 
 /* fetch the error code of a connection */
-- 
2.35.3

