… | |
… | |
19 | Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | --> |
20 | --> |
21 | </head> |
21 | </head> |
22 | <body> |
22 | <body> |
23 | |
23 | |
24 | <h1>$Revision: 1.21 $</h1> |
24 | <h1>$Revision: 1.22 $</h1> |
25 | |
25 | |
26 | <h1>KGS Protocol Description</h1> |
26 | <h1>KGS Protocol Description</h1> |
27 | |
27 | |
28 | <p>This XML document describes the KGS protocol. It is also used |
28 | <p>This XML document describes the KGS protocol. It is also used |
29 | to automatically generate the perl parser for all the messages and |
29 | to automatically generate the perl parser for all the messages and |
… | |
… | |
48 | <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.xml?rev=HEAD&content-type=text/xml">here</a>, while |
48 | <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.xml?rev=HEAD&content-type=text/xml">here</a>, while |
49 | the HTML version of it can be found |
49 | the HTML version of it can be found |
50 | <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.html?rev=HEAD&content-type=text/html">here</a>. |
50 | <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/kgsueme/kgsueme/doc/protocol.html?rev=HEAD&content-type=text/html">here</a>. |
51 | </p> |
51 | </p> |
52 | |
52 | |
|
|
53 | <h2>Changes for protocol version 2.5.0</h2> |
|
|
54 | |
|
|
55 | <p>Sorry - I have little time to dissect the protocol, but as far |
|
|
56 | as I can see, there was no deeper need for the protocol change, as |
|
|
57 | the protocol itself didn't change in a significant way. The only |
|
|
58 | significant change was the addition of a linear congruence generator |
|
|
59 | that is xor'ed into the packet length. This makes the protocol less |
|
|
60 | robust and doesn't help much, so the only big effect of that is to make |
|
|
61 | it more difficult to analyze the protocol. It seems that wms prefers |
|
|
62 | to lock out users than to have a few people write their own client. I |
|
|
63 | didn't really expect that from him, but instead expected real changes |
|
|
64 | for the good, as he is claiming all the time.</p> |
|
|
65 | |
|
|
66 | <p>Well, that's what he wrote to me, after all, so he just did what he |
|
|
67 | said...</p> |
|
|
68 | |
|
|
69 | <p>Anything I know about changes in 2.5.x are reflected in this |
|
|
70 | document already.</p> |
|
|
71 | |
53 | <h2>Structure and conventions of this document and the protocol</h2> |
72 | <h2>Structure and conventions of this document and the protocol</h2> |
54 | |
73 | |
55 | <p>"Send" means messages send from the client to the server, while |
74 | <p>"Send" means messages send from the client to the server, while |
56 | "received" means messages send by the server to the client.</p> |
75 | "received" means messages send by the server to the client.</p> |
57 | |
76 | |
… | |
… | |
112 | <tr> |
131 | <tr> |
113 | <td>length</td> |
132 | <td>length</td> |
114 | <td>U16</td> |
133 | <td>U16</td> |
115 | <td> </td> |
134 | <td> </td> |
116 | <td> |
135 | <td> |
|
|
136 | |
117 | |
137 | |
118 | |
138 | |
119 | </td> |
139 | </td> |
120 | <td> |
140 | <td> |
121 | <b></b> |
141 | <b></b> |
… | |
… | |
143 | deal with fixed-point values (based on integer types) or fixed-length |
163 | deal with fixed-point values (based on integer types) or fixed-length |
144 | strings (either 7-bit-ascii or more limited (<code>A</code>), or UCS-2 |
164 | strings (either 7-bit-ascii or more limited (<code>A</code>), or UCS-2 |
145 | based (<code>S</code>)).</p> |
165 | based (<code>S</code>)).</p> |
146 | |
166 | |
147 | <h4>TYPE username</h4> |
167 | <h4>TYPE username</h4> |
148 | BASE TYPE A, LENGTH 12, MULTIPLIER <br /> |
168 | BASE TYPE A, LENGTH 10, MULTIPLIER <br /> |
149 | |
169 | |
150 | <p>The basic user or login name, used throughout the protocol |
170 | <p>The basic user or login name, used throughout the protocol |
151 | as a handle to the user.</p> |
171 | as a handle to the user.</p> |
152 | |
172 | |
153 | <h4>TYPE roomname</h4> |
173 | <h4>TYPE roomname</h4> |
… | |
… | |
446 | </td> |
466 | </td> |
447 | </tr> |
467 | </tr> |
448 | <tr> |
468 | <tr> |
449 | <td>ver_minor</td> |
469 | <td>ver_minor</td> |
450 | <td>U32</td> |
470 | <td>U32</td> |
451 | <td>4 </td> |
471 | <td>5 </td> |
452 | <td> |
472 | <td> |
453 | |
473 | |
454 | |
474 | |
455 | </td> |
475 | </td> |
456 | <td> |
476 | <td> |
… | |
… | |
459 | </td> |
479 | </td> |
460 | </tr> |
480 | </tr> |
461 | <tr> |
481 | <tr> |
462 | <td>ver_micro</td> |
482 | <td>ver_micro</td> |
463 | <td>U32</td> |
483 | <td>U32</td> |
464 | <td>67 </td> |
484 | <td>1 </td> |
465 | <td> |
485 | <td> |
466 | |
486 | |
467 | |
487 | |
468 | </td> |
488 | </td> |
469 | <td> |
489 | <td> |