mirror of https://github.com/jetkvm/kvm.git
add logs
This commit is contained in:
parent
eacc2a6621
commit
f7beae3b9b
11
hidrpc.go
11
hidrpc.go
|
@ -2,6 +2,7 @@ package kvm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/jetkvm/kvm/internal/hidrpc"
|
"github.com/jetkvm/kvm/internal/hidrpc"
|
||||||
"github.com/jetkvm/kvm/internal/usbgadget"
|
"github.com/jetkvm/kvm/internal/usbgadget"
|
||||||
|
@ -19,10 +20,15 @@ func onHidMessage(data []byte, session *Session) {
|
||||||
)
|
)
|
||||||
|
|
||||||
if err := hidrpc.Unmarshal(data, &message); err != nil {
|
if err := hidrpc.Unmarshal(data, &message); err != nil {
|
||||||
logger.Warn().Err(err).Msg("failed to unmarshal HID RPC message")
|
logger.Warn().Err(err).Bytes("data", data).Msg("failed to unmarshal HID RPC message")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scopedLogger := hidRpcLogger.With().Str("payload", message.String()).Logger()
|
||||||
|
|
||||||
|
scopedLogger.Debug().Msg("received HID RPC message from the queue")
|
||||||
|
startTime := time.Now()
|
||||||
|
|
||||||
switch message.Type() {
|
switch message.Type() {
|
||||||
case hidrpc.TypeHandshake:
|
case hidrpc.TypeHandshake:
|
||||||
message, err := hidrpc.NewHandshakeMessage().Marshal()
|
message, err := hidrpc.NewHandshakeMessage().Marshal()
|
||||||
|
@ -62,6 +68,9 @@ func onHidMessage(data []byte, session *Session) {
|
||||||
if rpcErr != nil {
|
if rpcErr != nil {
|
||||||
logger.Warn().Err(rpcErr).Msg("failed to handle HID RPC message")
|
logger.Warn().Err(rpcErr).Msg("failed to handle HID RPC message")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
duration := time.Since(startTime)
|
||||||
|
scopedLogger.Debug().Dur("duration", duration).Msg("handled HID RPC message")
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleHidRpcKeyboardInput(message hidrpc.Message) (*usbgadget.KeysDownState, error) {
|
func handleHidRpcKeyboardInput(message hidrpc.Message) (*usbgadget.KeysDownState, error) {
|
||||||
|
|
|
@ -19,6 +19,23 @@ func (m *Message) Type() MessageType {
|
||||||
return m.t
|
return m.t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Message) String() string {
|
||||||
|
switch m.t {
|
||||||
|
case TypeHandshake:
|
||||||
|
return "Handshake"
|
||||||
|
case TypeKeypressReport:
|
||||||
|
return fmt.Sprintf("KeypressReport{Key: %d, Press: %v}", m.d[0], m.d[1] == uint8(1))
|
||||||
|
case TypeKeyboardReport:
|
||||||
|
return fmt.Sprintf("KeyboardReport{Modifier: %d, Keys: %v}", m.d[0], m.d[1:])
|
||||||
|
case TypePointerReport:
|
||||||
|
return fmt.Sprintf("PointerReport{X: %d, Y: %d, Button: %d}", m.d[0], m.d[1], m.d[2])
|
||||||
|
case TypeMouseReport:
|
||||||
|
return fmt.Sprintf("MouseReport{DX: %d, DY: %d, Button: %d}", m.d[0], m.d[1], m.d[2])
|
||||||
|
default:
|
||||||
|
return fmt.Sprintf("Unknown{Type: %d, Data: %v}", m.t, m.d)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// KeypressReport ..
|
// KeypressReport ..
|
||||||
type KeypressReport struct {
|
type KeypressReport struct {
|
||||||
Key byte
|
Key byte
|
||||||
|
|
1
log.go
1
log.go
|
@ -19,6 +19,7 @@ var (
|
||||||
nbdLogger = logging.GetSubsystemLogger("nbd")
|
nbdLogger = logging.GetSubsystemLogger("nbd")
|
||||||
timesyncLogger = logging.GetSubsystemLogger("timesync")
|
timesyncLogger = logging.GetSubsystemLogger("timesync")
|
||||||
jsonRpcLogger = logging.GetSubsystemLogger("jsonrpc")
|
jsonRpcLogger = logging.GetSubsystemLogger("jsonrpc")
|
||||||
|
hidRpcLogger = logging.GetSubsystemLogger("hidrpc")
|
||||||
watchdogLogger = logging.GetSubsystemLogger("watchdog")
|
watchdogLogger = logging.GetSubsystemLogger("watchdog")
|
||||||
websecureLogger = logging.GetSubsystemLogger("websecure")
|
websecureLogger = logging.GetSubsystemLogger("websecure")
|
||||||
otaLogger = logging.GetSubsystemLogger("ota")
|
otaLogger = logging.GetSubsystemLogger("ota")
|
||||||
|
|
|
@ -148,6 +148,8 @@ func newSession(config SessionConfig) (*Session, error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scopedLogger.Debug().Str("data", string(msg.Data)).Msg("received data in HID RPC message handler")
|
||||||
|
|
||||||
// Enqueue to ensure ordered processing
|
// Enqueue to ensure ordered processing
|
||||||
session.hidQueue <- msg
|
session.hidQueue <- msg
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue