diff options
-rw-r--r-- | conf/app.ini | 5 | ||||
-rw-r--r-- | models/models.go | 8 | ||||
-rw-r--r-- | modules/base/conf.go | 2 | ||||
-rw-r--r-- | modules/middleware/context.go | 14 | ||||
-rw-r--r-- | modules/middleware/logger.go | 6 | ||||
-rw-r--r-- | routers/admin/admin.go | 1 | ||||
-rw-r--r-- | templates/admin/config.tmpl | 2 | ||||
-rw-r--r-- | web.go | 3 |
8 files changed, 32 insertions, 9 deletions
diff --git a/conf/app.ini b/conf/app.ini index 6dfd198b2f..789f357fa9 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -15,9 +15,12 @@ LICENSES = Apache v2 License|GPL v2|MIT License|Affero GPL|Artistic License 2.0| [server] PROTOCOL = http DOMAIN = localhost -ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:3000/ +ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/ +HTTP_ADDR = +HTTP_PORT = 3000 ; Disable CDN even in "prod" mode OFFLINE_MODE = false +ROUTER_LOG = true ; Generate steps: ; $ cd path/to/gogs/custom/https ; $ go run $GOROOT/src/pkg/crypto/tls/generate_cert.go -ca=true -duration=8760h0m0s -host=myhost.example.com diff --git a/models/models.go b/models/models.go index 8e8835ab51..059435f15f 100644 --- a/models/models.go +++ b/models/models.go @@ -58,10 +58,10 @@ func NewTestEngine(x *xorm.Engine) (err error) { case "postgres": var host, port = "127.0.0.1", "5432" fields := strings.Split(DbCfg.Host, ":") - if len(fields) > 0 { + if len(fields) > 0 && len(strings.TrimSpace(fields[0])) > 0 { host = fields[0] } - if len(fields) > 1 { + if len(fields) > 1 && len(strings.TrimSpace(fields[1])) > 0 { port = fields[1] } cnnstr := fmt.Sprintf("user=%s password=%s host=%s port=%s dbname=%s sslmode=%s", @@ -91,10 +91,10 @@ func SetEngine() (err error) { case "postgres": var host, port = "127.0.0.1", "5432" fields := strings.Split(DbCfg.Host, ":") - if len(fields) > 0 { + if len(fields) > 0 && len(strings.TrimSpace(fields[0])) > 0 { host = fields[0] } - if len(fields) > 1 { + if len(fields) > 1 && len(strings.TrimSpace(fields[1])) > 0 { port = fields[1] } orm, err = xorm.NewEngine("postgres", fmt.Sprintf("user=%s password=%s host=%s port=%s dbname=%s sslmode=%s", diff --git a/modules/base/conf.go b/modules/base/conf.go index cfc85ff51e..23c7276bf1 100644 --- a/modules/base/conf.go +++ b/modules/base/conf.go @@ -50,6 +50,7 @@ var ( AppLogo string AppUrl string OfflineMode bool + RouterLog bool ProdMode bool Domain string SecretKey string @@ -327,6 +328,7 @@ func NewConfigContext() { AppUrl = Cfg.MustValue("server", "ROOT_URL") Domain = Cfg.MustValue("server", "DOMAIN") OfflineMode = Cfg.MustBool("server", "OFFLINE_MODE", false) + RouterLog = Cfg.MustBool("server", "ROUTER_LOG", true) SecretKey = Cfg.MustValue("security", "SECRET_KEY") InstallLock = Cfg.MustBool("security", "INSTALL_LOCK", false) diff --git a/modules/middleware/context.go b/modules/middleware/context.go index 1330172fde..31fdca681a 100644 --- a/modules/middleware/context.go +++ b/modules/middleware/context.go @@ -106,11 +106,19 @@ func (ctx *Context) RenderWithErr(msg, tpl string, form auth.Form) { // Handle handles and logs error by given status. func (ctx *Context) Handle(status int, title string, err error) { - log.Error("%s: %v", title, err) - if martini.Dev != martini.Prod { - ctx.Data["ErrorMsg"] = err + if err != nil { + log.Error("%s: %v", title, err) + if martini.Dev != martini.Prod { + ctx.Data["ErrorMsg"] = err + } } + switch status { + case 404: + ctx.Data["Title"] = "Page Not Found" + case 500: + ctx.Data["Title"] = "Internal Server Error" + } ctx.HTML(status, fmt.Sprintf("status/%d", status)) } diff --git a/modules/middleware/logger.go b/modules/middleware/logger.go index fc8e1a8115..d815b90c26 100644 --- a/modules/middleware/logger.go +++ b/modules/middleware/logger.go @@ -12,6 +12,8 @@ import ( "time" "github.com/go-martini/martini" + + "github.com/gogits/gogs/modules/base" ) var isWindows bool @@ -22,6 +24,10 @@ func init() { func Logger() martini.Handler { return func(res http.ResponseWriter, req *http.Request, ctx martini.Context, log *log.Logger) { + if !base.RouterLog { + return + } + start := time.Now() log.Printf("Started %s %s", req.Method, req.URL.Path) diff --git a/routers/admin/admin.go b/routers/admin/admin.go index fddd830185..14128c8c2b 100644 --- a/routers/admin/admin.go +++ b/routers/admin/admin.go @@ -140,6 +140,7 @@ func Config(ctx *middleware.Context) { ctx.Data["AppUrl"] = base.AppUrl ctx.Data["Domain"] = base.Domain ctx.Data["OfflineMode"] = base.OfflineMode + ctx.Data["RouterLog"] = base.RouterLog ctx.Data["RunUser"] = base.RunUser ctx.Data["RunMode"] = strings.Title(martini.Env) ctx.Data["RepoRootPath"] = base.RepoRootPath diff --git a/templates/admin/config.tmpl b/templates/admin/config.tmpl index b2b25e90f6..08a68ae10e 100644 --- a/templates/admin/config.tmpl +++ b/templates/admin/config.tmpl @@ -20,6 +20,8 @@ <dd>{{.Domain}}</dd> <dt>Offline Mode</dt> <dd><i class="fa fa{{if .OfflineMode}}-check{{end}}-square-o"></i></dd> + <dt>Router Log</dt> + <dd><i class="fa fa{{if .RouterLog}}-check{{end}}-square-o"></i></dd> <hr/> <dt>Run User</dt> <dd>{{.RunUser}}</dd> @@ -42,7 +42,7 @@ func newMartini() *martini.ClassicMartini { m := martini.New() m.Use(middleware.Logger()) m.Use(martini.Recovery()) - m.Use(martini.Static("public")) + m.Use(martini.Static("public", martini.StaticOptions{SkipLogging: !base.RouterLog})) m.MapTo(r, (*martini.Routes)(nil)) m.Action(r.Handle) return &martini.ClassicMartini{m, r} @@ -208,4 +208,5 @@ func runWeb(*cli.Context) { qlog.Error(err.Error()) } } + qlog.Fatalf("Invalid protocol: %s", protocol) } |