leftovers

This commit is contained in:
amit bezalel 2017-07-21 16:09:49 +03:00
parent 34528de10f
commit baf477d8d5
3 changed files with 34 additions and 10 deletions

View File

@ -77,6 +77,8 @@ func (enct EncodingType) String() string {
return "EncDesktopSizePseudo"
case EncLastRectPseudo:
return "EncLastRectPseudo"
case EncPointerPosPseudo:
return "EncPointerPosPseudo"
case EncCompressionLevel10:
return "EncCompressionLevel10"
case EncCompressionLevel9:
@ -167,6 +169,7 @@ const (
EncCursorPseudo EncodingType = -239
EncDesktopSizePseudo EncodingType = -223
EncLastRectPseudo EncodingType = -224
EncPointerPosPseudo EncodingType = -232
EncCompressionLevel10 EncodingType = -247
EncCompressionLevel9 EncodingType = -248
EncCompressionLevel8 EncodingType = -249

View File

@ -3,6 +3,7 @@ package common
import (
"bytes"
"encoding/binary"
"errors"
"io"
"vncproxy/logger"
)
@ -92,6 +93,8 @@ func (r *RfbReadHelper) PublishBytes(p []byte) error {
return r.Listeners.Consume(seg)
}
//var prevlen int
func (r *RfbReadHelper) Read(p []byte) (n int, err error) {
readLen, err := r.Reader.Read(p)
if err != nil {
@ -104,6 +107,15 @@ func (r *RfbReadHelper) Read(p []byte) (n int, err error) {
logger.Warn("RfbReadHelper.Read: failed to collect bytes in mem buffer:", err)
}
}
/////////
// modLen := (prevlen % 10000)
// if len(p) == modLen && modLen != prevlen {
// logger.Warn("RFBReadHelper debug!! plen=", prevlen, " len=", len(p))
// }
// prevlen = len(p)
/////////
logger.Debugf("RfbReadHelper.Read: publishing bytes, bytes:%v", p)
//write the bytes to the Listener for further processing
seg := &RfbSegment{Bytes: p, SegmentType: SegmentBytes}
@ -118,11 +130,21 @@ func (r *RfbReadHelper) Read(p []byte) (n int, err error) {
func (r *RfbReadHelper) ReadBytes(count int) ([]byte, error) {
buff := make([]byte, count)
_, err := io.ReadFull(r, buff)
lengthRead, err := io.ReadFull(r, buff)
//lengthRead, err := r.Read(buff)
if lengthRead != count {
logger.Errorf("RfbReadHelper.ReadBytes unable to read bytes: lengthRead=%d, countExpected=%d", lengthRead, count)
return nil, errors.New("RfbReadHelper.ReadBytes unable to read bytes")
}
//err := binary.Read(r, binary.BigEndian, &buff)
if err != nil {
//if err := binary.Read(d.conn, binary.BigEndian, &buff); err != nil {
return nil, err
}
return buff, nil
}
@ -178,7 +200,7 @@ func (r *RfbReadHelper) ReadTightData(dataSize int) ([]byte, error) {
return r.ReadBytes(int(dataSize))
}
zlibDataLen, err := r.ReadCompactLen()
logger.Debugf("compactlen=%d", zlibDataLen)
logger.Debugf("RfbReadHelper.ReadTightData: compactlen=%d", zlibDataLen)
if err != nil {
return nil, err
}

View File

@ -100,11 +100,11 @@ func (vp *VncProxy) newServerConnHandler(cfg *server.ServerConfig, sconn *server
// gets the bytes from the actual vnc server on the env (client part of the proxy)
// and writes them through the server socket to the vnc-client
serverUpdater := &ServerUpdater{sconn}
cconn.Listeners.AddListener(serverUpdater)
// serverUpdater := &ServerUpdater{sconn}
// cconn.Listeners.AddListener(serverUpdater)
// // serverMsgRepeater := &listeners.WriteTo{sconn, "vnc-client-bound"}
// // cconn.Listeners.AddListener(serverMsgRepeater)
serverMsgRepeater := &listeners.WriteTo{sconn, "vnc-client-bound"}
cconn.Listeners.AddListener(serverMsgRepeater)
// gets the messages from the server part (from vnc-client),
// and write through the client to the actual vnc-server
@ -165,13 +165,12 @@ func (vp *VncProxy) StartListening() {
// },
}
if vp.wsListeningUrl != "" {
go server.WsServe(vp.wsListeningUrl, cfg)
}
if vp.tcpListeningUrl != "" {
go server.TcpServe(vp.tcpListeningUrl, cfg)
}
if vp.wsListeningUrl != "" {
go server.WsServe(vp.wsListeningUrl, cfg)
}
// Process messages coming in on the ClientMessage channel.
for {
msg := <-chClient