mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 04:18:56 +00:00
lib: add frrstr_hex to hexdump buffers
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
This commit is contained in:
parent
6a9ac96f2c
commit
0c0830c599
22
lib/frrstr.c
22
lib/frrstr.c
@ -18,9 +18,7 @@
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "zebra.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
@ -217,3 +215,21 @@ int all_digit(const char *str)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
char *frrstr_hex(char *buff, size_t bufsiz, const uint8_t *str, size_t num)
|
||||
{
|
||||
if (bufsiz == 0)
|
||||
return buff;
|
||||
|
||||
char tmp[3];
|
||||
|
||||
buff[0] = '\0';
|
||||
|
||||
for (size_t i = 0; i < num; i++) {
|
||||
snprintf(tmp, sizeof(tmp), "%02x", (unsigned char)str[i]);
|
||||
strlcat(buff, tmp, bufsiz);
|
||||
}
|
||||
|
||||
return buff;
|
||||
}
|
||||
|
20
lib/frrstr.h
20
lib/frrstr.h
@ -154,6 +154,26 @@ bool frrstr_endswith(const char *str, const char *suffix);
|
||||
*/
|
||||
int all_digit(const char *str);
|
||||
|
||||
/*
|
||||
* Copy the hexadecimal representation of the string to a buffer.
|
||||
*
|
||||
* buff
|
||||
* Buffer to copy result into with size of at least (2 * num) + 1.
|
||||
*
|
||||
* bufsiz
|
||||
* Size of destination buffer.
|
||||
*
|
||||
* str
|
||||
* String to represent as hexadecimal.
|
||||
*
|
||||
* num
|
||||
* Number of characters to copy.
|
||||
*
|
||||
* Returns:
|
||||
* Pointer to buffer containing resulting hexadecimal representation.
|
||||
*/
|
||||
char *frrstr_hex(char *buff, size_t bufsiz, const uint8_t *str, size_t num);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user