[rfbproto] [PATCH] Continuous updates pseudo-encoding

2011-11-11 Thread Pierre Ossman
Allows clients and servers to handshake for the continuous updates
extension without having to use the tight authentication method.

Signed-off-by: Pierre Ossman 
---

Index: rfbproto.rst
===
--- rfbproto.rst(revision 4793)
+++ rfbproto.rst(working copy)
@@ -2041,6 +2041,7 @@
 -307 `DesktopName Pseudo-encoding`_
 -308 `ExtendedDesktopSize Pseudo-encoding`_
 -309 `xvp Pseudo-encoding`_
+-313 `ContinuousUpdates Pseudo-encoding`_
 -412 to -512 `JPEG Fine-Grained Quality Level Pseudo-encoding`_
 -763 to -768 `JPEG Subsampling Level Pseudo-encoding`_
  ==
@@ -2069,7 +2070,6 @@
 -310OLIVE Call Control
 -311ClientRedirect
 -312Fence
--313ContinuousUpdates
 -523 to -528Car Connectivity
 0x574d5600 to 0x574d56ffVMWare
 0xc0a1e5ce  ExtendedClipboard
@@ -3164,6 +3164,16 @@
 *xvp-message-code* of *XVP_INIT*.  This informs the client that it may
 then subsequently send messages of type `xvp Client Message`_.
 
+ContinuousUpdates Pseudo-encoding
+-
+
+A client which requests the *ContinuousUpdates* pseudo-encoding is
+declaring that it wishes to use the `EnableContinuousUpdates`_
+extension. The server must send a `EndOfContinuousUpdates`_ message the
+first time it sees a ``SetEncodings`` message with the
+*ContinuousUpdates* pseudo-encoding, in order to inform the client that
+the extension is supported.
+
 JPEG Fine-Grained Quality Level Pseudo-encoding
 ---
 

-- 
Pierre OssmanOpenSource-based Thin Client Technology
System Developer Telephone: +46-13-21 46 00
Cendio ABWeb: http://www.cendio.com

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?


signature.asc
Description: PGP signature
--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
tigervnc-rfbproto mailing list
tigervnc-rfbproto@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-rfbproto


[rfbproto] [PATCH] Synchronisation fences

2011-11-11 Thread Pierre Ossman
This documents the fence messages that can be used to synchronise
other messages, and to measure network and processing delays between
the client and server.

Signed-off-by: Pierre Ossman 
---

Index: rfbproto.rst
===
--- rfbproto.rst(revision 4793)
+++ rfbproto.rst(working copy)
@@ -847,7 +847,7 @@
 127 VMWare
 128 Car Connectivity
 150 `EnableContinuousUpdates`_
-248 ClientFence
+248 `ClientFence`_
 249 OLIVE Call Control
 250 `xvp Client Message`_
 251 `SetDesktopSize`_
@@ -1193,6 +1193,75 @@
 however be honored, even if the area in such a request does not overlap
 the area specified for continuous updates.
 
+ClientFence
+---
+
+A client supporting the *Fence* extension sends this to request a
+synchronisation of the data stream.
+
+===  == ===
+No. of bytesType [Value]Description
+===  == ===
+1   ``U8``   248*message-type*
+3   *padding*
+4   ``U32`` *flags*
+1   ``U8``  *length*
+*length*``U8`` array*payload*
+===  == ===
+
+The *flags* byte informs the server if this is a new request, or a
+response to a server request sent earlier, as well as what kind of
+synchronisation that is desired. The server should not delay the
+response more than necessary, even if the synchronisation requirements
+would allow it.
+
+=== ===
+Bit Description
+=== ===
+0   **BlockBefore**
+1   **BlockAfter**
+2   **SyncNext**
+3-30Currently unused
+31  **Request**
+=== ===
+
+The server should respond with a `ServerFence`_ with the **Request**
+bit cleared, as well as clearing any bits it does not understand. The
+remaining bits should remain set in the response. This allows the
+client to determine which flags the server supports when new ones are
+defined in the future.
+
+**BlockBefore**
+All messages preceeding this one must have finished processing and
+taken effect before the response is sent.
+
+**BlockAfter**
+All messages following this one must not start processing until the
+response is sent.
+
+**SyncNext**
+The message following this one must be executed in an atomic manner
+so that anything preceeding the fence response **must not** be
+affected by the message, and anything following the fence response
+*must* be affected by the message. The primary purpose of this
+synchronisation is to allow safe usage of stream altering commands
+such as `SetPixelFormat`_.
+
+If **BlockAfter** is set then that synchronisation must be relaxed
+to allow processing of the following message. Any message after
+that will still be affected by both flags though.
+
+**Request**
+Indicates that this is a new request and that a response is
+expected. If this bit is cleared then this message is a response to
+an earlier request.
+
+The client can also include a chunk of data to differentiate between
+responses and to avoid keeping state. This data is specified using
+*length* and *payload*. The size of this data is limited to 64 bytes in
+order to minimise the disturbance to highly parallel clients and
+servers.
+
 xvp Client Message
 --
 
@@ -1723,7 +1792,7 @@
 128 Car Connectivity
 150 `EndOfContinuousUpdates`_
 173 [#off]_ ServerState
-248 ServerFence
+248 `ServerFence`_
 249 OLIVE Call Control
 250 `xvp Server Message`_
 252 tight
@@ -1856,6 +1925,25 @@
 1   ``U8``   150*message-type*
 ===  == ===
 
+ServerFence
+---
+
+A server supporting the *Fence* extension sends this to request a
+synchronisation of the data stream.
+
+===  == ===
+No. of bytesType [Value]Description
+===  == ===
+1   ``U8``   248*message-type*
+3   *padding*
+4   ``U32`` *flags*
+1   ``U8``  *length*
+*length*``U8`` array*payload*
+===  == ===
+
+The format and semantics