Overview
| Comment: | simpler way to configure hosts, more examples for Windows Update, support for unconfigured hosts |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | master | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
996aa0149d0e89c93c10abb70a33692f |
| User & Date: | arcade@b1t.name on 2013-03-13 17:21:38.000 |
| Other Links: | branch diff | manifest | tags |
Context
|
2013-08-14
| ||
| 08:54 | one more header, python3.3 check-in: 7ff9724ae4 user: arcade@b1t.name tags: master, trunk | |
|
2013-03-13
| ||
| 17:21 | simpler way to configure hosts, more examples for Windows Update, support for unconfigured hosts check-in: 996aa0149d user: arcade@b1t.name tags: master, trunk | |
|
2013-01-29
| ||
| 14:33 | capitilize header correctly check-in: a2857db2b5 user: arcade@b1t.name tags: master, trunk | |
Changes
Modified nginx.conf
from [2a30458003]
to [b3d4f05e0b].
1 2 3 4 5 |
# sample nginx config to serve the local site
server {
listen *:80;
listen [fec0::1]:80;
| | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# sample nginx config to serve the local site
server {
listen *:80;
listen [fec0::1]:80;
server_name ^(?<domain>.+).hijack;
access_log /var/log/nginx/site_name.access.log;
error_log /var/log/nginx/site_name.error.log debug;
expires -1;
try_files $uri @break;
error_page 404 = @break;
log_not_found off;
# autoindex on;
location / {
if ($request_method != HEAD) {
root /path/to/www/$domain;
}
}
location @break {
# pointing out where our server listens
proxy_pass http://localhost:8008;
# saying that we downloading from real site
proxy_set_header Host $domain;
proxy_read_timeout 600;
}
}
|
Modified samesite.conf
from [11abb2a4b4]
to [5f0eac2d62].
1 2 3 4 5 6 7 8 9 10 | # basic list of options for each site: # - noetag: ignore etags # - noparts: request full file even for partial request # - proto: protocol, defaults to http # Examples: [download.windowsupdate.com] noetag: yes | > > > > > > > > > > > > | > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # basic list of options for each site: # - noetag: ignore etags # - noparts: request full file even for partial request # - proto: protocol, defaults to http # Examples: [download.microsoft.com] noetag: yes [download.windowsupdate.com] noetag: yes [au.download.windowsupdate.com] noetag: yes [ds.download.windowsupdate.com] noetag: yes [www.download.windowsupdate.com] noetag: yes [update.microsoft.com] noetag: yes [fe1.update.microsoft.com] noetag: yes [www.update.microsoft.com] noetag: yes |
Modified samesite.py
from [83281b8c59]
to [c17785c61d].
1 2 | #!/usr/bin/env python3.2 | < < < < < | 1 2 3 4 5 6 7 8 9 |
#!/usr/bin/env python3.2
import argparse, os
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--config', dest = 'config', help = 'config file location', metavar = 'FILE', default = 'samesite.conf')
args = parser.parse_args()
assert os.access(args.config, os.R_OK), "Fatal error: can't read {}".format(args.config)
import configparser
|
| ︙ | ︙ | |||
34 35 36 37 38 39 40 |
thisDir = re.compile('^(.*)/$').match(config[section]['dir'])
if thisDir:
config[section]['dir'] = thisDir.group(1)
if not re.compile('^/(.*)$').match(config[section]['dir']):
config[section]['dir'] = cache_dir + os.sep + config[section]['dir']
else:
config[section]['dir'] = cache_dir + os.sep + section
| < | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
thisDir = re.compile('^(.*)/$').match(config[section]['dir'])
if thisDir:
config[section]['dir'] = thisDir.group(1)
if not re.compile('^/(.*)$').match(config[section]['dir']):
config[section]['dir'] = cache_dir + os.sep + config[section]['dir']
else:
config[section]['dir'] = cache_dir + os.sep + section
if not 'root' in config[section]:
config[section]['root'] = section
#assert options.port or os.access(options.log, os.R_OK), 'Log file unreadable'
const_desc_fields = set(['Content-Length', 'Last-Modified', 'Pragma'])
const_ignore_fields = set([
|
| ︙ | ︙ | |||
75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
myPath = re.compile('^(.*?)(\?.*)$').match(self.path)
if myPath:
my_path = myPath.group(1)
else:
my_path = self.path
config_host = config[self.headers['Host']]
if config_host['sub'] != None and config_host['strip'] != None and len(config_host['strip']) > 0:
string = re.compile(config_host['strip']).sub(config_host['sub'], my_path)
my_path = string
my_path_b = my_path.encode('utf-8')
| > > > > | 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
myPath = re.compile('^(.*?)(\?.*)$').match(self.path)
if myPath:
my_path = myPath.group(1)
else:
my_path = self.path
if not config.has_section(self.headers['Host']):
config.add_section(self.headers['Host'])
config[self.headers['Host']]['root'] = self.headers['Host']
config[self.headers['Host']]['dir'] = cache_dir + os.sep + self.headers['Host']
config_host = config[self.headers['Host']]
if config_host['sub'] != None and config_host['strip'] != None and len(config_host['strip']) > 0:
string = re.compile(config_host['strip']).sub(config_host['sub'], my_path)
my_path = string
my_path_b = my_path.encode('utf-8')
|
| ︙ | ︙ |