mirror of
https://github.com/amitbet/vncproxy.git
synced 2025-09-23 10:28:54 +00:00
fixed passing server init resolution in proxy code
This commit is contained in:
@@ -36,3 +36,41 @@ func (cc *ClientUpdater) Consume(seg *common.RfbSegment) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type ServerUpdater struct {
|
||||
conn *server.ServerConn
|
||||
}
|
||||
|
||||
func (p *ServerUpdater) Consume(seg *common.RfbSegment) error {
|
||||
|
||||
logger.Debugf("WriteTo.Consume (ServerUpdater): got segment type=%s", seg.SegmentType)
|
||||
switch seg.SegmentType {
|
||||
case common.SegmentMessageSeparator:
|
||||
case common.SegmentRectSeparator:
|
||||
case common.SegmentServerInitMessage:
|
||||
serverInitMessage := seg.Message.(*common.ServerInit)
|
||||
p.conn.SetHeight(serverInitMessage.FBHeight)
|
||||
p.conn.SetWidth(serverInitMessage.FBWidth)
|
||||
p.conn.SetDesktopName(string(serverInitMessage.NameText))
|
||||
p.conn.SetPixelFormat(&serverInitMessage.PixelFormat)
|
||||
|
||||
case common.SegmentBytes:
|
||||
_, err := p.conn.Write(seg.Bytes)
|
||||
if err != nil {
|
||||
logger.Errorf("WriteTo.Consume (ServerUpdater SegmentBytes): problem writing to port: %s", err)
|
||||
}
|
||||
return err
|
||||
case common.SegmentFullyParsedClientMessage:
|
||||
|
||||
clientMsg := seg.Message.(common.ClientMessage)
|
||||
logger.Debugf("WriteTo.Consume (ServerUpdater): got ClientMessage type=%s", clientMsg.Type())
|
||||
err := clientMsg.Write(p.conn)
|
||||
if err != nil {
|
||||
logger.Errorf("WriteTo.Consume (ServerUpdater SegmentFullyParsedClientMessage): problem writing to port: %s", err)
|
||||
}
|
||||
return err
|
||||
default:
|
||||
//return errors.New("WriteTo.Consume: undefined RfbSegment type")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@@ -100,8 +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
|
||||
serverMsgRepeater := &listeners.WriteTo{sconn, "vnc-client-bound"}
|
||||
cconn.Listeners.AddListener(serverMsgRepeater)
|
||||
serverUpdater := &ServerUpdater{sconn}
|
||||
cconn.Listeners.AddListener(serverUpdater)
|
||||
|
||||
// // 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
|
||||
|
Reference in New Issue
Block a user