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
);
25 size_t len
= (ret
>= size
) ? size
- 1 : ret
;
27 memcpy(dest
, src
, len
);
34 int slprintf(char *dst
, size_t size
, const char *fmt
, ...)
41 ret
= vsnprintf(dst
, size
, fmt
, ap
);
49 noinline
void *xmemset(void *s
, int c
, size_t n
)
54 for (i
= 0; i
< n
; ++i
)
60 char *getuint(char *in
, uint32_t *out
)
65 while (*in
&& (isdigit(*in
) || isxdigit(*in
) || *in
== 'x'))
68 panic("Syntax error!\n");
72 *out
= strtoul(pt
, &endptr
, 0);
73 if ((endptr
!= NULL
&& *endptr
!= '\0') || errno
!= 0) {
74 panic("Syntax error!\n");
81 char *strtrim_right(register char *p
, register char c
)
99 char *strtrim_left(register char *p
, register char c
)
104 while (*p
&& len
--) {