]> git.ipfire.org Git - thirdparty/sarg.git/blob - exclude.c
LDAP usertab feature added
[thirdparty/sarg.git] / exclude.c
1 /*
2 * AUTHOR: Pedro Lineu Orso pedro.orso@gmail.com
3 * 1998, 2009
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 #include "include/defs.h"
28
29 int vhexclude(const char *excludefile, const char *url)
30 {
31
32 char whost[1024];
33 char *str;
34 char *wurl;
35 int len;
36 char *port;
37
38 len = strlen(excludefile);
39 if((str=(char *) malloc(len+1))==NULL) {
40 fprintf(stderr, "SARG: %s (%d):\n",text[59], len);
41 exit(1);
42 }
43 len = strlen(url);
44 if((wurl=(char *) malloc(len+1))==NULL) {
45 fprintf(stderr, "SARG: %s (%d):\n",text[59], len);
46 exit(1);
47 }
48 whost[0]='\0';
49 strcpy(str,excludefile);
50 strcpy(wurl,url);
51 if (getword(whost,sizeof(whost),str,' ')<0) {
52 printf("SARG: Maybe you have a broken record or garbage in your exclude host file.\n");
53 exit(1);
54 }
55
56 port=strchr(wurl,':');
57 if(port != NULL) {
58 // remove the port number at the end of the site's address
59 *port='\0';
60 }
61
62 while(strcmp(whost,"*END*") != 0) {
63 if(strcmp(wurl,whost) == 0) {
64 free(wurl);
65 free(str);
66 return(0);
67 }
68 if(strchr(whost,'*') != 0) {
69 if (getword(warea,sizeof(warea),whost,'.')<0) {
70 printf("SARG: Maybe you have a broken record or garbage in your exclude host file.\n");
71 exit(1);
72 }
73 if (getword(warea,sizeof(warea),wurl,'.')<0) {
74 printf("SARG: Maybe you have a broken record or garbage in your exclude host file.\n");
75 exit(1);
76 }
77 if(strcmp(wurl,whost) == 0) {
78 free(wurl);
79 free(str);
80 return(0);
81 }
82 }
83 if (getword(whost,sizeof(whost),str,' ')<0) {
84 printf("SARG: Maybe you have a broken record or garbage in your exclude host file.\n");
85 exit(1);
86 }
87 }
88 free(wurl);
89 free(str);
90 return(1);
91 }
92
93
94 int vuexclude(const char *excludeuser, const char *user)
95 {
96 const char *wuser;
97 int len;
98
99 len=strlen(user);
100 wuser=excludeuser;
101 while ((wuser=strstr(wuser,user))!=NULL) {
102 if (wuser[len]==' ') return(0);
103 wuser+=len;
104 }
105
106 return(1);
107 }