Make log methods accept any value

master
HimbeerserverDE 2021-09-03 17:34:20 +02:00
parent f00e88a14b
commit 3fe4176203
No known key found for this signature in database
GPG Key ID: 1A651504791E6A8B
4 changed files with 44 additions and 23 deletions

View File

@ -6,6 +6,7 @@ import (
"log"
"net"
"regexp"
"strings"
"sync"
"time"
@ -83,11 +84,21 @@ func (cc *clientConn) setState(state clientState) {
func (cc *clientConn) init() <-chan struct{} { return cc.initCh }
func (cc *clientConn) log(dir, msg string) {
func (cc *clientConn) log(dir string, v ...interface{}) {
if cc.name != "" {
log.Printf("{%s, %s} %s {←|⇶} %s", cc.name, cc.RemoteAddr(), dir, msg)
format := "{%s, %s} %s {←|⇶}"
format += strings.Repeat(" %v", len(v))
log.Printf(format, append([]interface{}{
cc.name,
cc.RemoteAddr(),
dir,
}, v...)...)
} else {
log.Printf("{%s} %s {←|⇶} %s", cc.RemoteAddr(), dir, msg)
format := "{%s} %s {←|⇶}"
format += strings.Repeat(" %v", len(v))
log.Printf(format, append([]interface{}{cc.RemoteAddr(), dir}, v...)...)
}
}
@ -117,7 +128,7 @@ func handleClt(cc *clientConn) {
break
}
cc.log("-->", err.Error())
cc.log("-->", err)
continue
}
@ -335,7 +346,6 @@ func handleClt(cc *clientConn) {
}
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.UnexpectedData})
select {
case <-cc.Closed():
case <-ack:

View File

@ -4,7 +4,6 @@ import (
"crypto/sha1"
"encoding/base64"
"errors"
"fmt"
"log"
"net"
"os"
@ -93,8 +92,11 @@ func (cc *contentConn) readDefaultTextures() error {
return nil
}
func (cc *contentConn) log(dir, msg string) {
log.Printf("{←|⇶} %s {%s} %s", dir, cc.name, msg)
func (cc *contentConn) log(dir string, v ...interface{}) {
format := "{←|⇶} %s {%s}"
format += strings.Repeat(" %v", len(v))
log.Printf(format, append([]interface{}{dir, cc.name}, v...)...)
}
func handleContent(cc *contentConn) {
@ -122,7 +124,7 @@ func handleContent(cc *contentConn) {
break
}
cc.log("-->", err.Error())
cc.log("-->", err)
continue
}
@ -150,7 +152,7 @@ func handleContent(cc *contentConn) {
case mt.SRP:
cc.auth.srpA, cc.auth.a, err = srp.InitiateHandshake()
if err != nil {
cc.log("-->", err.Error())
cc.log("-->", err)
break
}
@ -161,7 +163,7 @@ func handleContent(cc *contentConn) {
case mt.FirstSRP:
salt, verifier, err := srp.NewClient([]byte(cc.userName), []byte{})
if err != nil {
cc.log("-->", err.Error())
cc.log("-->", err)
break
}
@ -182,7 +184,7 @@ func handleContent(cc *contentConn) {
cc.auth.srpK, err = srp.CompleteHandshake(cc.auth.srpA, cc.auth.a, []byte(cc.userName), []byte{}, cmd.Salt, cmd.B)
if err != nil {
cc.log("-->", err.Error())
cc.log("-->", err)
break
}
@ -196,7 +198,7 @@ func handleContent(cc *contentConn) {
M: M,
})
case *mt.ToCltDisco:
cc.log("<--", fmt.Sprintf("deny access %+v", cmd))
cc.log("<--", "deny access", cmd)
case *mt.ToCltAcceptAuth:
cc.auth.method = 0
cc.SendCmd(&mt.ToSrvInit2{})
@ -212,7 +214,7 @@ func handleContent(cc *contentConn) {
case *mt.ToCltAnnounceMedia:
var filenames []string
RequestLoop:
RequestLoop:
for _, f := range cmd.Files {
filenames = append(filenames, f.Name)

2
hop.go
View File

@ -13,7 +13,7 @@ func (cc *clientConn) hop(serverName string) error {
if cc.server() == nil {
err := fmt.Errorf("hop: no server connection")
cc.log("<->", err.Error())
cc.log("<->", err)
return err
}

View File

@ -59,11 +59,20 @@ func (sc *serverConn) setState(state clientState) {
func (sc *serverConn) init() <-chan struct{} { return sc.initCh }
func (sc *serverConn) log(dir, msg string) {
func (sc *serverConn) log(dir string, v ...interface{}) {
if sc.client() != nil {
sc.client().log("", fmt.Sprintf("%s {%s} %s", dir, sc.name, msg))
format := "%s {%s}"
format += strings.Repeat(" %v", len(v))
sc.client().log("", fmt.Sprintf(format, append([]interface{}{
dir,
sc.name,
}, v...)...))
} else {
log.Printf("{←|⇶} %s {%s} %s", dir, sc.name, msg)
format := "{←|⇶} %s {%s}"
format += strings.Repeat(" %v", len(v))
log.Printf(format, append([]interface{}{dir, sc.name}, v...)...)
}
}
@ -112,7 +121,7 @@ func handleSrv(sc *serverConn) {
break
}
sc.log("<--", err.Error())
sc.log("<--", err)
continue
}
@ -140,7 +149,7 @@ func handleSrv(sc *serverConn) {
case mt.SRP:
sc.auth.srpA, sc.auth.a, err = srp.InitiateHandshake()
if err != nil {
sc.log("-->", err.Error())
sc.log("-->", err)
break
}
@ -151,7 +160,7 @@ func handleSrv(sc *serverConn) {
case mt.FirstSRP:
salt, verifier, err := srp.NewClient([]byte(sc.client().name), []byte{})
if err != nil {
sc.log("-->", err.Error())
sc.log("-->", err)
break
}
@ -172,7 +181,7 @@ func handleSrv(sc *serverConn) {
sc.auth.srpK, err = srp.CompleteHandshake(sc.auth.srpA, sc.auth.a, []byte(sc.client().name), []byte{}, cmd.Salt, cmd.B)
if err != nil {
sc.log("-->", err.Error())
sc.log("-->", err)
break
}
@ -186,7 +195,7 @@ func handleSrv(sc *serverConn) {
M: M,
})
case *mt.ToCltDisco:
sc.log("<--", fmt.Sprintf("deny access %+v", cmd))
sc.log("<--", "deny access", cmd)
ack, _ := sc.client().SendCmd(cmd)
select {