Skip to content

Commit 4c7b49a

Browse files
committed
Fix regression in request header passthrough
Add script to order proxy json mime types
1 parent f82b34b commit 4c7b49a

3 files changed

Lines changed: 187 additions & 167 deletions

File tree

main.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,9 @@ func setContentType(r *http.Request, resp *http.Response) {
148148
}
149149

150150
// Set content type header
151-
resp.Header.Set("Content-Type", mime)
151+
if mime != "" {
152+
resp.Header.Set("Content-Type", mime)
153+
}
152154
}
153155

154156
func handleRequest(r *http.Request, ctx *goproxy.ProxyCtx) (*http.Request, *http.Response) {
@@ -165,7 +167,7 @@ func handleRequest(r *http.Request, ctx *goproxy.ProxyCtx) (*http.Request, *http
165167
Path: "content/" + r.URL.Host + r.URL.Path,
166168
RawQuery: r.URL.RawQuery,
167169
},
168-
Header: make(http.Header),
170+
Header: r.Header,
169171
Body: r.Body,
170172
}
171173

@@ -197,7 +199,7 @@ func handleRequest(r *http.Request, ctx *goproxy.ProxyCtx) (*http.Request, *http
197199
Path: r.URL.Path,
198200
RawQuery: r.URL.RawQuery,
199201
},
200-
Header: make(http.Header),
202+
Header: r.Header,
201203
Body: r.Body,
202204
}
203205
// Copy in a new body reader

proxySettings.json

Lines changed: 169 additions & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -1,166 +1,171 @@
11
{
2-
"legacyHTDOCSPath": "../Legacy/htdocs/",
3-
"legacyCGIBINPath": "../Legacy/cgi-bin/",
4-
"legacyPHPPath": "../Legacy/",
5-
"overridePaths":
6-
[
7-
"../Legacy/htdocs/content/",
8-
"../Legacy/middleware_overrides/"
9-
],
10-
"apiPrefix": "fpProxy/api/",
11-
"allowCrossDomain": true,
12-
"externalFilePaths": [
13-
"http://infinity.unstable.life/Flashpoint/Legacy/htdocs",
14-
"http://archive.org/download/FP90Data/FP90Data.zip/htdocs"
15-
],
16-
"extScriptTypes": [
17-
"php", "php5", "phtml"
18-
],
19-
"extIndexTypes": [
20-
"html", "htm", "php", "php5",
21-
"phtml", "asp", "aspx", "jsp", "jspx"
22-
],
23-
"extMimeTypes": {
24-
"default": "application/octet-stream",
25-
"asd": "application/astound",
26-
"pqi": "application/cprplayer",
27-
"evy": "application/envoy",
28-
"spl": "application/futuresplash",
29-
"class": "application/java",
30-
"jar": "application/java-archive",
31-
"aut": "application/pbautomation",
32-
"bub": "application/photobubble",
33-
"smp": "application/studiom",
34-
"tbk": "application/toolbook",
35-
"unity3d": "application/vnd.unity",
36-
"xar": "application/vnd.xara",
37-
"web": "application/vnd.xara",
38-
"wasm": "application/wasm",
39-
"tv": "application/x-alambik-script",
40-
"tvs": "application/x-alambik-script",
41-
"tvd": "application/x-alambik-script",
42-
"tvv": "application/x-alambik-script",
43-
"tvb": "application/x-alambik-script",
44-
"dsn": "application/x-altiadsn",
45-
"asp": "application/x-asap",
46-
"aab": "application/x-authorware-bin",
47-
"aam": "application/x-authorware-map",
48-
"aas": "application/x-authorware-seg",
49-
"aw3": "application/x-awingsoft-winds3d",
50-
"bxwrl": "application/x-blaxxuncc3d",
51-
"bswrl": "application/x-bscontact",
52-
"blend": "application/x-burster",
53-
"blendz": "application/x-burster",
54-
"ccn": "application/x-cnc",
55-
"cnc": "application/x-cnc",
56-
"pqf": "application/x-cprplayer",
57-
"co": "application/x-cult3d-object",
58-
"dvl": "application/x-devalvrx",
59-
"deepv": "application/x-deepv",
60-
"cct": "application/x-director",
61-
"cst": "application/x-director",
62-
"cxt": "application/x-director",
63-
"dir": "application/x-director",
64-
"dxr": "application/x-director",
65-
"dcr": "application/x-director",
66-
"swa": "application/x-director",
67-
"w3d": "application/x-director",
68-
"elec": "application/x-electrifier",
69-
"gz": "application/x-gzip-compressed",
70-
"wrz": "application/x-gzip-compressed",
71-
"x3dz": "application/x-gzip-compressed",
72-
"ipx": "application/x-ipix",
73-
"ips": "application/x-ipscript",
74-
"axs": "application/x-MindAvenueAXELStream",
75-
"vobj": "application/x-netscape-vae-plugin-vae",
76-
"p3d": "application/x-p3d",
77-
"pwn": "application/x-pulse-download",
78-
"pwc": "application/x-pulse-player",
79-
"pw3": "application/x-pulse-player-32",
80-
"pws": "application/x-pulse-stream",
81-
"npgobitgamesplugin": "application/x-popcaploader;version=1.0.0.1",
82-
"scr": "application/x-rasmol",
83-
"swf": "application/x-shockwave-flash",
84-
"xap": "application/x-silverlight-app",
85-
"sts": "application/x-squeak-source",
86-
"sca": "application/x-supercard",
87-
"tcl": "application/x-tcl",
88-
"cmo": "application/x-virtools",
89-
"nmo": "application/x-virtools",
90-
"nms": "application/x-virtools",
91-
"vmo": "application/x-virtools",
92-
"xml": "application/xml",
93-
"aif": "audio/aiff",
94-
"aifc": "audio/aiff",
95-
"aiff": "audio/aiff",
96-
"au": "audio/basic",
97-
"it": "audio/it",
98-
"mid": "audio/mid",
99-
"midi": "audio/midi",
100-
"mod": "audio/mod",
101-
"s3m": "audio/s3m",
102-
"wav": "audio/wav",
103-
"med": "audio/x-mod",
104-
"xmz": "audio/x-mod",
105-
"s3z": "audio/x-mod",
106-
"sid": "audio/x-sidtune",
107-
"itz": "audio/x-zipped-it",
108-
"mdz": "audio/x-zipped-mod",
109-
"xm": "audio/xm",
110-
"cdx": "chemical/x-cdx",
111-
"chm": "chemical/x-chemdraw",
112-
"cow": "chemical/x-cow",
113-
"csm": "chemical/x-csml",
114-
"csml": "chemical/x-csml",
115-
"cub": "chemical/x-gaussian-cube",
116-
"cube": "chemical/x-gaussian-cube",
117-
"gau": "chemical/x-gaussian-input",
118-
"jdx": "chemical/x-jcamp-dx",
119-
"dx": "chemical/x-jcamp-dx",
120-
"mol": "chemical/x-mdl-molfile",
121-
"rxn": "chemical/x-mdl-rxnfile",
122-
"tgf": "chemical/x-mdl-tgf",
123-
"skc": "chemical/x-mdl-tgf",
124-
"mop": "chemical/x-mopac-input",
125-
"pdb": "chemical/x-pdb",
126-
"emb": "chemical/x-pdb",
127-
"embl": "chemical/x-pdb",
128-
"xyz": "chemical/x-xyz",
129-
"cgm": "image/cgm",
130-
"cit": "image/cit",
131-
"dgn": "image/dgn",
132-
"jp2": "image/jp2",
133-
"jp2k": "image/jp2",
134-
"rle": "image/rle",
135-
"mcf": "image/vasa",
136-
"vec": "image/vec",
137-
"fhc": "image/x-freehand",
138-
"fh4": "image/x-freehand4",
139-
"fh5": "image/x-freehand5",
140-
"fh7": "image/x-freehand7",
141-
"qdgx": "image/x-qdgx",
142-
"twf": "image/x-twf",
143-
"twfz": "image/x-twf-zlib-compressed",
144-
"wrl": "model/vrml",
145-
"dae": "model/x-bs-collada+xml",
146-
"x3db": "model/x3d+binary",
147-
"thp": "plugin/x-theorist",
148-
"css": "text/css",
149-
"htm": "text/html",
150-
"html": "text/html",
151-
"js": "text/javascript",
152-
"json": "application/json",
153-
"xpg": "text/x-xpg",
154-
"svf": "vector/x-svf",
155-
"afl": "video/animaflex",
156-
"blz": "video/blz",
157-
"mov": "video/quicktime",
158-
"rbs": "x-world/realibase",
159-
"d96": "x-world/x-d96",
160-
"mus": "x-world/x-d96",
161-
"svr": "x-world/x-svr",
162-
"vrt": "x-world/x-vrt",
163-
"wvr": "x-world/x-wvr",
164-
"xvr": "x-world/x-xvr"
165-
}
2+
"legacyHTDOCSPath": "../Legacy/htdocs/",
3+
"legacyCGIBINPath": "../Legacy/cgi-bin/",
4+
"legacyPHPPath": "../Legacy/",
5+
"overridePaths": [
6+
"../Legacy/htdocs/content/",
7+
"../Legacy/middleware_overrides/"
8+
],
9+
"apiPrefix": "fpProxy/api/",
10+
"allowCrossDomain": true,
11+
"externalFilePaths": [
12+
"http://infinity.unstable.life/Flashpoint/Legacy/htdocs",
13+
"http://archive.org/download/FP90Data/FP90Data.zip/htdocs"
14+
],
15+
"extScriptTypes": [
16+
"php",
17+
"php5",
18+
"phtml"
19+
],
20+
"extIndexTypes": [
21+
"html",
22+
"htm",
23+
"php",
24+
"php5",
25+
"phtml",
26+
"asp",
27+
"aspx",
28+
"jsp",
29+
"jspx"
30+
],
31+
"extMimeTypes": {
32+
"aab": "application/x-authorware-bin",
33+
"aam": "application/x-authorware-map",
34+
"aas": "application/x-authorware-seg",
35+
"afl": "video/animaflex",
36+
"aif": "audio/aiff",
37+
"aifc": "audio/aiff",
38+
"aiff": "audio/aiff",
39+
"asd": "application/astound",
40+
"au": "audio/basic",
41+
"aut": "application/pbautomation",
42+
"aw3": "application/x-awingsoft-winds3d",
43+
"axs": "application/x-MindAvenueAXELStream",
44+
"blend": "application/x-burster",
45+
"blendz": "application/x-burster",
46+
"blz": "video/blz",
47+
"bswrl": "application/x-bscontact",
48+
"bub": "application/photobubble",
49+
"bxwrl": "application/x-blaxxuncc3d",
50+
"ccn": "application/x-cnc",
51+
"cct": "application/x-director",
52+
"cdx": "chemical/x-cdx",
53+
"cgm": "image/cgm",
54+
"chm": "chemical/x-chemdraw",
55+
"cit": "image/cit",
56+
"class": "application/java",
57+
"cmo": "application/x-virtools",
58+
"cnc": "application/x-cnc",
59+
"co": "application/x-cult3d-object",
60+
"cow": "chemical/x-cow",
61+
"csm": "chemical/x-csml",
62+
"csml": "chemical/x-csml",
63+
"css": "text/css",
64+
"cst": "application/x-director",
65+
"cub": "chemical/x-gaussian-cube",
66+
"cube": "chemical/x-gaussian-cube",
67+
"cxt": "application/x-director",
68+
"d96": "x-world/x-d96",
69+
"dae": "model/x-bs-collada+xml",
70+
"dcr": "application/x-director",
71+
"deepv": "application/x-deepv",
72+
"dgn": "image/dgn",
73+
"dir": "application/x-director",
74+
"dsn": "application/x-altiadsn",
75+
"dvl": "application/x-devalvrx",
76+
"dx": "chemical/x-jcamp-dx",
77+
"dxr": "application/x-director",
78+
"elec": "application/x-electrifier",
79+
"emb": "chemical/x-pdb",
80+
"embl": "chemical/x-pdb",
81+
"evy": "application/envoy",
82+
"fh4": "image/x-freehand4",
83+
"fh5": "image/x-freehand5",
84+
"fh7": "image/x-freehand7",
85+
"fhc": "image/x-freehand",
86+
"gau": "chemical/x-gaussian-input",
87+
"gz": "application/x-gzip-compressed",
88+
"htm": "text/html",
89+
"html": "text/html",
90+
"ips": "application/x-ipscript",
91+
"ipx": "application/x-ipix",
92+
"it": "audio/it",
93+
"itz": "audio/x-zipped-it",
94+
"jar": "application/java-archive",
95+
"jdx": "chemical/x-jcamp-dx",
96+
"jp2": "image/jp2",
97+
"jp2k": "image/jp2",
98+
"js": "text/javascript",
99+
"json": "application/json",
100+
"mcf": "image/vasa",
101+
"mdz": "audio/x-zipped-mod",
102+
"med": "audio/x-mod",
103+
"mid": "audio/mid",
104+
"midi": "audio/midi",
105+
"mod": "audio/mod",
106+
"mol": "chemical/x-mdl-molfile",
107+
"mop": "chemical/x-mopac-input",
108+
"mov": "video/quicktime",
109+
"mus": "x-world/x-d96",
110+
"nmo": "application/x-virtools",
111+
"nms": "application/x-virtools",
112+
"p3d": "application/x-p3d",
113+
"pdb": "chemical/x-pdb",
114+
"pqf": "application/x-cprplayer",
115+
"pqi": "application/cprplayer",
116+
"pw3": "application/x-pulse-player-32",
117+
"pwc": "application/x-pulse-player",
118+
"pwn": "application/x-pulse-download",
119+
"pws": "application/x-pulse-stream",
120+
"qdgx": "image/x-qdgx",
121+
"rbs": "x-world/realibase",
122+
"rle": "image/rle",
123+
"rxn": "chemical/x-mdl-rxnfile",
124+
"s3m": "audio/s3m",
125+
"s3z": "audio/x-mod",
126+
"sca": "application/x-supercard",
127+
"scr": "application/x-rasmol",
128+
"sid": "audio/x-sidtune",
129+
"skc": "chemical/x-mdl-tgf",
130+
"smp": "application/studiom",
131+
"spl": "application/futuresplash",
132+
"sts": "application/x-squeak-source",
133+
"svf": "vector/x-svf",
134+
"svr": "x-world/x-svr",
135+
"swa": "application/x-director",
136+
"swf": "application/x-shockwave-flash",
137+
"tbk": "application/toolbook",
138+
"tcl": "application/x-tcl",
139+
"tgf": "chemical/x-mdl-tgf",
140+
"thp": "plugin/x-theorist",
141+
"tv": "application/x-alambik-script",
142+
"tvb": "application/x-alambik-script",
143+
"tvd": "application/x-alambik-script",
144+
"tvs": "application/x-alambik-script",
145+
"tvv": "application/x-alambik-script",
146+
"twf": "image/x-twf",
147+
"twfz": "image/x-twf-zlib-compressed",
148+
"unity3d": "application/vnd.unity",
149+
"vec": "image/vec",
150+
"vmo": "application/x-virtools",
151+
"vobj": "application/x-netscape-vae-plugin-vae",
152+
"vrt": "x-world/x-vrt",
153+
"w3d": "application/x-director",
154+
"wasm": "application/wasm",
155+
"wav": "audio/wav",
156+
"web": "application/vnd.xara",
157+
"wrl": "model/vrml",
158+
"wrz": "application/x-gzip-compressed",
159+
"wvr": "x-world/x-wvr",
160+
"x3db": "model/x3d+binary",
161+
"x3dz": "application/x-gzip-compressed",
162+
"xap": "application/x-silverlight-app",
163+
"xar": "application/vnd.xara",
164+
"xm": "audio/xm",
165+
"xml": "application/xml",
166+
"xmz": "audio/x-mod",
167+
"xpg": "text/x-xpg",
168+
"xvr": "x-world/x-xvr",
169+
"xyz": "chemical/x-xyz"
170+
}
166171
}

sortProxySettings.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import json
2+
3+
file_path = 'proxySettings.json'
4+
5+
with open(file_path, 'r') as file:
6+
data = json.load(file)
7+
8+
sorted_extMimeTypes = dict(sorted(data['extMimeTypes'].items()))
9+
data['extMimeTypes'] = sorted_extMimeTypes
10+
11+
# Save the sorted data back to the file
12+
with open(file_path, 'w') as file:
13+
json.dump(data, file, indent=2)

0 commit comments

Comments
 (0)