![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true) | ![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true) | ||||
##### Current version: 0.9.3 | |||||
##### Current version: 0.9.4 | |||||
| Web | UI | Preview | | | Web | UI | Preview | | ||||
|:-------------:|:-------:|:-------:| | |:-------------:|:-------:|:-------:| |
"github.com/gogits/gogs/modules/setting" | "github.com/gogits/gogs/modules/setting" | ||||
) | ) | ||||
const APP_VER = "0.9.3.0309" | |||||
const APP_VER = "0.9.4.0311" | |||||
func init() { | func init() { | ||||
runtime.GOMAXPROCS(runtime.NumCPU()) | runtime.GOMAXPROCS(runtime.NumCPU()) |
} | } | ||||
} | } | ||||
// Notify watchers for whatever action comes in | |||||
if err = notifyWatchers(e, act); err != nil { | |||||
return nil, fmt.Errorf("notifyWatchers: %v", err) | |||||
// Notify watchers for whatever action comes in, ignore if no action type | |||||
if act.OpType > 0 { | |||||
if err = notifyWatchers(e, act); err != nil { | |||||
return nil, fmt.Errorf("notifyWatchers: %v", err) | |||||
} | |||||
} | } | ||||
return comment, nil | return comment, nil |
} | } | ||||
// http://code.google.com/p/go/source/browse/pbkdf2/pbkdf2.go?repo=crypto | // http://code.google.com/p/go/source/browse/pbkdf2/pbkdf2.go?repo=crypto | ||||
// FIXME: use https://godoc.org/golang.org/x/crypto/pbkdf2? | |||||
func PBKDF2(password, salt []byte, iter, keyLen int, h func() hash.Hash) []byte { | func PBKDF2(password, salt []byte, iter, keyLen int, h func() hash.Hash) []byte { | ||||
prf := hmac.New(h, password) | prf := hmac.New(h, password) | ||||
hashLen := prf.Size() | hashLen := prf.Size() |
0.9.3.0309 | |||||
0.9.4.0311 |