diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2014-09-18 18:55:44 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2014-09-18 18:55:44 +0000 |
| commit | 3534b428629be185e096be99e3bd5fdfe32d5544 (patch) | |
| tree | 210ef3198ed66bc7f7b7bf6a85e4579f455e5a36 /src/libstddjb/ip6_scanlist.c | |
| download | skalibs-3534b428629be185e096be99e3bd5fdfe32d5544.tar.gz | |
initial commit with rc for skalibs-2.0.0.0
Diffstat (limited to 'src/libstddjb/ip6_scanlist.c')
| -rw-r--r-- | src/libstddjb/ip6_scanlist.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libstddjb/ip6_scanlist.c b/src/libstddjb/ip6_scanlist.c new file mode 100644 index 0000000..8d751a6 --- /dev/null +++ b/src/libstddjb/ip6_scanlist.c @@ -0,0 +1,20 @@ +/* ISC license. */ + +#include <skalibs/bytestr.h> +#include <skalibs/fmtscan.h> + +unsigned int ip6_scanlist (char *out, unsigned int max, char const *s, unsigned int *num) +{ + unsigned int n = 0, w = 0 ; + for (; s[w] && (n < max) ; n++) + { + char ip[16] ; + register unsigned int i = ip6_scan(s + w, ip) ; + if (!i) break ; + byte_copy(out + (n << 4), 16, ip) ; + w += i ; + while (byte_chr(",; \t\r\n", 6, s[w]) < 6) w++ ; + } + *num = n ; + return w ; +} |
