mirror of
https://github.com/taigrr/godns
synced 2025-01-18 04:03:25 -08:00
fix golint warnings
This commit is contained in:
parent
e421c27afc
commit
17f41e45f8
@ -41,7 +41,7 @@ func generateHeader(content url.Values) url.Values {
|
|||||||
header.Add("error_on_empty", "no")
|
header.Add("error_on_empty", "no")
|
||||||
|
|
||||||
if content != nil {
|
if content != nil {
|
||||||
for k, _ := range content {
|
for k := range content {
|
||||||
header.Add(k, content.Get(k))
|
header.Add(k, content.Get(k))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
godns.go
10
godns.go
@ -11,8 +11,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
//Max allowed panic times
|
||||||
PANIC_MAX = 5
|
PANIC_MAX = 5
|
||||||
INTERVAL = 5 //Minute
|
//Minute
|
||||||
|
INTERVAL = 5
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -72,13 +74,13 @@ func main() {
|
|||||||
func dnsLoop() {
|
func dnsLoop() {
|
||||||
|
|
||||||
for _, domain := range configuration.Domains {
|
for _, domain := range configuration.Domains {
|
||||||
go DomainLoop(&domain)
|
go domainLoop(&domain)
|
||||||
}
|
}
|
||||||
|
|
||||||
select {}
|
select {}
|
||||||
}
|
}
|
||||||
|
|
||||||
func DomainLoop(domain *Domain) {
|
func domainLoop(domain *Domain) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
panicCount++
|
panicCount++
|
||||||
@ -87,7 +89,7 @@ func DomainLoop(domain *Domain) {
|
|||||||
log.Print(identifyPanic())
|
log.Print(identifyPanic())
|
||||||
if panicCount < PANIC_MAX {
|
if panicCount < PANIC_MAX {
|
||||||
log.Println("Got panic in goroutine, will start a new one... :", panicCount)
|
log.Println("Got panic in goroutine, will start a new one... :", panicCount)
|
||||||
go DomainLoop(domain)
|
go domainLoop(domain)
|
||||||
} else {
|
} else {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
172
logger.go
172
logger.go
@ -16,14 +16,21 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
//L_INFO log level
|
||||||
L_INFO int = iota
|
L_INFO int = iota
|
||||||
|
//L_WARNING log level
|
||||||
L_WARNING
|
L_WARNING
|
||||||
|
//L_DEBUG log level
|
||||||
L_DEBUG
|
L_DEBUG
|
||||||
|
//PRE_INFO log level
|
||||||
PRE_INFO = "[ INFO]"
|
PRE_INFO = "[ INFO]"
|
||||||
|
//PRE_WARNING log level
|
||||||
PRE_WARNING = "[WARNING]"
|
PRE_WARNING = "[WARNING]"
|
||||||
|
//PRE_DEBUG log level
|
||||||
PRE_DEBUG = "[ DEBUG]"
|
PRE_DEBUG = "[ DEBUG]"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//Logger struct
|
||||||
type Logger struct {
|
type Logger struct {
|
||||||
DEV_MODE bool
|
DEV_MODE bool
|
||||||
fd *os.File
|
fd *os.File
|
||||||
@ -38,6 +45,7 @@ type Logger struct {
|
|||||||
log *log.Logger
|
log *log.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//NewLogger returns a new created logger
|
||||||
func NewLogger(logfile string, size, num int, level int, flushInterval int64, flushSize int) (logger *Logger, err error) {
|
func NewLogger(logfile string, size, num int, level int, flushInterval int64, flushSize int) (logger *Logger, err error) {
|
||||||
if size < 1 || num < 1 || level < L_INFO || len(logfile) < 1 {
|
if size < 1 || num < 1 || level < L_INFO || len(logfile) < 1 {
|
||||||
err = errors.New("NewLogWriter:param error.")
|
err = errors.New("NewLogWriter:param error.")
|
||||||
@ -69,6 +77,7 @@ func NewLogger(logfile string, size, num int, level int, flushInterval int64, fl
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//InitLogger initialize logger with specified log filename & size
|
||||||
func InitLogger(logfile string, size, num int) (err error) {
|
func InitLogger(logfile string, size, num int) (err error) {
|
||||||
logger, err := NewLogger(logfile, size, num, L_INFO, -1, -1)
|
logger, err := NewLogger(logfile, size, num, L_INFO, -1, -1)
|
||||||
if logger != nil {
|
if logger != nil {
|
||||||
@ -78,27 +87,27 @@ func InitLogger(logfile string, size, num int) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//immplement write
|
//immplement write
|
||||||
func (this *Logger) Write(p []byte) (n int, err error) {
|
func (logger *Logger) Write(p []byte) (n int, err error) {
|
||||||
if this.DEV_MODE {
|
if logger.DEV_MODE {
|
||||||
n, err = os.Stdout.Write(p)
|
n, err = os.Stdout.Write(p)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
n, err = this.fd.Write(p)
|
n, err = logger.fd.Write(p)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
fi, e := this.fd.Stat()
|
fi, e := logger.fd.Stat()
|
||||||
if e != nil {
|
if e != nil {
|
||||||
err = e
|
err = e
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if fi.Size() > int64(this.size) {
|
if fi.Size() > int64(logger.size) {
|
||||||
this.muSplit.Lock()
|
logger.muSplit.Lock()
|
||||||
defer this.muSplit.Unlock()
|
defer logger.muSplit.Unlock()
|
||||||
|
|
||||||
fname := fi.Name()
|
fname := fi.Name()
|
||||||
strings.HasSuffix(fname, ".log")
|
strings.HasSuffix(fname, ".log")
|
||||||
fbase := fname[:len(fname)-3]
|
fbase := fname[:len(fname)-3]
|
||||||
|
|
||||||
oldBs := make([]byte, 0, this.size)
|
oldBs := make([]byte, 0, logger.size)
|
||||||
newBs := []byte{}
|
newBs := []byte{}
|
||||||
fd, e := os.Open(fname)
|
fd, e := os.Open(fname)
|
||||||
if e != nil {
|
if e != nil {
|
||||||
@ -115,7 +124,7 @@ func (this *Logger) Write(p []byte) (n int, err error) {
|
|||||||
err = e
|
err = e
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if len(oldBs)+len(line) > this.size {
|
if len(oldBs)+len(line) > logger.size {
|
||||||
newBs = append(newBs, line...)
|
newBs = append(newBs, line...)
|
||||||
} else {
|
} else {
|
||||||
oldBs = append(oldBs, line...)
|
oldBs = append(oldBs, line...)
|
||||||
@ -123,11 +132,11 @@ func (this *Logger) Write(p []byte) (n int, err error) {
|
|||||||
}
|
}
|
||||||
fd.Close()
|
fd.Close()
|
||||||
|
|
||||||
_, err = this.saveLog(1, fbase, oldBs)
|
_, err = logger.saveLog(1, fbase, oldBs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
err = this.fd.Close()
|
err = logger.fd.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -135,11 +144,11 @@ func (this *Logger) Write(p []byte) (n int, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.fd, err = os.OpenFile(fname, os.O_WRONLY|os.O_APPEND|os.O_CREATE, os.ModeAppend|0666)
|
logger.fd, err = os.OpenFile(fname, os.O_WRONLY|os.O_APPEND|os.O_CREATE, os.ModeAppend|0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
_, err = this.fd.Write(newBs)
|
_, err = logger.fd.Write(newBs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -148,16 +157,16 @@ func (this *Logger) Write(p []byte) (n int, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) saveLog(index int, fbase string, data []byte) (n int, err error) {
|
func (logger *Logger) saveLog(index int, fbase string, data []byte) (n int, err error) {
|
||||||
fn := fbase + strconv.Itoa(index) + ".log"
|
fn := fbase + strconv.Itoa(index) + ".log"
|
||||||
_, err = os.Stat(fn)
|
_, err = os.Stat(fn)
|
||||||
if index < this.num && err == nil {
|
if index < logger.num && err == nil {
|
||||||
var b []byte
|
var b []byte
|
||||||
b, err = ioutil.ReadFile(fn)
|
b, err = ioutil.ReadFile(fn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
n, err = this.saveLog(index+1, fbase, b)
|
n, err = logger.saveLog(index+1, fbase, b)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -172,121 +181,130 @@ func (this *Logger) saveLog(index int, fbase string, data []byte) (n int, err er
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
//flush buf data to std log
|
//Flush buf data to std log
|
||||||
func (this *Logger) Flush() {
|
func (logger *Logger) Flush() {
|
||||||
if this.buf.Len() > 0 {
|
if logger.buf.Len() > 0 {
|
||||||
this.mu.Lock()
|
logger.mu.Lock()
|
||||||
defer this.mu.Unlock()
|
defer logger.mu.Unlock()
|
||||||
|
|
||||||
log.SetFlags(0)
|
log.SetFlags(0)
|
||||||
log.Print(this.buf)
|
log.Print(logger.buf)
|
||||||
log.SetFlags(log.LstdFlags)
|
log.SetFlags(log.LstdFlags)
|
||||||
this.buf.Reset()
|
logger.buf.Reset()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//clean prefix and check buf size
|
//Clean prefix and check buf size
|
||||||
func (this *Logger) clean() {
|
func (logger *Logger) clean() {
|
||||||
this.log.SetPrefix("")
|
logger.log.SetPrefix("")
|
||||||
if this.buf.Len()/1024 > this.flushSize {
|
if logger.buf.Len()/1024 > logger.flushSize {
|
||||||
go this.Flush()
|
go logger.Flush()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) setPrefix(lv int) bool {
|
func (logger *Logger) setPrefix(lv int) bool {
|
||||||
if lv > this.level {
|
if lv > logger.level {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
switch lv {
|
switch lv {
|
||||||
case L_INFO:
|
case L_INFO:
|
||||||
this.log.SetPrefix(PRE_INFO)
|
logger.log.SetPrefix(PRE_INFO)
|
||||||
case L_WARNING:
|
case L_WARNING:
|
||||||
this.log.SetPrefix(PRE_WARNING)
|
logger.log.SetPrefix(PRE_WARNING)
|
||||||
case L_DEBUG:
|
case L_DEBUG:
|
||||||
this.log.SetPrefix(PRE_DEBUG)
|
logger.log.SetPrefix(PRE_DEBUG)
|
||||||
default:
|
default:
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) logPrint(lv int, args ...interface{}) {
|
func (logger *Logger) logPrint(lv int, args ...interface{}) {
|
||||||
this.mu.Lock()
|
logger.mu.Lock()
|
||||||
defer this.mu.Unlock()
|
defer logger.mu.Unlock()
|
||||||
|
|
||||||
if !this.setPrefix(lv) {
|
if !logger.setPrefix(lv) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.log.Print(args...)
|
logger.log.Print(args...)
|
||||||
this.clean()
|
logger.clean()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) logPrintln(lv int, args ...interface{}) {
|
func (logger *Logger) logPrintln(lv int, args ...interface{}) {
|
||||||
this.mu.Lock()
|
logger.mu.Lock()
|
||||||
defer this.mu.Unlock()
|
defer logger.mu.Unlock()
|
||||||
|
|
||||||
if !this.setPrefix(lv) {
|
if !logger.setPrefix(lv) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.log.Println(args...)
|
logger.log.Println(args...)
|
||||||
this.clean()
|
logger.clean()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) logPrintf(lv int, format string, args ...interface{}) {
|
func (logger *Logger) logPrintf(lv int, format string, args ...interface{}) {
|
||||||
this.mu.Lock()
|
logger.mu.Lock()
|
||||||
defer this.mu.Unlock()
|
defer logger.mu.Unlock()
|
||||||
|
|
||||||
if !this.setPrefix(lv) {
|
if !logger.setPrefix(lv) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.log.Printf(format, args...)
|
logger.log.Printf(format, args...)
|
||||||
this.clean()
|
logger.clean()
|
||||||
}
|
}
|
||||||
|
|
||||||
//close fd
|
//Close fd
|
||||||
func (this *Logger) Close() {
|
func (log *Logger) Close() {
|
||||||
if this.fd != nil {
|
if log.fd != nil {
|
||||||
this.Flush()
|
log.Flush()
|
||||||
this.fd.Close()
|
log.fd.Close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) Info(args ...interface{}) {
|
//Info output info log
|
||||||
this.logPrint(L_INFO, args...)
|
func (logger *Logger) Info(args ...interface{}) {
|
||||||
|
logger.logPrint(L_INFO, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) Infoln(args ...interface{}) {
|
//Infoln output info log with newline
|
||||||
this.logPrintln(L_INFO, args...)
|
func (logger *Logger) Infoln(args ...interface{}) {
|
||||||
|
logger.logPrintln(L_INFO, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) Infof(format string, args ...interface{}) {
|
//Infof output formatted info log
|
||||||
this.logPrintf(L_INFO, format, args...)
|
func (logger *Logger) Infof(format string, args ...interface{}) {
|
||||||
|
logger.logPrintf(L_INFO, format, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) Warning(args ...interface{}) {
|
//Warning output warning log
|
||||||
this.logPrint(L_WARNING, args...)
|
func (logger *Logger) Warning(args ...interface{}) {
|
||||||
|
logger.logPrint(L_WARNING, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) Warningln(args ...interface{}) {
|
//Warningln output warning log with newline
|
||||||
this.logPrintln(L_WARNING, args...)
|
func (logger *Logger) Warningln(args ...interface{}) {
|
||||||
|
logger.logPrintln(L_WARNING, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) Warningf(format string, args ...interface{}) {
|
//Warningf output formatted warning log
|
||||||
this.logPrintf(L_WARNING, format, args...)
|
func (logger *Logger) Warningf(format string, args ...interface{}) {
|
||||||
|
logger.logPrintf(L_WARNING, format, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) Debug(args ...interface{}) {
|
//Debug output debug log
|
||||||
this.logPrint(L_DEBUG, args...)
|
func (logger *Logger) Debug(args ...interface{}) {
|
||||||
this.Flush()
|
logger.logPrint(L_DEBUG, args...)
|
||||||
|
logger.Flush()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) Debugln(args ...interface{}) {
|
//Debugln output debug log with newline
|
||||||
this.logPrintln(L_DEBUG, args...)
|
func (logger *Logger) Debugln(args ...interface{}) {
|
||||||
this.Flush()
|
logger.logPrintln(L_DEBUG, args...)
|
||||||
|
logger.Flush()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Logger) Debugf(format string, args ...interface{}) {
|
//Debugf output formatted debug log
|
||||||
this.logPrintf(L_DEBUG, format, args...)
|
func (logger *Logger) Debugf(format string, args ...interface{}) {
|
||||||
this.Flush()
|
logger.logPrintf(L_DEBUG, format, args...)
|
||||||
|
logger.Flush()
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//Domain struct
|
||||||
type Domain struct {
|
type Domain struct {
|
||||||
DomainName string `json:"domain_name"`
|
DomainName string `json:"domain_name"`
|
||||||
SubDomains []string `json:"sub_domains"`
|
SubDomains []string `json:"sub_domains"`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user