File: rfb.py

package info (click to toggle)
python-dpkt 1.6%2Bsvn54-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, wheezy
  • size: 448 kB
  • ctags: 1,950
  • sloc: python: 5,136; makefile: 71
file content (81 lines) | stat: -rw-r--r-- 1,843 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# $Id: rfb.py 47 2008-05-27 02:10:00Z jon.oberheide $

"""Remote Framebuffer Protocol."""

import dpkt

# Remote Framebuffer Protocol
# http://www.realvnc.com/docs/rfbproto.pdf

# Client to Server Messages
CLIENT_SET_PIXEL_FORMAT           = 0
CLIENT_SET_ENCODINGS              = 2
CLIENT_FRAMEBUFFER_UPDATE_REQUEST = 3
CLIENT_KEY_EVENT                  = 4
CLIENT_POINTER_EVENT              = 5
CLIENT_CUT_TEXT                   = 6

# Server to Client Messages
SERVER_FRAMEBUFFER_UPDATE         = 0
SERVER_SET_COLOUR_MAP_ENTRIES     = 1
SERVER_BELL                       = 2
SERVER_CUT_TEXT                   = 3

class RFB(dpkt.Packet):
    __hdr__ = (
        ('type', 'B', 0),
        )

class SetPixelFormat(dpkt.Packet):
    __hdr__ = (
        ('pad', '3s', ''),
        ('pixel_fmt', '16s', '')
        )

class SetEncodings(dpkt.Packet):
    __hdr__ = (
        ('pad', '1s', ''),
        ('num_encodings', 'H', 0)
        )

class FramebufferUpdateRequest(dpkt.Packet):
    __hdr__ = (
        ('incremental', 'B', 0),
        ('x_position', 'H', 0),
        ('y_position', 'H', 0),
        ('width', 'H', 0),
        ('height', 'H', 0)
        )

class KeyEvent(dpkt.Packet):
    __hdr__ = (
        ('down_flag', 'B', 0),
        ('pad', '2s', ''),
        ('key', 'I', 0)
        )

class PointerEvent(dpkt.Packet):
    __hdr__ = (
        ('button_mask', 'B', 0),
        ('x_position', 'H', 0),
        ('y_position', 'H', 0)
        )

class FramebufferUpdate(dpkt.Packet):
    __hdr__ = (
        ('pad', '1s', ''),
        ('num_rects', 'H', 0)
        )

class SetColourMapEntries(dpkt.Packet):
    __hdr__ = (
        ('pad', '1s', ''),
        ('first_colour', 'H', 0),
        ('num_colours', 'H', 0)
        )

class CutText(dpkt.Packet):
    __hdr__ = (
        ('pad', '3s', ''),
        ('length', 'I', 0)
        )