Skip to content

Commit

Permalink
Initial proxy setting for web server.
Browse files Browse the repository at this point in the history
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
  • Loading branch information
appleboy committed Jul 29, 2016
1 parent e784ae5 commit 4a43124
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 11 deletions.
2 changes: 2 additions & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ type SectionCore struct {
SSL bool `yaml:"ssl"`
CertPath string `yaml:"cert_path"`
KeyPath string `yaml:"key_path"`
HTTPProxy string `yaml:"http_proxy"`
}

// SectionAPI is sub seciont of config.
Expand Down Expand Up @@ -94,6 +95,7 @@ func BuildDefaultPushConf() ConfYaml {
conf.Core.CertPath = "cert.pem"
conf.Core.KeyPath = "key.pem"
conf.Core.MaxNotification = 100
conf.Core.HTTPProxy = ""

// Api
conf.API.PushURI = "/api/push"
Expand Down
1 change: 1 addition & 0 deletions config/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ core:
ssl: false
cert_path: "cert.pem"
key_path: "key.pem"
http_proxy: ""

api:
push_uri: "/api/push"
Expand Down
2 changes: 2 additions & 0 deletions config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ func (suite *ConfigTestSuite) TestValidateConfDefault() {
assert.Equal(suite.T(), "cert.pem", suite.ConfGorushDefault.Core.CertPath)
assert.Equal(suite.T(), "key.pem", suite.ConfGorushDefault.Core.KeyPath)
assert.Equal(suite.T(), 100, suite.ConfGorushDefault.Core.MaxNotification)
assert.Equal(suite.T(), "", suite.ConfGorushDefault.Core.HTTPProxy)

// Api
assert.Equal(suite.T(), "/api/push", suite.ConfGorushDefault.API.PushURI)
Expand Down Expand Up @@ -107,6 +108,7 @@ func (suite *ConfigTestSuite) TestValidateConf() {
assert.Equal(suite.T(), "cert.pem", suite.ConfGorush.Core.CertPath)
assert.Equal(suite.T(), "key.pem", suite.ConfGorush.Core.KeyPath)
assert.Equal(suite.T(), 100, suite.ConfGorush.Core.MaxNotification)
assert.Equal(suite.T(), "", suite.ConfGorush.Core.HTTPProxy)

// Api
assert.Equal(suite.T(), "/api/push", suite.ConfGorush.API.PushURI)
Expand Down
26 changes: 15 additions & 11 deletions gorush.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,17 +103,6 @@ func main() {
// set default parameters.
gorush.PushConf = config.BuildDefaultPushConf()

// set http proxy for GCM
if proxy != "" {
err = gorush.SetProxy(proxy)

if err != nil {
log.Printf("Set Proxy error: '%v'", err)

return
}
}

// load user define config.
if configFile != "" {
gorush.PushConf, err = config.LoadConfYaml(configFile)
Expand Down Expand Up @@ -148,6 +137,21 @@ func main() {
return
}

// set http proxy for GCM
if proxy != "" {
err = gorush.SetProxy(proxy)

if err != nil {
gorush.LogError.Fatal("Set Proxy error: ", err)
}
} else if gorush.PushConf.Core.HTTPProxy != "" {
err = gorush.SetProxy(gorush.PushConf.Core.HTTPProxy)

if err != nil {
gorush.LogError.Fatal("Set Proxy error: ", err)
}
}

// send android notification
if opts.Android.Enabled {
gorush.PushConf.Android.Enabled = opts.Android.Enabled
Expand Down
1 change: 1 addition & 0 deletions gorush/notification.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ func SetProxy(proxy string) error {
}

http.DefaultTransport = &http.Transport{Proxy: http.ProxyURL(proxyUrl)}
LogAccess.Debug("Set http proxy as " + proxy)

return nil
}
Expand Down

0 comments on commit 4a43124

Please sign in to comment.