mirror of
https://github.com/amitbet/vncproxy.git
synced 2025-08-23 23:58:34 +00:00
Fix gofmt alarm
This commit is contained in:
parent
931b08376b
commit
e464beb24e
@ -4,6 +4,7 @@ import (
|
||||
"io"
|
||||
)
|
||||
|
||||
// ClientMessageType ...
|
||||
type ClientMessageType uint8
|
||||
|
||||
//go:generate stringer -type=ClientMessageType
|
||||
@ -29,6 +30,7 @@ type Color struct {
|
||||
R, G, B uint16
|
||||
}
|
||||
|
||||
// ColorMap ...
|
||||
type ColorMap [256]Color
|
||||
|
||||
// ClientMessage is the interface
|
||||
@ -38,6 +40,7 @@ type ClientMessage interface {
|
||||
Write(io.Writer) error
|
||||
}
|
||||
|
||||
// String ...
|
||||
func (cmt ClientMessageType) String() string {
|
||||
switch cmt {
|
||||
case SetPixelFormatMsgType:
|
||||
|
@ -2,6 +2,7 @@ package common
|
||||
|
||||
import "io"
|
||||
|
||||
//IServerConn ...
|
||||
type IServerConn interface {
|
||||
io.ReadWriter
|
||||
//IServerConn() io.ReadWriter
|
||||
@ -23,6 +24,7 @@ type IServerConn interface {
|
||||
// Write([]byte) (int, error)
|
||||
}
|
||||
|
||||
//IClientConn ...
|
||||
type IClientConn interface {
|
||||
CurrentPixelFormat() *PixelFormat
|
||||
//CurrentColorMap() *ColorMap
|
||||
|
@ -11,7 +11,7 @@ import (
|
||||
type IEncoding interface {
|
||||
// The number that uniquely identifies this encoding type.
|
||||
Type() int32
|
||||
WriteTo(w io.Writer) (n int, err error)
|
||||
WriteTo(w io.Writer) (n int64, err error)
|
||||
// Read reads the contents of the encoded pixel data from the reader.
|
||||
// This should return a new IEncoding implementation that contains
|
||||
// the proper data.
|
||||
@ -143,6 +143,7 @@ func (enct EncodingType) String() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
//EncodingType ...
|
||||
const (
|
||||
EncRaw EncodingType = 0
|
||||
EncCopyRect EncodingType = 1
|
||||
@ -220,17 +221,18 @@ type PixelFormat struct {
|
||||
BlueShift uint8
|
||||
}
|
||||
|
||||
func (format *PixelFormat) WriteTo(w io.Writer) error {
|
||||
//WriteTo ...
|
||||
func (format *PixelFormat) WriteTo(w io.Writer) (int64, error) {
|
||||
var buf bytes.Buffer
|
||||
|
||||
// Byte 1
|
||||
if err := binary.Write(&buf, binary.BigEndian, format.BPP); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
// Byte 2
|
||||
if err := binary.Write(&buf, binary.BigEndian, format.Depth); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
var boolByte byte
|
||||
@ -242,7 +244,7 @@ func (format *PixelFormat) WriteTo(w io.Writer) error {
|
||||
|
||||
// Byte 3 (BigEndian)
|
||||
if err := binary.Write(&buf, binary.BigEndian, boolByte); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if format.TrueColor == 1 {
|
||||
@ -253,41 +255,42 @@ func (format *PixelFormat) WriteTo(w io.Writer) error {
|
||||
|
||||
// Byte 4 (TrueColor)
|
||||
if err := binary.Write(&buf, binary.BigEndian, boolByte); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
// If we have true color enabled then we have to fill in the rest of the
|
||||
// structure with the color values.
|
||||
if format.TrueColor == 1 {
|
||||
if err := binary.Write(&buf, binary.BigEndian, format.RedMax); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if err := binary.Write(&buf, binary.BigEndian, format.GreenMax); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if err := binary.Write(&buf, binary.BigEndian, format.BlueMax); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if err := binary.Write(&buf, binary.BigEndian, format.RedShift); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if err := binary.Write(&buf, binary.BigEndian, format.GreenShift); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if err := binary.Write(&buf, binary.BigEndian, format.BlueShift); err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
}
|
||||
|
||||
w.Write(buf.Bytes()[0:16])
|
||||
return nil
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
// NewPixelFormat ...
|
||||
func NewPixelFormat(bpp uint8) *PixelFormat {
|
||||
bigEndian := 0
|
||||
// rgbMax := uint16(math.Exp2(float64(bpp))) - 1
|
||||
|
@ -1,13 +1,16 @@
|
||||
package common
|
||||
|
||||
//MultiListener ...
|
||||
type MultiListener struct {
|
||||
listeners []SegmentConsumer
|
||||
}
|
||||
|
||||
//AddListener ...
|
||||
func (m *MultiListener) AddListener(listener SegmentConsumer) {
|
||||
m.listeners = append(m.listeners, listener)
|
||||
}
|
||||
|
||||
//Consume ...
|
||||
func (m *MultiListener) Consume(seg *RfbSegment) error {
|
||||
for _, li := range m.listeners {
|
||||
|
||||
|
@ -8,8 +8,10 @@ import (
|
||||
"vncproxy/logger"
|
||||
)
|
||||
|
||||
//TightMinToCompress ...
|
||||
var TightMinToCompress = 12
|
||||
|
||||
//SegmentType ...
|
||||
const (
|
||||
SegmentBytes SegmentType = iota
|
||||
SegmentMessageStart
|
||||
@ -21,6 +23,7 @@ const (
|
||||
SegmentMessageEnd
|
||||
)
|
||||
|
||||
//SegmentType ...
|
||||
type SegmentType int
|
||||
|
||||
func (seg SegmentType) String() string {
|
||||
@ -46,6 +49,7 @@ func (seg SegmentType) String() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
//RfbSegment ...
|
||||
type RfbSegment struct {
|
||||
Bytes []byte
|
||||
SegmentType SegmentType
|
||||
@ -53,49 +57,59 @@ type RfbSegment struct {
|
||||
Message interface{}
|
||||
}
|
||||
|
||||
//SegmentConsumer ...
|
||||
type SegmentConsumer interface {
|
||||
Consume(*RfbSegment) error
|
||||
}
|
||||
|
||||
//RfbReadHelper ...
|
||||
type RfbReadHelper struct {
|
||||
io.Reader
|
||||
Listeners *MultiListener
|
||||
savedBytes *bytes.Buffer
|
||||
}
|
||||
|
||||
//NewRfbReadHelper ...
|
||||
func NewRfbReadHelper(r io.Reader) *RfbReadHelper {
|
||||
return &RfbReadHelper{Reader: r, Listeners: &MultiListener{}}
|
||||
}
|
||||
|
||||
//StartByteCollection ...
|
||||
func (r *RfbReadHelper) StartByteCollection() {
|
||||
r.savedBytes = &bytes.Buffer{}
|
||||
}
|
||||
|
||||
//EndByteCollection ...
|
||||
func (r *RfbReadHelper) EndByteCollection() []byte {
|
||||
bts := r.savedBytes.Bytes()
|
||||
r.savedBytes = nil
|
||||
return bts
|
||||
}
|
||||
|
||||
//ReadDiscrete ...
|
||||
func (r *RfbReadHelper) ReadDiscrete(p []byte) (int, error) {
|
||||
return r.Read(p)
|
||||
}
|
||||
|
||||
//SendRectSeparator ...
|
||||
func (r *RfbReadHelper) SendRectSeparator(upcomingRectType int) error {
|
||||
seg := &RfbSegment{SegmentType: SegmentRectSeparator, UpcomingObjectType: upcomingRectType}
|
||||
return r.Listeners.Consume(seg)
|
||||
}
|
||||
|
||||
//SendMessageStart ...
|
||||
func (r *RfbReadHelper) SendMessageStart(upcomingMessageType ServerMessageType) error {
|
||||
seg := &RfbSegment{SegmentType: SegmentMessageStart, UpcomingObjectType: int(upcomingMessageType)}
|
||||
return r.Listeners.Consume(seg)
|
||||
}
|
||||
|
||||
//SendMessageEnd ...
|
||||
func (r *RfbReadHelper) SendMessageEnd(messageType ServerMessageType) error {
|
||||
seg := &RfbSegment{SegmentType: SegmentMessageEnd, UpcomingObjectType: int(messageType)}
|
||||
return r.Listeners.Consume(seg)
|
||||
}
|
||||
|
||||
//PublishBytes ...
|
||||
func (r *RfbReadHelper) PublishBytes(p []byte) error {
|
||||
seg := &RfbSegment{Bytes: p, SegmentType: SegmentBytes}
|
||||
return r.Listeners.Consume(seg)
|
||||
@ -135,6 +149,7 @@ func (r *RfbReadHelper) Read(p []byte) (n int, err error) {
|
||||
return readLen, err
|
||||
}
|
||||
|
||||
//ReadBytes ...
|
||||
func (r *RfbReadHelper) ReadBytes(count int) ([]byte, error) {
|
||||
buff := make([]byte, count)
|
||||
|
||||
@ -157,6 +172,7 @@ func (r *RfbReadHelper) ReadBytes(count int) ([]byte, error) {
|
||||
return buff, nil
|
||||
}
|
||||
|
||||
//ReadUint8 ...
|
||||
func (r *RfbReadHelper) ReadUint8() (uint8, error) {
|
||||
var myUint uint8
|
||||
if err := binary.Read(r, binary.BigEndian, &myUint); err != nil {
|
||||
@ -165,6 +181,8 @@ func (r *RfbReadHelper) ReadUint8() (uint8, error) {
|
||||
|
||||
return myUint, nil
|
||||
}
|
||||
|
||||
//ReadUint16 ...
|
||||
func (r *RfbReadHelper) ReadUint16() (uint16, error) {
|
||||
var myUint uint16
|
||||
if err := binary.Read(r, binary.BigEndian, &myUint); err != nil {
|
||||
@ -173,6 +191,8 @@ func (r *RfbReadHelper) ReadUint16() (uint16, error) {
|
||||
|
||||
return myUint, nil
|
||||
}
|
||||
|
||||
//ReadUint32 ...
|
||||
func (r *RfbReadHelper) ReadUint32() (uint32, error) {
|
||||
var myUint uint32
|
||||
if err := binary.Read(r, binary.BigEndian, &myUint); err != nil {
|
||||
@ -181,6 +201,8 @@ func (r *RfbReadHelper) ReadUint32() (uint32, error) {
|
||||
|
||||
return myUint, nil
|
||||
}
|
||||
|
||||
//ReadCompactLen ...
|
||||
func (r *RfbReadHelper) ReadCompactLen() (int, error) {
|
||||
var err error
|
||||
part, err := r.ReadUint8()
|
||||
@ -204,6 +226,7 @@ func (r *RfbReadHelper) ReadCompactLen() (int, error) {
|
||||
return int(len), err
|
||||
}
|
||||
|
||||
//ReadTightData ...
|
||||
func (r *RfbReadHelper) ReadTightData(dataSize int) ([]byte, error) {
|
||||
if int(dataSize) < TightMinToCompress {
|
||||
return r.ReadBytes(int(dataSize))
|
||||
|
@ -4,14 +4,18 @@ import (
|
||||
"io"
|
||||
)
|
||||
|
||||
//ServerMessage ...
|
||||
type ServerMessage interface {
|
||||
Type() uint8
|
||||
String() string
|
||||
CopyTo(r io.Reader, w io.Writer, c IClientConn) error
|
||||
Read(IClientConn, *RfbReadHelper) (ServerMessage, error)
|
||||
}
|
||||
|
||||
//ServerMessageType ...
|
||||
type ServerMessageType int8
|
||||
|
||||
//ServerMessageType ...
|
||||
const (
|
||||
FramebufferUpdate ServerMessageType = iota
|
||||
SetColourMapEntries
|
||||
@ -34,6 +38,7 @@ func (typ ServerMessageType) String() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
//ServerInit ...
|
||||
type ServerInit struct {
|
||||
FBWidth, FBHeight uint16
|
||||
PixelFormat PixelFormat
|
||||
|
@ -6,16 +6,20 @@ import (
|
||||
"vncproxy/common"
|
||||
)
|
||||
|
||||
//CopyRectEncoding ..
|
||||
type CopyRectEncoding struct {
|
||||
//Colors []Color
|
||||
copyRectSrcX uint16
|
||||
copyRectSrcY uint16
|
||||
}
|
||||
|
||||
//Type ..
|
||||
func (z *CopyRectEncoding) Type() int32 {
|
||||
return 1
|
||||
}
|
||||
func (z *CopyRectEncoding) WriteTo(w io.Writer) (n int, err error) {
|
||||
|
||||
//WriteTo ..
|
||||
func (z *CopyRectEncoding) WriteTo(w io.Writer) (n int64, err error) {
|
||||
binary.Write(w, binary.BigEndian, z.copyRectSrcX)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
|
@ -7,16 +7,22 @@ import (
|
||||
"vncproxy/common"
|
||||
)
|
||||
|
||||
// ZLibEncoding ..
|
||||
type ZLibEncoding struct {
|
||||
bytes []byte
|
||||
}
|
||||
|
||||
// Type ..
|
||||
func (z *ZLibEncoding) Type() int32 {
|
||||
return 6
|
||||
}
|
||||
|
||||
// WriteTo ...
|
||||
func (z *ZLibEncoding) WriteTo(w io.Writer) (n int, err error) {
|
||||
return w.Write(z.bytes)
|
||||
}
|
||||
|
||||
//Read ...
|
||||
func (z *ZLibEncoding) Read(pixelFmt *common.PixelFormat, rect *common.Rectangle, r *common.RfbReadHelper) (common.IEncoding, error) {
|
||||
//conn := common.RfbReadHelper{Reader:r}
|
||||
//conn := &DataSource{conn: conn.c, PixelFormat: conn.PixelFormat}
|
||||
|
Loading…
Reference in New Issue
Block a user