2 * netsniff-ng - the packet sniffing beast
3 * By Daniel Borkmann <daniel@netsniff-ng.org>
4 * Copyright 2009, 2010, 2011, 2012 Daniel Borkmann.
5 * Copyright 2009, 2010, 2011, 2012 Emmanuel Roullit.
6 * strlcpy, Copyright 1991, 1992 Linus Torvalds.
7 * Subject to the GPL, version 2.
20 size_t strlcpy(char *dest
, const char *src
, size_t size
)
22 size_t ret
= strlen(src
);
24 size_t len
= (ret
>= size
) ? size
- 1 : ret
;
25 memcpy(dest
, src
, len
);
31 int slprintf(char *dst
, size_t size
, const char *fmt
, ...)
36 ret
= vsnprintf(dst
, size
, fmt
, ap
);
42 noinline
void *xmemset(void *s
, int c
, size_t n
)
46 for (i
= 0; i
< n
; ++i
)
51 char *getuint(char *in
, uint32_t *out
)
55 while (*in
&& (isdigit(*in
) || isxdigit(*in
) || *in
== 'x'))
58 panic("Syntax error!\n");
62 *out
= strtoul(pt
, &endptr
, 0);
63 if ((endptr
!= NULL
&& *endptr
!= '\0') || errno
!= 0) {
64 panic("Syntax error!\n");
70 char *strtrim_right(register char *p
, register char c
)
86 char *strtrim_left(register char *p
, register char c
)