@@ -41,11 +41,13 @@ var log = L.NewDefaultFactory(
41
41
).Logger ()
42
42
43
43
var (
44
- disableColor bool
45
- runningPort int
46
- domainListPath string
47
- blacklistPath string
48
- bandwidthLimit int
44
+ disableColor bool
45
+ runningPort int
46
+ domainListPath string
47
+ blacklistPath string
48
+ bandwidthLimit int
49
+ denyWebPage bool
50
+ denyWebPageList []string
49
51
)
50
52
51
53
var BandwidthLimiter * R.Bucket
@@ -75,6 +77,8 @@ func init() {
75
77
command .PersistentFlags ().StringVarP (& domainListPath , "domain-list-path" , "d" , "domainlist.txt" , "set accept domain" )
76
78
command .PersistentFlags ().StringVarP (& blacklistPath , "blacklist-path" , "b" , "blacklist.txt" , "set repository blacklist" )
77
79
command .PersistentFlags ().IntVarP (& bandwidthLimit , "bandwidth-limit" , "l" , 0 , "set total bandwidth limit (MB/s), 0 as no limit" )
80
+ command .PersistentFlags ().BoolVarP (& denyWebPage , "deny-web-page" , "" , false , "deny web page requests" )
81
+ command .PersistentFlags ().StringSliceVarP (& denyWebPageList , "deny-web-page-list" , "" , []string {"github" , "gist.github.com" }, "deny web page requests list" )
78
82
}
79
83
80
84
func main () {
@@ -525,6 +529,12 @@ func sendRequestWithURL(URL *url.URL) http.Handler {
525
529
return
526
530
}
527
531
defer response .Body .Close ()
532
+ if denyWebPage && common .Any (denyWebPageList , func (it string ) bool {
533
+ return strings .ToLower (it ) == strings .ToLower (URL .Host )
534
+ }) && response .StatusCode > 199 && response .StatusCode < 300 && strings .Contains (strings .ToLower (response .Header .Get ("Content-Type" )), "text/html" ) {
535
+ responseWithError (E .New ("Refuse to serve web page" )).ServeHTTP (w , r )
536
+ return
537
+ }
528
538
for key , values := range response .Header {
529
539
delete (w .Header (), key )
530
540
for _ , value := range values {
0 commit comments