Skip to content

Commit

Permalink
feat(config): enable or disable httpd server. (#262)
Browse files Browse the repository at this point in the history
  • Loading branch information
appleboy authored Jul 27, 2017
1 parent ac7bd0a commit 00ff024
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ See the [YAML config example](config/config.yml):
[embedmd]:# (config/config.yml yaml)
```yaml
core:
enabled: true # enabale httpd server
port: "8088" # ignore this port number if auto_tls is enabled (listen 443).
worker_num: 0 # default worker number is runtime.NumCPU()
queue_num: 0 # default queue number is 8192
Expand Down
2 changes: 2 additions & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ type ConfYaml struct {

// SectionCore is sub section of config.
type SectionCore struct {
Enabled bool `yaml:"enabled"`
Port string `yaml:"port"`
MaxNotification int64 `yaml:"max_notification"`
WorkerNum int64 `yaml:"worker_num"`
Expand Down Expand Up @@ -128,6 +129,7 @@ func BuildDefaultPushConf() ConfYaml {

// Core
conf.Core.Port = "8088"
conf.Core.Enabled = true
conf.Core.WorkerNum = int64(runtime.NumCPU())
conf.Core.QueueNum = int64(8192)
conf.Core.Mode = "release"
Expand Down
1 change: 1 addition & 0 deletions config/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
core:
enabled: true # enabale httpd server
port: "8088" # ignore this port number if auto_tls is enabled (listen 443).
worker_num: 0 # default worker number is runtime.NumCPU()
queue_num: 0 # default queue number is 8192
Expand Down
2 changes: 2 additions & 0 deletions config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ func (suite *ConfigTestSuite) SetupTest() {
func (suite *ConfigTestSuite) TestValidateConfDefault() {
// Core
assert.Equal(suite.T(), "8088", suite.ConfGorushDefault.Core.Port)
assert.Equal(suite.T(), true, suite.ConfGorushDefault.Core.Enabled)
assert.Equal(suite.T(), int64(runtime.NumCPU()), suite.ConfGorushDefault.Core.WorkerNum)
assert.Equal(suite.T(), int64(8192), suite.ConfGorushDefault.Core.QueueNum)
assert.Equal(suite.T(), "release", suite.ConfGorushDefault.Core.Mode)
Expand Down Expand Up @@ -120,6 +121,7 @@ func (suite *ConfigTestSuite) TestValidateConfDefault() {
func (suite *ConfigTestSuite) TestValidateConf() {
// Core
assert.Equal(suite.T(), "8088", suite.ConfGorush.Core.Port)
assert.Equal(suite.T(), true, suite.ConfGorush.Core.Enabled)
assert.Equal(suite.T(), int64(runtime.NumCPU()), suite.ConfGorush.Core.WorkerNum)
assert.Equal(suite.T(), int64(8192), suite.ConfGorush.Core.QueueNum)
assert.Equal(suite.T(), "release", suite.ConfGorush.Core.Mode)
Expand Down
9 changes: 9 additions & 0 deletions gorush/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -255,3 +255,12 @@ func TestMetricsHandler(t *testing.T) {
assert.Equal(t, http.StatusOK, r.Code)
})
}

func TestDisabledHTTPServer(t *testing.T) {
initTest()
PushConf.Core.Enabled = false
err := RunHTTPServer()
PushConf.Core.Enabled = true

assert.Nil(t, err)
}
5 changes: 5 additions & 0 deletions gorush/server_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ import (

// RunHTTPServer provide run http or https protocol.
func RunHTTPServer() (err error) {
if !PushConf.Core.Enabled {
LogAccess.Debug("httpd server is disabled.")
return nil
}

LogAccess.Debug("HTTPD server is running on " + PushConf.Core.Port + " port.")
if PushConf.Core.AutoTLS.Enabled {
err = gracehttp.Serve(autoTLSServer())
Expand Down
5 changes: 5 additions & 0 deletions gorush/server_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ import (

// RunHTTPServer provide run http or https protocol.
func RunHTTPServer() (err error) {
if !PushConf.Core.Enabled {
LogAccess.Debug("httpd server is disabled.")
return nil
}

if PushConf.Core.AutoTLS.Enabled {
s := autoTLSServer()
err = s.ListenAndServeTLS("", "")
Expand Down

0 comments on commit 00ff024

Please sign in to comment.