Mercurial > hg > index.cgi
diff docs/extension-pingpong.txt @ 10:36c4cda4b6c4
Add extension support with the PINGPONG extension
Add extension support. There are two ways to add extensions:
1. as a shared object which will be loaded with ext=<filename> as a
parameter to lwwire. See the lwwire_pingpong.c file for details.
2. By doing basically the same thing as a shared object but linking it into
the main binary and calling lwwire_register_extension() appropriately.
author | William Astle <lost@l-w.ca> |
---|---|
date | Sat, 30 Jul 2016 13:16:39 -0600 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/extension-pingpong.txt Sat Jul 30 13:16:39 2016 -0600 @@ -0,0 +1,53 @@ +This document describes an extension to the LWWire protocol which provides +a "PINGPONG" facility. It does not provide a generally useful service. +However, it does serve to show how a basic extension can be defined. It also +gives clients an option to enable an extension and use that to determine if +the server has reset or otherwise got into a mixed up state. For instance, +the client could negotiate the PINGPONG extension and then periodically send +a PINGPONG_PING operation. If it doesn't get the appropriate response, it +can then assume that the server has reset and it should re-initialize its +drivers. + +LWWire Protocol Extension +========================= + +This extension is called PINGPONG and is assigned extension number DF. It +defines the following operations in its extension space. + +00 PINGPONG_PING + +This does just what it's name implies. It does nothing except reply to the +client. + +Request: + +Octet Meaning +----- ------- +0-2 F3 DF 00 + +Response: + +Octet Meaning +----- ------- +0 42 + +The response will always be 42. + +01 PINGPONG_PONG + +This is exactly like PINGPONG_PING. It's provided for humour value. + +Request: + +Octet Meaning +----- ------- +0-2 F3 DF 01 + +Response: + +Octet Meaning +----- ------- +0 42 + +The response will always be 42. +