summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/avatar/avatar.go28
-rw-r--r--modules/avatar/avatar_test.go13
-rw-r--r--modules/base/conf.go13
-rw-r--r--modules/log/log.go9
-rw-r--r--modules/middleware/auth.go2
5 files changed, 45 insertions, 20 deletions
diff --git a/modules/avatar/avatar.go b/modules/avatar/avatar.go
index 1a18d8a7ec..0ba20294af 100644
--- a/modules/avatar/avatar.go
+++ b/modules/avatar/avatar.go
@@ -3,6 +3,14 @@
// license that can be found in the LICENSE file.
// for www.gravatar.com image cache
+
+/*
+It is recommend to use this way
+
+ cacheDir := "./cache"
+ defaultImg := "./default.jpg"
+ http.Handle("/avatar/", avatar.HttpHandler(cacheDir, defaultImg))
+*/
package avatar
import (
@@ -14,7 +22,6 @@ import (
"image/jpeg"
"image/png"
"io"
- "log"
"net/http"
"net/url"
"os"
@@ -23,6 +30,7 @@ import (
"sync"
"time"
+ "github.com/gogits/gogs/modules/log"
"github.com/nfnt/resize"
)
@@ -30,12 +38,6 @@ var (
gravatar = "http://www.gravatar.com/avatar"
)
-func debug(a ...interface{}) {
- if true {
- log.Println(a...)
- }
-}
-
// hash email to md5 string
// keep this func in order to make this package indenpent
func HashEmail(email string) string {
@@ -125,7 +127,7 @@ func (this *Avatar) UpdateTimeout(timeout time.Duration) error {
var err error
select {
case <-time.After(timeout):
- err = errors.New("get gravatar image timeout")
+ err = fmt.Errorf("get gravatar image %s timeout", this.Hash)
case err = <-thunder.GoFetch(gravatar+"/"+this.Hash+"?"+this.reqParams,
this.imagePath):
}
@@ -150,16 +152,14 @@ func (this *avatarHandler) mustInt(r *http.Request, defaultValue int, keys ...st
func (this *avatarHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
urlPath := r.URL.Path
hash := urlPath[strings.LastIndex(urlPath, "/")+1:]
- //hash = HashEmail(hash)
- size := this.mustInt(r, 80, "s", "size") // size = 80*80
+ size := this.mustInt(r, 80, "s", "size") // default size = 80*80
avatar := New(hash, this.cacheDir)
avatar.AlterImage = this.altImage
if avatar.Expired() {
err := avatar.UpdateTimeout(time.Millisecond * 500)
if err != nil {
- debug(err)
- //log.Trace("avatar update error: %v", err)
+ log.Trace("avatar update error: %v", err)
}
}
if modtime, err := avatar.Modtime(); err == nil {
@@ -177,8 +177,7 @@ func (this *avatarHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "image/jpeg")
err := avatar.Encode(w, size)
if err != nil {
- //log.Warn("avatar encode error: %v", err) // will panic when err != nil
- debug(err)
+ log.Warn("avatar encode error: %v", err)
w.WriteHeader(500)
}
}
@@ -251,7 +250,6 @@ func (this *thunderTask) Fetch() {
var client = &http.Client{}
func (this *thunderTask) fetch() error {
- //log.Println("thunder, fetch", this.Url)
req, _ := http.NewRequest("GET", this.Url, nil)
req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
req.Header.Set("Accept-Encoding", "gzip,deflate,sdch")
diff --git a/modules/avatar/avatar_test.go b/modules/avatar/avatar_test.go
index a337959c6f..4656d6f0f4 100644
--- a/modules/avatar/avatar_test.go
+++ b/modules/avatar/avatar_test.go
@@ -4,13 +4,14 @@
package avatar_test
import (
- "log"
+ "errors"
"os"
"strconv"
"testing"
"time"
"github.com/gogits/gogs/modules/avatar"
+ "github.com/gogits/gogs/modules/log"
)
const TMPDIR = "test-avatar"
@@ -28,7 +29,7 @@ func TestFetchMany(t *testing.T) {
os.Mkdir(TMPDIR, 0755)
defer os.RemoveAll(TMPDIR)
- log.Println("start")
+ t.Log("start")
var n = 5
ch := make(chan bool, n)
for i := 0; i < n; i++ {
@@ -36,14 +37,14 @@ func TestFetchMany(t *testing.T) {
hash := avatar.HashEmail(strconv.Itoa(i) + "ssx205@gmail.com")
a := avatar.New(hash, TMPDIR)
a.Update()
- log.Println("finish", hash)
+ t.Log("finish", hash)
ch <- true
}(i)
}
for i := 0; i < n; i++ {
<-ch
}
- log.Println("end")
+ t.Log("end")
}
// cat
@@ -54,3 +55,7 @@ func TestHttp(t *testing.T) {
http.ListenAndServe(":8001", nil)
}
*/
+
+func TestLogTrace(t *testing.T) {
+ log.Trace("%v", errors.New("console log test"))
+}
diff --git a/modules/base/conf.go b/modules/base/conf.go
index b243a6ad58..2bf529d9d1 100644
--- a/modules/base/conf.go
+++ b/modules/base/conf.go
@@ -66,6 +66,7 @@ var Service struct {
DisenableRegisteration bool
RequireSignInView bool
EnableCacheAvatar bool
+ NotifyMail bool
ActiveCodeLives int
ResetPwdCodeLives int
}
@@ -230,6 +231,17 @@ func newRegisterMailService() {
log.Info("Register Mail Service Enabled")
}
+func newNotifyMailService() {
+ if !Cfg.MustBool("service", "ENABLE_NOTIFY_MAIL") {
+ return
+ } else if MailService == nil {
+ log.Warn("Notify Mail Service: Mail Service is not enabled")
+ return
+ }
+ Service.NotifyMail = true
+ log.Info("Notify Mail Service Enabled")
+}
+
func NewConfigContext() {
var err error
workDir, err := exeDir()
@@ -284,4 +296,5 @@ func NewServices() {
newSessionService()
newMailService()
newRegisterMailService()
+ newNotifyMailService()
}
diff --git a/modules/log/log.go b/modules/log/log.go
index 29782fb2ba..0c07c7c62a 100644
--- a/modules/log/log.go
+++ b/modules/log/log.go
@@ -11,6 +11,11 @@ import (
var logger *logs.BeeLogger
+func init() {
+ logger = logs.NewLogger(10000)
+ logger.SetLogger("console", `{"level": 0}`)
+}
+
func NewLogger(bufLen int64, mode, config string) {
logger = logs.NewLogger(bufLen)
logger.SetLogger(mode, config)
@@ -20,6 +25,10 @@ func Trace(format string, v ...interface{}) {
logger.Trace(format, v...)
}
+func Debug(format string, v ...interface{}) {
+ logger.Debug(format, v...)
+}
+
func Info(format string, v ...interface{}) {
logger.Info(format, v...)
}
diff --git a/modules/middleware/auth.go b/modules/middleware/auth.go
index 82c3367c48..64f75d75cf 100644
--- a/modules/middleware/auth.go
+++ b/modules/middleware/auth.go
@@ -21,7 +21,7 @@ type ToggleOptions struct {
func Toggle(options *ToggleOptions) martini.Handler {
return func(ctx *Context) {
- if options.SignOutRequire && ctx.IsSigned {
+ if options.SignOutRequire && ctx.IsSigned && ctx.Req.RequestURI != "/" {
ctx.Redirect("/")
return
}