mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +02:00
MINOR: samples: Handle the type SMP_T_METH when we duplicate a sample in smp_dup
First, the type SMP_T_METH was not handled by smp_dup function. It was never called with this kind of samples, so it's not really a problem. But, this could be useful in future. For all known HTTP methods (GET, POST...), there is no extra space allocated for a sample of type SMP_T_METH. But for unkown methods, it uses a chunk. So, like for strings, we duplicate data, using a trash chunk.
This commit is contained in:
parent
a9f040453a
commit
ec10051349
@ -658,6 +658,11 @@ int smp_dup(struct sample *smp)
|
|||||||
/* These type are not const. */
|
/* These type are not const. */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SMP_T_METH:
|
||||||
|
if (smp->data.u.meth.meth != HTTP_METH_OTHER)
|
||||||
|
break;
|
||||||
|
/* Fall through */
|
||||||
|
|
||||||
case SMP_T_STR:
|
case SMP_T_STR:
|
||||||
trash = get_trash_chunk();
|
trash = get_trash_chunk();
|
||||||
trash->len = smp->data.u.str.len;
|
trash->len = smp->data.u.str.len;
|
||||||
@ -678,6 +683,7 @@ int smp_dup(struct sample *smp)
|
|||||||
memcpy(trash->str, smp->data.u.str.str, trash->len);
|
memcpy(trash->str, smp->data.u.str.str, trash->len);
|
||||||
smp->data.u.str = *trash;
|
smp->data.u.str = *trash;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* Other cases are unexpected. */
|
/* Other cases are unexpected. */
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user