Index: samesite.py ================================================================== --- samesite.py +++ samesite.py @@ -1,9 +1,12 @@ #!/usr/bin/env python from __future__ import unicode_literals, print_function +#import gevent.monkey +#gevent.monkey.patch_all() + import bsddb.dbshelve, copy, datetime, os, BaseHTTPServer, sys, spacemap, re, urllib2 class Config: __slots__ = frozenset(['_config', '_default', '_section', 'options', 'root']) _default = { @@ -14,10 +17,11 @@ 'verbose': 'no', 'noetag': 'no', 'noparts': 'no', 'strip': '', 'sub': '', + 'proto': 'http', },} # function to read in config file def __init__(self): import ConfigParser, optparse @@ -88,11 +92,11 @@ 'server', 'via', 'x-cache', 'x-cache-lookup', 'x-livetool', 'x-powered-by', ]) -block_size = 4096 +block_size = 8192 class MyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): def __process(self): # reload means file needs to be reloaded to serve request reload = False @@ -138,11 +142,11 @@ 'accept', 'accept-charset', 'accept-encoding', 'accept-language', 'cache-control', 'connection', 'content-length', 'cookie', 'host', 'if-modified-since', 'if-unmodified-since', 'referer', - 'user-agent', + 'ua-cpu', 'user-agent', 'via', 'x-forwarded-for', 'x-last-hr', 'x-last-http-status-code', 'x-removed', 'x-real-ip', 'x-retry-count', ]) print('===============[ {} request ]==='.format(self.command)) @@ -218,11 +222,11 @@ print(info) if reload or recheck: try: - request = 'http://' + config['root'] + self.path + request = config['proto'] + '://' + config['root'] + self.path my_headers = {} for header in ('cache-control', 'cookie', 'referer', 'user-agent'): if header in self.headers: my_headers[header] = self.headers[header] @@ -244,11 +248,11 @@ if range[0] == None: break ranges += '{}-{}'.format(range[0], range[1] - 1), my_headers['range'] = 'bytes=' + ','.join(ranges) - my_headers['Accept-Encoding'] = 'gzip' + my_headers['Accept-Encoding'] = 'gzip, compress, deflate, identity; q=0' request = urllib2.Request(request, headers = my_headers) source = urllib2.urlopen(request, timeout = 60) new_record = {} new_record['_parts'] = record['_parts'] @@ -452,5 +456,7 @@ return self.__process() config.section('general') server = BaseHTTPServer.HTTPServer(('127.0.0.1', int(config['port'])), MyRequestHandler) server.serve_forever() + +#gevent.joinall()