Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 542472 | Differences between
and this patch

Collapse All | Expand All

(-)squidGuard-1.4.orig/src/main.c (-14 / +47 lines)
Lines 61-66 Link Here
61
int passthrough = 0;
61
int passthrough = 0;
62
int showBar = 0;   /* Do not display the progress bar. */
62
int showBar = 0;   /* Do not display the progress bar. */
63
char *globalCreateDb = NULL;
63
char *globalCreateDb = NULL;
64
int globalSquid34 = 0;
64
int failsafe_mode = 0;
65
int failsafe_mode = 0;
65
int sig_hup = 0;
66
int sig_hup = 0;
66
int sig_alrm = 0;
67
int sig_alrm = 0;
Lines 87-92 Link Here
87
  char buf[MAX_BUF];
88
  char buf[MAX_BUF];
88
  char *redirect,tmp[MAX_BUF];
89
  char *redirect,tmp[MAX_BUF];
89
  char *configFile = NULL;
90
  char *configFile = NULL;
91
  char *status = NULL, *endptr;
92
  long statusl = 0;
90
  time_t t;
93
  time_t t;
91
#if HAVE_SIGACTION
94
#if HAVE_SIGACTION
92
  struct sigaction act;
95
  struct sigaction act;
Lines 94-100 Link Here
94
  gettimeofday(&start_time, NULL);
97
  gettimeofday(&start_time, NULL);
95
  progname = argv[0];
98
  progname = argv[0];
96
  globalPid = getpid();
99
  globalPid = getpid();
97
  while ((ch = getopt(argc, argv, "hbduPC:t:c:v")) != EOF)
100
  while ((ch = getopt(argc, argv, "hbdunPC:t:c:v")) != EOF)
98
    switch (ch) {
101
    switch (ch) {
99
    case 'd':
102
    case 'd':
100
       globalDebug = 1;
103
       globalDebug = 1;
Lines 117-122 Link Here
117
      fprintf(stderr, "SquidGuard: %s %s\n", VERSION,db_version(NULL,NULL,NULL));
120
      fprintf(stderr, "SquidGuard: %s %s\n", VERSION,db_version(NULL,NULL,NULL));
118
      exit(0);
121
      exit(0);
119
      break;
122
      break;
123
    case 'n':
124
      globalSquid34 = 1;
125
      break;
120
    case 't':
126
    case 't':
121
      if((t = iso2sec(optarg)) == -1){
127
      if((t = iso2sec(optarg)) == -1){
122
	fprintf(stderr,"-t dateformat error, should be yyyy-mm-ddTHH:MM:SS\n");
128
	fprintf(stderr,"-t dateformat error, should be yyyy-mm-ddTHH:MM:SS\n");
Lines 196-224 Link Here
196
	  acl = sgAclCheckSource(src);
202
	  acl = sgAclCheckSource(src);
197
	  if((redirect = sgAclAccess(src,acl,&squidInfo)) == NULL){
203
	  if((redirect = sgAclAccess(src,acl,&squidInfo)) == NULL){
198
	    if(src == NULL || src->cont_search == 0){
204
	    if(src == NULL || src->cont_search == 0){
199
	      puts(""); 
205
	      if (globalSquid34) puts("ERR");
206
	      else puts(""); 
200
	      break;
207
	      break;
201
	    } else
208
	    } else
202
	      if(src->next != NULL){
209
	      if(src->next != NULL){
203
		src = src->next;
210
		src = src->next;
204
		continue;
211
		continue;
205
	      } else {
212
	      } else {
206
		puts("");
213
		if (globalSquid34) puts("ERR");
214
		else puts(""); 
207
		break;
215
		break;
208
	      }
216
	      }
209
	  } else {
217
	  } else {
210
	    if(squidInfo.srcDomain[0] == '\0'){
218
	    if (globalSquid34) {
211
	      squidInfo.srcDomain[0] = '-';
219
	      status = strsep(&redirect, ":");
212
	      squidInfo.srcDomain[1] = '\0';
220
	      if (status != NULL) {
213
	    }
221
	        // trying to check the 1st colon-separeted field to be a HTTP status
214
	    if(squidInfo.ident[0] == '\0'){
222
	        statusl = strtol(status, &endptr, 10);
215
	      squidInfo.ident[0] = '-';
223
	        // if the 1st field is not an acceptable HTTP status then restore the string
216
	      squidInfo.ident[1] = '\0';
224
	        switch (statusl) {
225
	        case 301:
226
	        case 302:
227
	        case 303:
228
	        case 307:
229
	        case 308:
230
	          break;
231
	        default:
232
	          statusl = 0;
233
	          redirect = status;
234
	          redirect[strlen(redirect)] = ':';
235
	        }
236
	      }
237
	      if (statusl) fprintf(stdout, "OK status=%s url=\"%s\"\n", status, redirect);
238
	      else fprintf(stdout, "OK rewrite-url=\"%s\"\n", redirect);
217
	    }
239
	    }
218
	    fprintf(stdout,"%s %s/%s %s %s\n",redirect,squidInfo.src,
240
	    else {
219
		    squidInfo.srcDomain,squidInfo.ident,
241
	      if(squidInfo.srcDomain[0] == '\0'){
220
		    squidInfo.method);
242
	        squidInfo.srcDomain[0] = '-';
221
            /* sgLogError("%s %s/%s %s %s\n",redirect,squidInfo.src,squidInfo.srcDomain,squidInfo.ident,squidInfo.method);  */
243
	        squidInfo.srcDomain[1] = '\0';
244
	      }
245
	      if(squidInfo.ident[0] == '\0'){
246
	        squidInfo.ident[0] = '-';
247
	        squidInfo.ident[1] = '\0';
248
	      }
249
	      fprintf(stdout,"%s %s/%s %s %s\n",redirect,squidInfo.src,
250
		      squidInfo.srcDomain,squidInfo.ident,
251
		      squidInfo.method);
252
              /* sgLogError("%s %s/%s %s %s\n",redirect,squidInfo.src,squidInfo.srcDomain,squidInfo.ident,squidInfo.method);  */
253
            }
222
	    break;
254
	    break;
223
	  }
255
	  }
224
	} /*for(;;)*/
256
	} /*for(;;)*/
Lines 255-260 Link Here
255
  fprintf(stderr, 
287
  fprintf(stderr, 
256
	  "Usage: squidGuard [-u] [-C block] [-t time] [-c file] [-v] [-d] [-P]\n");
288
	  "Usage: squidGuard [-u] [-C block] [-t time] [-c file] [-v] [-d] [-P]\n");
257
  fprintf(stderr, "Options:\n");
289
  fprintf(stderr, "Options:\n");
290
  fprintf(stderr, "  -n          : Use Squid 3.4+ reply format");
258
  fprintf(stderr, "  -v          : show version number\n");
291
  fprintf(stderr, "  -v          : show version number\n");
259
  fprintf(stderr, "  -d          : all errors to stderr\n");
292
  fprintf(stderr, "  -d          : all errors to stderr\n");
260
  fprintf(stderr, "  -b          : switch on the progress bar when updating the blacklists\n");
293
  fprintf(stderr, "  -b          : switch on the progress bar when updating the blacklists\n");

Return to bug 542472