mirror of
https://github.com/bolkedebruin/rdpgw.git
synced 2025-07-22 18:45:56 +02:00
Some better logging
This commit is contained in:
parent
5bdce6e47b
commit
330aab6015
1 changed files with 15 additions and 10 deletions
25
rdg.go
25
rdg.go
|
@ -188,7 +188,6 @@ func handleWebsocketProtocol(conn *websocket.Conn) {
|
||||||
log.Printf("Error read: %s", err)
|
log.Printf("Error read: %s", err)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
log.Printf("Message type: %d, message: %x", mt, msg)
|
|
||||||
|
|
||||||
// check for fragments
|
// check for fragments
|
||||||
var pt uint16
|
var pt uint16
|
||||||
|
@ -199,14 +198,14 @@ func handleWebsocketProtocol(conn *websocket.Conn) {
|
||||||
pt, sz, pkt, err = readHeader(msg)
|
pt, sz, pkt, err = readHeader(msg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// fragment received
|
// fragment received
|
||||||
log.Printf("Received non websocket fragment")
|
// log.Printf("Received non websocket fragment")
|
||||||
fragment = true
|
fragment = true
|
||||||
index = copy(buf, msg)
|
index = copy(buf, msg)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
index = 0
|
index = 0
|
||||||
} else {
|
} else {
|
||||||
log.Printf("Dealing with fragment")
|
//log.Printf("Dealing with fragment")
|
||||||
fragment = false
|
fragment = false
|
||||||
pt, sz, pkt, _ = readHeader(append(buf[:index], msg...))
|
pt, sz, pkt, _ = readHeader(append(buf[:index], msg...))
|
||||||
}
|
}
|
||||||
|
@ -229,11 +228,16 @@ func handleWebsocketProtocol(conn *websocket.Conn) {
|
||||||
conn.WriteMessage(mt, msg)
|
conn.WriteMessage(mt, msg)
|
||||||
case PKT_TYPE_CHANNEL_CREATE:
|
case PKT_TYPE_CHANNEL_CREATE:
|
||||||
server, port := readChannelCreateRequest(pkt)
|
server, port := readChannelCreateRequest(pkt)
|
||||||
remote, err = net.Dial("tcp", net.JoinHostPort(server, strconv.Itoa(int(port))))
|
log.Printf("Establishing connection to RDP server: %s on port %d", server, port)
|
||||||
|
remote, err = net.DialTimeout(
|
||||||
|
"tcp",
|
||||||
|
net.JoinHostPort(server, strconv.Itoa(int(port))),
|
||||||
|
time.Second * 15)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error connecting to %s, %d, %s", server, port, err)
|
log.Printf("Error connecting to %s, %d, %s", server, port, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
log.Printf("Connection established")
|
||||||
msg := createChannelCreateResponse()
|
msg := createChannelCreateResponse()
|
||||||
log.Printf("Create channel create response: %x", msg)
|
log.Printf("Create channel create response: %x", msg)
|
||||||
conn.WriteMessage(mt, msg)
|
conn.WriteMessage(mt, msg)
|
||||||
|
@ -325,19 +329,16 @@ func handleLegacyProtocol(w http.ResponseWriter, r *http.Request) {
|
||||||
pt, sz, pkt, err = readHeader(msg[:n])
|
pt, sz, pkt, err = readHeader(msg[:n])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// fragment received
|
// fragment received
|
||||||
log.Printf("Received non websocket fragment")
|
|
||||||
fragment = true
|
fragment = true
|
||||||
index = copy(buf, msg[:n])
|
index = copy(buf, msg[:n])
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
index = 0
|
index = 0
|
||||||
} else {
|
} else {
|
||||||
log.Printf("Dealing with fragment")
|
|
||||||
fragment = false
|
fragment = false
|
||||||
pt, sz, pkt, _ = readHeader(append(buf[:index], msg[:n]...))
|
pt, sz, pkt, _ = readHeader(append(buf[:index], msg[:n]...))
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("Scanned packet got packet type %x size %d", pt, sz)
|
|
||||||
switch pt {
|
switch pt {
|
||||||
case PKT_TYPE_HANDSHAKE_REQUEST:
|
case PKT_TYPE_HANDSHAKE_REQUEST:
|
||||||
major, minor, _, auth := readHandshake(pkt)
|
major, minor, _, auth := readHandshake(pkt)
|
||||||
|
@ -353,12 +354,16 @@ func handleLegacyProtocol(w http.ResponseWriter, r *http.Request) {
|
||||||
s.ConnOut.Write(msg)
|
s.ConnOut.Write(msg)
|
||||||
case PKT_TYPE_CHANNEL_CREATE:
|
case PKT_TYPE_CHANNEL_CREATE:
|
||||||
server, port := readChannelCreateRequest(pkt)
|
server, port := readChannelCreateRequest(pkt)
|
||||||
var err error
|
log.Printf("Establishing connection to RDP server: %s on port %d", server, port)
|
||||||
remote, err = net.Dial("tcp", net.JoinHostPort(server, strconv.Itoa(int(port))))
|
remote, err = net.DialTimeout(
|
||||||
|
"tcp",
|
||||||
|
net.JoinHostPort(server, strconv.Itoa(int(port))),
|
||||||
|
time.Second * 15)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error connecting to %s, %d, %s", server, port, err)
|
log.Printf("Error connecting to %s, %d, %s", server, port, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
log.Printf("Connection established")
|
||||||
msg := createChannelCreateResponse()
|
msg := createChannelCreateResponse()
|
||||||
s.ConnOut.Write(msg)
|
s.ConnOut.Write(msg)
|
||||||
|
|
||||||
|
@ -577,10 +582,10 @@ func handleWebsocketData(rdp net.Conn, mt int, conn *websocket.Conn) {
|
||||||
defer rdp.Close()
|
defer rdp.Close()
|
||||||
b1 := new(bytes.Buffer)
|
b1 := new(bytes.Buffer)
|
||||||
buf := make([]byte, 4086)
|
buf := make([]byte, 4086)
|
||||||
|
|
||||||
for {
|
for {
|
||||||
n, err := rdp.Read(buf)
|
n, err := rdp.Read(buf)
|
||||||
binary.Write(b1, binary.LittleEndian, uint16(n))
|
binary.Write(b1, binary.LittleEndian, uint16(n))
|
||||||
log.Printf("RDP SIZE: %d", n)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error reading from conn %s", err)
|
log.Printf("Error reading from conn %s", err)
|
||||||
break
|
break
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue