Added support for UDP in flowtop
[netsniff-ng.git] / src / parser.c
blobdac3119788307c9a5b11bb15a6b2e92c83493f90
1 /*
2 * netsniff-ng - the packet sniffing beast
3 * By Daniel Borkmann <daniel@netsniff-ng.org>
4 * Copyright 2011 Daniel Borkmann.
5 * Subject to the GPL, version 2.
6 */
8 #include <string.h>
9 #include <ctype.h>
10 #include <stdint.h>
12 #include "parser.h"
13 #include "die.h"
15 char *getuint(char *in, uint32_t *out)
17 char *pt = in, tmp;
18 char *endptr = NULL;
20 while (*in && (isdigit(*in) || isxdigit(*in) || *in == 'x'))
21 in++;
22 if (!*in)
23 panic("Syntax error!\n");
25 errno = 0;
27 tmp = *in;
28 *in = 0;
29 *out = strtoul(pt, &endptr, 0);
31 if ((endptr != NULL && *endptr != '\0') || errno != 0) {
32 panic("Syntax error!\n");
35 *in = tmp;
37 return in;
40 char *strtrim_right(register char *p, register char c)
42 register char *end;
43 register int len;
45 len = strlen(p);
46 while (*p && len) {
47 end = p + len - 1;
48 if (c == *end)
49 *end = 0;
50 else
51 break;
52 len = strlen(p);
55 return p;
58 char *strtrim_left(register char *p, register char c)
60 register int len;
62 len = strlen(p);
63 while (*p && len--) {
64 if (c == *p)
65 p++;
66 else
67 break;
70 return p;