mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 23:56:57 +02:00
MINOR: log: add lf_text_len
This function allows to log a text of a specific length.
This commit is contained in:
parent
e7ad4bb2f0
commit
2b0108adf6
@ -122,7 +122,7 @@ int get_log_facility(const char *fac);
|
|||||||
*
|
*
|
||||||
* Return the adress of the \0 character, or NULL on error
|
* Return the adress of the \0 character, or NULL on error
|
||||||
*/
|
*/
|
||||||
char *lf_text(char *dst, const char *src, size_t size, struct logformat_node *node);
|
char *lf_text_len(char *dst, const char *src, size_t len, size_t size, struct logformat_node *node);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Write a IP adress to the log string
|
* Write a IP adress to the log string
|
||||||
|
69
src/log.c
69
src/log.c
@ -510,53 +510,40 @@ int get_log_facility(const char *fac)
|
|||||||
*
|
*
|
||||||
* Return the adress of the \0 character, or NULL on error
|
* Return the adress of the \0 character, or NULL on error
|
||||||
*/
|
*/
|
||||||
char *lf_text(char *dst, const char *src, size_t size, struct logformat_node *node)
|
char *lf_text_len(char *dst, const char *src, size_t len, size_t size, struct logformat_node *node)
|
||||||
{
|
{
|
||||||
int n;
|
if (size < 2)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
if (src == NULL || *src == '\0') {
|
if (node->options & LOG_OPT_QUOTE) {
|
||||||
if (node->options & LOG_OPT_QUOTE) {
|
*(dst++) = '"';
|
||||||
if (size > 2) {
|
size--;
|
||||||
*(dst++) = '"';
|
|
||||||
*(dst++) = '"';
|
|
||||||
*dst = '\0';
|
|
||||||
} else {
|
|
||||||
dst = NULL;
|
|
||||||
return dst;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (size > 1) {
|
|
||||||
*(dst++) = '-';
|
|
||||||
*dst = '\0';
|
|
||||||
} else { // error no space available
|
|
||||||
dst = NULL;
|
|
||||||
return dst;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (node->options & LOG_OPT_QUOTE) {
|
|
||||||
if (size-- > 1 ) {
|
|
||||||
*(dst++) = '"';
|
|
||||||
} else {
|
|
||||||
dst = NULL;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
n = strlcpy2(dst, src, size);
|
|
||||||
size -= n;
|
|
||||||
dst += n;
|
|
||||||
if (size > 1) {
|
|
||||||
*(dst++) = '"';
|
|
||||||
*dst = '\0';
|
|
||||||
} else {
|
|
||||||
dst = NULL;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
dst += strlcpy2(dst, src, size);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (src) {
|
||||||
|
if (++len > size)
|
||||||
|
len = size;
|
||||||
|
len = strlcpy2(dst, src, len);
|
||||||
|
|
||||||
|
size -= len;
|
||||||
|
dst += len;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (node->options & LOG_OPT_QUOTE) {
|
||||||
|
if (size < 2)
|
||||||
|
return NULL;
|
||||||
|
*(dst++) = '"';
|
||||||
|
}
|
||||||
|
|
||||||
|
*dst = '\0';
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline char *lf_text(char *dst, const char *src, size_t size, struct logformat_node *node)
|
||||||
|
{
|
||||||
|
return lf_text_len(dst, src, size, size, node);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Write a IP adress to the log string
|
* Write a IP adress to the log string
|
||||||
* +X option write in hexadecimal notation, most signifant byte on the left
|
* +X option write in hexadecimal notation, most signifant byte on the left
|
||||||
|
Loading…
Reference in New Issue
Block a user