]> git.ipfire.org Git - thirdparty/sarg.git/blob - exclude.c
1d0ad4f0f02935b4fb8c9c29f1faff58fa277306
[thirdparty/sarg.git] / exclude.c
1 /*
2 * AUTHOR: Pedro Lineu Orso pedro.orso@gmail.com
3 * 1998, 2008
4 * SARG Squid Analysis Report Generator http://sarg.sourceforge.net
5 *
6 * SARG donations:
7 * please look at http://sarg.sourceforge.net/donations.php
8 * ---------------------------------------------------------------------
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
23 *
24 */
25
26 #include "include/conf.h"
27
28 int vhexclude(const char *excludefile, const char *url)
29 {
30
31 char whost[1024];
32 char *str;
33 char *wurl;
34 int len = strlen(excludefile);
35
36 if((str=(char *) malloc(len+1))==NULL) {
37 fprintf(stderr, "SARG: %s (%d):\n",text[59], len);
38 exit(1);
39 }
40 len = strlen(url);
41 if((wurl=(char *) malloc(len+1))==NULL) {
42 fprintf(stderr, "SARG: %s (%d):\n",text[59], len);
43 exit(1);
44 }
45 whost[0]='\0';
46 strcpy(str,excludefile);
47 strcpy(wurl,url);
48 if (getword(whost,sizeof(whost),str,' ')<0) {
49 printf("SARG: Maybe you have a broken record or garbage in your exclude host file.\n");
50 exit(1);
51 }
52
53 if(strchr(wurl,':') != 0) {
54 if (getword(warea,sizeof(warea),wurl,':')<0) {
55 printf("SARG: Maybe you have a broken record or garbage in your excluded url.\n");
56 exit(1);
57 }
58 strcpy(wurl,warea);
59 }
60
61 while(strcmp(whost,"*END*") != 0) {
62 if(strcmp(wurl,whost) == 0) {
63 free(wurl);
64 free(str);
65 return(0);
66 }
67 if(strchr(whost,'*') != 0) {
68 if (getword(warea,sizeof(warea),whost,'.')<0) {
69 printf("SARG: Maybe you have a broken record or garbage in your exclude host file.\n");
70 exit(1);
71 }
72 if (getword(warea,sizeof(warea),wurl,'.')<0) {
73 printf("SARG: Maybe you have a broken record or garbage in your exclude host file.\n");
74 exit(1);
75 }
76 if(strcmp(wurl,whost) == 0) {
77 free(wurl);
78 free(str);
79 return(0);
80 }
81 }
82 if (getword(whost,sizeof(whost),str,' ')<0) {
83 printf("SARG: Maybe you have a broken record or garbage in your exclude host file.\n");
84 exit(1);
85 }
86 }
87 free(wurl);
88 free(str);
89 return(1);
90 }
91
92
93 int vuexclude(const char *excludeuser, const char *user)
94 {
95 const char *wuser;
96 int len;
97
98 len=strlen(user);
99 wuser=excludeuser;
100 while ((wuser=strstr(wuser,user))!=NULL) {
101 if (wuser[len]==' ') return(0);
102 wuser+=len;
103 }
104
105 return(1);
106 }