diff --git a/cmd/ck-server/ck-server.go b/cmd/ck-server/ck-server.go index 1bd1f62..2f39134 100644 --- a/cmd/ck-server/ck-server.go +++ b/cmd/ck-server/ck-server.go @@ -2,6 +2,7 @@ package main import ( "bytes" + "encoding/base64" "flag" "fmt" "io" @@ -99,6 +100,9 @@ func dispatchConnection(conn net.Conn, sta *server.State) { return nil } + // adminUID can use the server as normal with unlimited QoS credits. The adminUID is not + // added to the userinfo database. The distinction between going into the admin mode + // and normal proxy mode is that sessionID needs == 0 for admin mode if bytes.Equal(UID, sta.AdminUID) && sessionID == 0 { err = finishHandshake() if err != nil { @@ -155,14 +159,13 @@ func dispatchConnection(conn net.Conn, sta *server.State) { sesh.AddConnection(conn) return } else { - log.Printf("UID: %x\n", UID) + log.Printf("New session from UID:%v, sessionID:%v\n", base64.StdEncoding.EncodeToString(UID), sessionID) sesh.AddConnection(conn) for { newStream, err := sesh.AcceptStream() if err != nil { - log.Printf("Failed to get new stream: %v\n", err) if err == mux.ErrBrokenSession { - log.Printf("Session closed: %x:%v\n", UID, sessionID) + log.Printf("Session closed for UID:%v, sessionID:%v\n", base64.StdEncoding.EncodeToString(UID), sessionID) user.DelSession(sessionID) return } else { diff --git a/internal/multiplex/frameSorter.go b/internal/multiplex/frameSorter.go index 5857f44..610606e 100644 --- a/internal/multiplex/frameSorter.go +++ b/internal/multiplex/frameSorter.go @@ -2,7 +2,7 @@ package multiplex import ( "container/heap" - "log" + //"log" ) // The data is multiplexed through several TCP connections, therefore the @@ -66,8 +66,8 @@ func (s *Stream) recvNewFrame() { return case f = <-s.newFrameCh: } - if f == nil { - log.Println("nil frame") + if f == nil { // This shouldn't happen + //log.Println("nil frame") continue } diff --git a/internal/multiplex/session.go b/internal/multiplex/session.go index 649c7b8..c7a2409 100644 --- a/internal/multiplex/session.go +++ b/internal/multiplex/session.go @@ -2,7 +2,7 @@ package multiplex import ( "errors" - "log" + //"log" "net" "sync" "sync/atomic" @@ -74,7 +74,7 @@ func (sesh *Session) OpenStream() (*Stream, error) { sesh.streamsM.Lock() sesh.streams[id] = stream sesh.streamsM.Unlock() - log.Printf("Opening stream %v\n", id) + //log.Printf("Opening stream %v\n", id) return stream, nil } @@ -113,7 +113,7 @@ func (sesh *Session) getStream(id uint32, closingFrame bool) *Stream { stream = makeStream(id, sesh) sesh.streams[id] = stream sesh.acceptCh <- stream - log.Printf("Adding stream %v\n", id) + //log.Printf("Adding stream %v\n", id) sesh.streamsM.Unlock() return stream } diff --git a/internal/multiplex/stream.go b/internal/multiplex/stream.go index f4d7f6f..ae51975 100644 --- a/internal/multiplex/stream.go +++ b/internal/multiplex/stream.go @@ -2,7 +2,7 @@ package multiplex import ( "errors" - "log" + //"log" "math" prand "math/rand" "sync" @@ -68,7 +68,6 @@ func (stream *Stream) Read(buf []byte) (n int, err error) { return 0, ErrBrokenStream } if len(buf) < len(data) { - log.Println(len(data)) return 0, errors.New("buf too small") } copy(buf, data) @@ -113,7 +112,7 @@ func (stream *Stream) Write(in []byte) (n int, err error) { func (stream *Stream) passiveClose() { stream.heliumMask.Do(func() { close(stream.die) }) stream.session.delStream(stream.id) - log.Printf("%v passive closing\n", stream.id) + //log.Printf("%v passive closing\n", stream.id) } // active close. Close locally and tell the remote that this stream is being closed @@ -143,7 +142,7 @@ func (stream *Stream) Close() error { stream.session.sb.send(tlsRecord) stream.session.delStream(stream.id) - log.Printf("%v actively closed\n", stream.id) + //log.Printf("%v actively closed\n", stream.id) stream.writingM.Unlock() return nil } diff --git a/internal/multiplex/switchboard.go b/internal/multiplex/switchboard.go index ad823ca..ad1720a 100644 --- a/internal/multiplex/switchboard.go +++ b/internal/multiplex/switchboard.go @@ -132,7 +132,7 @@ func (sb *switchboard) deplex(ce *connEnclave) { n, err := sb.session.obfsedRead(ce.remoteConn, buf) sb.rxWait(n) if err != nil { - log.Println(err) + //log.Println(err) go ce.remoteConn.Close() sb.removeConn(ce) return diff --git a/internal/server/auth.go b/internal/server/auth.go index 7d5e36d..1c2b82c 100644 --- a/internal/server/auth.go +++ b/internal/server/auth.go @@ -52,7 +52,7 @@ func TouchStone(ch *ClientHello, sta *State) (isSS bool, UID []byte, sessionID u } UID, sessionID, err := decryptSessionTicket(sta.staticPv, ticket) if err != nil { - log.Printf("ts: %v\n", err) + log.Printf("Decryptin SessionTicket: %v\n", err) return false, nil, 0 } isSS = validateRandom(ch.random, UID, sta.Now().Unix()) diff --git a/internal/server/usermanager/controller.go b/internal/server/usermanager/controller.go index 62b423b..7a611ef 100644 --- a/internal/server/usermanager/controller.go +++ b/internal/server/usermanager/controller.go @@ -56,10 +56,10 @@ func (c *controller) HandleRequest(req []byte) (resp []byte, err error) { } plain, err := c.checkAndDecrypt(req) if err == ErrInvalidMac { - log.Printf("!!!CONTROL MESSAGE AND HMAC MISMATCH!!!\n raw request:\n%x\ndecrypted msg:\n%x", req, plain) + log.Printf("!!!CONTROL MESSAGE AND HMAC MISMATCH!!!\naUID:%x\nraw request:\n%x\ndecrypted msg:\n%x", c.adminUID, req, plain) return nil, err } else if err != nil { - log.Println(err) + log.Printf("aUID:%x\n,err:%v\n", c.adminUID, err) return c.respond([]byte(err.Error())), nil } diff --git a/internal/server/usermanager/user.go b/internal/server/usermanager/user.go index ea3018a..813b53a 100644 --- a/internal/server/usermanager/user.go +++ b/internal/server/usermanager/user.go @@ -2,7 +2,6 @@ package usermanager import ( "errors" - "log" "net" "sync" "sync/atomic" @@ -91,7 +90,6 @@ func (u *User) GetSession(sessionID uint32, obfs mux.Obfser, deobfs mux.Deobfser u.sessionsM.Unlock() return nil, false, errors.New("SessionsCap reached") } - log.Printf("Creating session %v\n", sessionID) sesh = mux.MakeSession(sessionID, u.valve, obfs, deobfs, obfsedRead) u.sessions[sessionID] = sesh u.sessionsM.Unlock()