Index: squid-tagger ================================================================== --- squid-tagger +++ squid-tagger @@ -5,11 +5,11 @@ class Logger: __slots__ = frozenset(['_silent', '_syslog']) def __init__(self): config.section('log') - if config['silent'] = 'yes': + if config['silent'] == 'yes': self._silent = True else: import syslog self._syslog = syslog self._syslog.openlog('squidTag') @@ -44,15 +44,10 @@ return(self._db) def check(self, ip_address, site): result = self._check_stmt(site, ip_address) if len(result) > 0: - if result[1]: - if re.compile(result[1]).match(url_path): - return result[0] - else: - return None return result[0] else: return None class CheckerThread: @@ -76,22 +71,28 @@ req = self._queue.pop(0) self._lock_queue.release() self._log.info('trying %s\n'%req[1]) row = self._db.check(req[2], req[1]) if row != None and row[0] != None: + if row[1] != None: + if re.compile(row[1]).match(req[3]): + writeline('%s 302:%s\n'%(req[0], row[0])) + else: + writeline('%s -\n'%req[0]) writeline('%s 302:%s\n'%(req[0], row[0])) else: writeline('%s -\n'%req[0]) def check(self, line): request = re.compile('^([0-9]+)\ (http|ftp):\/\/([-\w.:]+)\/([^ ]*)\ ([0-9.]+)\/(-|[\w\.]+)\ (-|\w+)\ (-|GET|HEAD|POST).*$').match(line) if request: - site = request.group(3) - ip_address = request.group(5) id = request.group(1) + site = request.group(3) + url_path = request.group(4) + ip_address = request.group(5) self._lock_queue.acquire() - self._queue.append((id, site, ip_address)) + self._queue.append((id, site, ip_address, url_path)) if self._lock.locked(): self._lock.release() self._lock_queue.release() self._log.info('request %s queued (%s)\n'%(id, line)) else: