| 84 | } |
| 85 | |
| 86 | func (mod *HttpProxy) Configure() error { |
| 87 | var err error |
| 88 | var address string |
| 89 | var proxyPort int |
| 90 | var httpPort int |
| 91 | var doRedirect bool |
| 92 | var scriptPath string |
| 93 | var stripSSL bool |
| 94 | var jsToInject string |
| 95 | var blacklist string |
| 96 | var whitelist string |
| 97 | |
| 98 | if mod.Running() { |
| 99 | return session.ErrAlreadyStarted(mod.Name()) |
| 100 | } else if err, address = mod.StringParam("http.proxy.address"); err != nil { |
| 101 | return err |
| 102 | } else if err, proxyPort = mod.IntParam("http.proxy.port"); err != nil { |
| 103 | return err |
| 104 | } else if err, httpPort = mod.IntParam("http.port"); err != nil { |
| 105 | return err |
| 106 | } else if err, doRedirect = mod.BoolParam("http.proxy.redirect"); err != nil { |
| 107 | return err |
| 108 | } else if err, scriptPath = mod.StringParam("http.proxy.script"); err != nil { |
| 109 | return err |
| 110 | } else if err, stripSSL = mod.BoolParam("http.proxy.sslstrip"); err != nil { |
| 111 | return err |
| 112 | } else if err, jsToInject = mod.StringParam("http.proxy.injectjs"); err != nil { |
| 113 | return err |
| 114 | } else if err, blacklist = mod.StringParam("http.proxy.blacklist"); err != nil { |
| 115 | return err |
| 116 | } else if err, whitelist = mod.StringParam("http.proxy.whitelist"); err != nil { |
| 117 | return err |
| 118 | } |
| 119 | |
| 120 | mod.proxy.Blacklist = str.Comma(blacklist) |
| 121 | mod.proxy.Whitelist = str.Comma(whitelist) |
| 122 | |
| 123 | error := mod.proxy.Configure(address, proxyPort, httpPort, doRedirect, scriptPath, jsToInject, stripSSL) |
| 124 | |
| 125 | // save stripper to share it with other http(s) proxies |
| 126 | mod.State.Store("stripper", mod.proxy.Stripper) |
| 127 | |
| 128 | return error |
| 129 | } |
| 130 | |
| 131 | func (mod *HttpProxy) Start() error { |
| 132 | if err := mod.Configure(); err != nil { |