]> gitweb.fperrin.net Git - iftop.git/blob - screenfilter.c
Import iftop-1.0pre4
[iftop.git] / screenfilter.c
1 /*
2  * screenfilter.c:
3  *
4  * Copyright (c) 2002 DecisionSoft Ltd.
5  * Paul Warren (pdw) Fri Oct 25 10:21:00 2002
6  *
7  */
8
9 #include "config.h"
10
11 #ifdef HAVE_REGCOMP
12
13 #include <sys/types.h>
14 #include <regex.h>
15 #include <stdio.h>
16 #include "iftop.h"
17 #include "options.h"
18
19 static const char rcsid[] = "$Id: screenfilter.c,v 1.3 2002/11/04 12:27:35 chris Exp $";
20
21 extern options_t options ;
22
23 regex_t preg;
24
25 int screen_filter_set(char* s) {
26     int r;
27
28     if(options.screenfilter != NULL) {
29         xfree(options.screenfilter);
30         options.screenfilter = NULL;
31         regfree(&preg);
32     }
33
34     r = regcomp(&preg, s, REG_ICASE|REG_EXTENDED);
35       
36     if(r == 0) {
37         options.screenfilter = s;
38         return 1;
39     }
40     else {
41         xfree(s);
42         return 0;
43     }
44 }
45
46 int screen_filter_match(char *s) {
47     int r;
48     if(options.screenfilter == NULL) {
49         return 1;
50     }
51
52     r = regexec(&preg, s, 0, NULL, 0);
53     if(r == 0) {
54         return 1;
55     }
56     else {
57         return 0;
58     }
59 }
60
61 #endif /* HAVE_REGCOMP */