mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-19 18:28:33 +00:00
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.
This commit is contained in:
parent
ece0d1ab49
commit
0a4f6992e0
@ -2340,33 +2340,13 @@ 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;
|
||||
struct arg tlv_arg;
|
||||
int ret;
|
||||
|
||||
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->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;
|
||||
|
||||
return 0;
|
||||
set_tlv_arg(PP2_TYPE_UNIQUE_ID, &tlv_arg);
|
||||
ret = smp_fetch_fc_pp_tlv(&tlv_arg, smp, kw, private);
|
||||
smp->flags &= ~SMP_F_NOT_LAST; // return only the first unique ID
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* fetch the error code of a connection */
|
||||
|
Loading…
Reference in New Issue
Block a user