ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/protocol.html
(Generate patch)

Comparing kgsueme/doc/protocol.html (file contents):
Revision 1.57 by pcg, Fri May 28 23:19:58 2004 UTC vs.
Revision 1.58 by pcg, Sat May 29 02:01:41 2004 UTC

20 Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21--> 21-->
22</head> 22</head>
23<body> 23<body>
24 24
25<h1>$Revision: 1.57 $</h1> 25<h1>$Revision: 1.58 $</h1>
26 26
27<h1>KGS Protocol Description</h1> 27<h1>KGS Protocol Description</h1>
28 28
29 <p>This XML document describes the KGS protocol. It is also used 29 <p>This XML document describes the KGS protocol. It is also used
30 to automatically generate the perl parser for all the messages and 30 to automatically generate the perl parser for all the messages and
237 <p>Password is a number calculated as follows (VERY insecure, basically 237 <p>Password is a number calculated as follows (VERY insecure, basically
238 plaintext!): <code>password = 0; for char in characters do password ← 238 plaintext!): <code>password = 0; for char in characters do password ←
239 password * 1055 + ascii_code (char)</code> 239 password * 1055 + ascii_code (char)</code>
240 </p> 240 </p>
241 241
242 <h4>TYPE clientid</h4>
243 BASE TYPE U16, LENGTH , MULTIPLIER 1<br />
244
245 <p>An id chosen by the client, usually starting at one, to identify
246 some handshakes initiated by the client, such as new games or memos.</p>
247
242<h2>Enumeration and set types used in the protocol.</h2> 248<h2>Enumeration and set types used in the protocol.</h2>
243 249
244 <h4>enum: GAMETYPE</h4> 250 <h4>enum: GAMETYPE</h4>
245 <p> 251 <p>
246 </p> 252 </p>
1368 </td> 1374 </td>
1369 </tr> 1375 </tr>
1370 </table> 1376 </table>
1371 1377
1372 <h4> 1378 <h4>
1373 <a name="C001f"></a>ORIGIN: CLIENT;
1374 MESSAGE: fetch_memos</h4>
1375 NUMERIC TYPE (hex): 001f<p>
1376 <p>Unclear. Fetch all outstanding memos? Replied with <a href="#S001f">memo(001f)</a>
1377 </p>
1378 </p>
1379 <table border="1" width="100%">
1380 <tr>
1381 <th width="10%">NAME</th>
1382 <th width="8%">TYPE</th>
1383 <th width="4%">VALUE</th>
1384 <th>DESCRIPTION</th>
1385 <th width="10%">GUARD</th>
1386 </tr>
1387 </table>
1388
1389 <h4>
1390 <a name="C0021"></a>ORIGIN: CLIENT; 1379 <a name="C0021"></a>ORIGIN: CLIENT;
1391 MESSAGE: req_pic</h4> 1380 MESSAGE: req_pic</h4>
1392 NUMERIC TYPE (hex): 0021<p> 1381 NUMERIC TYPE (hex): 0021<p>
1393 <p>Request a user picture from the server. Results in a <a href="#S0021">userpic(0021)</a> 1382 <p>Request a user picture from the server. Results in a <a href="#S0021">userpic(0021)</a>
1394 or a timeout.</p> 1383 or a timeout.</p>
1484 <b></b> 1473 <b></b>
1485   1474  
1486 </td> 1475 </td>
1487 </tr> 1476 </tr>
1488 <tr> 1477 <tr>
1478 <td>cid</td>
1479 <td>clientid</td>
1480 <td> </td>
1481 <td>
1482
1483  
1484 </td>
1485 <td>
1486 <b></b>
1487  
1488 </td>
1489 </tr>
1490 <tr>
1489 <td>msg</td> 1491 <td>msg</td>
1490 <td>STRING</td> 1492 <td>STRING</td>
1491 <td> </td> 1493 <td> </td>
1492 <td> 1494 <td>
1493 1495
1495 </td> 1497 </td>
1496 <td> 1498 <td>
1497 <b></b> 1499 <b></b>
1498   1500  
1499 </td> 1501 </td>
1502 </tr>
1503 </table>
1504
1505 <h4>
1506 <a name="C0024"></a>ORIGIN: CLIENT;
1507 MESSAGE: delete_memos</h4>
1508 NUMERIC TYPE (hex): 0024<p>
1509 <p>Unconditionally deletes all memos.</p>
1510 </p>
1511 <table border="1" width="100%">
1512 <tr>
1513 <th width="10%">NAME</th>
1514 <th width="8%">TYPE</th>
1515 <th width="4%">VALUE</th>
1516 <th>DESCRIPTION</th>
1517 <th width="10%">GUARD</th>
1500 </tr> 1518 </tr>
1501 </table> 1519 </table>
1502 1520
1503 <h4> 1521 <h4>
1504 <a name="C0100"></a>ORIGIN: CLIENT; 1522 <a name="C0100"></a>ORIGIN: CLIENT;
2000 <b></b> 2018 <b></b>
2001   2019  
2002 </td> 2020 </td>
2003 </tr> 2021 </tr>
2004 <tr> 2022 <tr>
2005 <td>id</td> 2023 <td>cid</td>
2006 <td>U16</td> 2024 <td>clientid</td>
2007 <td> </td> 2025 <td> </td>
2008 <td> 2026 <td>
2009 2027
2010   2028  
2011 </td> 2029 </td>
2768   2786  
2769 </td> 2787 </td>
2770 </tr> 2788 </tr>
2771 <tr> 2789 <tr>
2772 <td>private</td> 2790 <td>private</td>
2773 <td>U8</td> 2791 <td>flag</td>
2774 <td> </td> 2792 <td> </td>
2775 <td> 2793 <td>
2776 2794
2777   2795  
2778 </td> 2796 </td>
2912   2930  
2913 </td> 2931 </td>
2914 </tr> 2932 </tr>
2915 <tr> 2933 <tr>
2916 <td>quiet</td> 2934 <td>quiet</td>
2917 <td>U8</td> 2935 <td>flag</td>
2918 <td> </td> 2936 <td> </td>
2919 <td> 2937 <td>
2920 2938
2921   2939  
2922 </td> 2940 </td>
2998 <th>DESCRIPTION</th> 3016 <th>DESCRIPTION</th>
2999 <th width="10%">GUARD</th> 3017 <th width="10%">GUARD</th>
3000 </tr> 3018 </tr>
3001 <tr> 3019 <tr>
3002 <td>gametype</td> 3020 <td>gametype</td>
3003 <td>U32</td> 3021 <td>U16</td>
3004 <td> </td> 3022 <td> </td>
3005 <td> 3023 <td>
3006 3024
3007   3025  
3008 </td> 3026 </td>
3090 </td> 3108 </td>
3091 </tr> 3109 </tr>
3092 <tr> 3110 <tr>
3093 <td>can_stones</td> 3111 <td>can_stones</td>
3094 <td>U32</td> 3112 <td>U32</td>
3113 <td> </td>
3114 <td>
3115
3116  
3117 </td>
3118 <td>
3119 <b></b>
3120  
3121 </td>
3122 </tr>
3123 <tr>
3124 <td>notes</td>
3125 <td>STRING</td>
3095 <td> </td> 3126 <td> </td>
3096 <td> 3127 <td>
3097 3128
3098   3129  
3099 </td> 3130 </td>
3160 <tr> 3191 <tr>
3161 <td>rules</td> 3192 <td>rules</td>
3162 <td>rules</td> 3193 <td>rules</td>
3163 <td> </td> 3194 <td> </td>
3164 <td> 3195 <td>
3165 Maybe the rules" are in TREE format. I forgot.
3166 3196
3167   3197  
3168 </td> 3198 </td>
3169 <td> 3199 <td>
3170 <b></b> 3200 <b></b>
4969 </td> 4999 </td>
4970 </tr> 5000 </tr>
4971 </table> 5001 </table>
4972 5002
4973 <h4> 5003 <h4>
4974 <a name="S001f"></a>ORIGIN: SERVER;
4975 MESSAGE: memo</h4>
4976 NUMERIC TYPE (hex): 001f
4977 (possibly in response to
4978 <a href="#C001f">fetch_memos(001f)</a>
4979 )
4980 <p>
4981 Unclear. "Leave Message"?
4982 6 strings following.
4983 </p>
4984 <table border="1" width="100%">
4985 <tr>
4986 <th width="10%">NAME</th>
4987 <th width="8%">TYPE</th>
4988 <th width="4%">VALUE</th>
4989 <th>DESCRIPTION</th>
4990 <th width="10%">GUARD</th>
4991 </tr>
4992 <tr>
4993 <td>s1</td>
4994 <td>ZSTRING</td>
4995 <td> </td>
4996 <td>
4997
4998  
4999 </td>
5000 <td>
5001 <b></b>
5002  
5003 </td>
5004 </tr>
5005 <tr>
5006 <td>s2</td>
5007 <td>ZSTRING</td>
5008 <td> </td>
5009 <td>
5010
5011  
5012 </td>
5013 <td>
5014 <b></b>
5015  
5016 </td>
5017 </tr>
5018 <tr>
5019 <td>s3</td>
5020 <td>ZSTRING</td>
5021 <td> </td>
5022 <td>
5023
5024  
5025 </td>
5026 <td>
5027 <b></b>
5028  
5029 </td>
5030 </tr>
5031 <tr>
5032 <td>s4</td>
5033 <td>ZSTRING</td>
5034 <td> </td>
5035 <td>
5036
5037  
5038 </td>
5039 <td>
5040 <b></b>
5041  
5042 </td>
5043 </tr>
5044 <tr>
5045 <td>s5</td>
5046 <td>ZSTRING</td>
5047 <td> </td>
5048 <td>
5049
5050  
5051 </td>
5052 <td>
5053 <b></b>
5054  
5055 </td>
5056 </tr>
5057 <tr>
5058 <td>s6</td>
5059 <td>ZSTRING</td>
5060 <td> </td>
5061 <td>
5062
5063  
5064 </td>
5065 <td>
5066 <b></b>
5067  
5068 </td>
5069 </tr>
5070 </table>
5071
5072 <h4>
5073 <a name="S0021"></a>ORIGIN: SERVER; 5004 <a name="S0021"></a>ORIGIN: SERVER;
5074 MESSAGE: userpic</h4> 5005 MESSAGE: userpic</h4>
5075 NUMERIC TYPE (hex): 0021 5006 NUMERIC TYPE (hex): 0021
5076 (possibly in response to 5007 (possibly in response to
5077 <a href="#C0021">req_pic(0021)</a> 5008 <a href="#C0021">req_pic(0021)</a>
5101 </td> 5032 </td>
5102 </tr> 5033 </tr>
5103 <tr> 5034 <tr>
5104 <td>data</td> 5035 <td>data</td>
5105 <td>DATA</td> 5036 <td>DATA</td>
5037 <td> </td>
5038 <td>
5039
5040  
5041 </td>
5042 <td>
5043 <b></b>
5044  
5045 </td>
5046 </tr>
5047 </table>
5048
5049 <h4>
5050 <a name="S0025"></a>ORIGIN: SERVER;
5051 MESSAGE: memo_error</h4>
5052 NUMERIC TYPE (hex): 0025<p>
5053 <p>Account unknown.</p>
5054 </p>
5055 <table border="1" width="100%">
5056 <tr>
5057 <th width="10%">NAME</th>
5058 <th width="8%">TYPE</th>
5059 <th width="4%">VALUE</th>
5060 <th>DESCRIPTION</th>
5061 <th width="10%">GUARD</th>
5062 </tr>
5063 <tr>
5064 <td>name</td>
5065 <td>username</td>
5066 <td> </td>
5067 <td>
5068
5069  
5070 </td>
5071 <td>
5072 <b></b>
5073  
5074 </td>
5075 </tr>
5076 <tr>
5077 <td>cid</td>
5078 <td>clientid</td>
5079 <td> </td>
5080 <td>
5081
5082  
5083 </td>
5084 <td>
5085 <b></b>
5086  
5087 </td>
5088 </tr>
5089 <tr>
5090 <td>message</td>
5091 <td>CONSTANT</td>
5092 <td>memo send failed: account already exists </td>
5093 <td>
5094
5095  
5096 </td>
5097 <td>
5098 <b></b>
5099  
5100 </td>
5101 </tr>
5102 <tr>
5103 <td>subtype</td>
5104 <td>CONSTANT</td>
5105 <td>25 </td>
5106 <td>
5107
5108  
5109 </td>
5110 <td>
5111 <b></b>
5112  
5113 </td>
5114 </tr>
5115 </table>
5116
5117 <h4>
5118 <a name="S0026"></a>ORIGIN: SERVER;
5119 MESSAGE: memo_error</h4>
5120 NUMERIC TYPE (hex): 0026<p>
5121 <p>Just a guess.</p>
5122 </p>
5123 <table border="1" width="100%">
5124 <tr>
5125 <th width="10%">NAME</th>
5126 <th width="8%">TYPE</th>
5127 <th width="4%">VALUE</th>
5128 <th>DESCRIPTION</th>
5129 <th width="10%">GUARD</th>
5130 </tr>
5131 <tr>
5132 <td>name</td>
5133 <td>username</td>
5134 <td> </td>
5135 <td>
5136
5137  
5138 </td>
5139 <td>
5140 <b></b>
5141  
5142 </td>
5143 </tr>
5144 <tr>
5145 <td>cid</td>
5146 <td>clientid</td>
5147 <td> </td>
5148 <td>
5149
5150  
5151 </td>
5152 <td>
5153 <b></b>
5154  
5155 </td>
5156 </tr>
5157 <tr>
5158 <td>message</td>
5159 <td>CONSTANT</td>
5160 <td>memo send failed: error 26 </td>
5161 <td>
5162
5163  
5164 </td>
5165 <td>
5166 <b></b>
5167  
5168 </td>
5169 </tr>
5170 <tr>
5171 <td>subtype</td>
5172 <td>CONSTANT</td>
5173 <td>26 </td>
5174 <td>
5175
5176  
5177 </td>
5178 <td>
5179 <b></b>
5180  
5181 </td>
5182 </tr>
5183 </table>
5184
5185 <h4>
5186 <a name="S0027"></a>ORIGIN: SERVER;
5187 MESSAGE: memo_error</h4>
5188 NUMERIC TYPE (hex): 0027<p>
5189 <p>User is currently online, please use chat.</p>
5190 </p>
5191 <table border="1" width="100%">
5192 <tr>
5193 <th width="10%">NAME</th>
5194 <th width="8%">TYPE</th>
5195 <th width="4%">VALUE</th>
5196 <th>DESCRIPTION</th>
5197 <th width="10%">GUARD</th>
5198 </tr>
5199 <tr>
5200 <td>name</td>
5201 <td>username</td>
5202 <td> </td>
5203 <td>
5204
5205  
5206 </td>
5207 <td>
5208 <b></b>
5209  
5210 </td>
5211 </tr>
5212 <tr>
5213 <td>cid</td>
5214 <td>clientid</td>
5215 <td> </td>
5216 <td>
5217
5218  
5219 </td>
5220 <td>
5221 <b></b>
5222  
5223 </td>
5224 </tr>
5225 <tr>
5226 <td>message</td>
5227 <td>CONSTANT</td>
5228 <td>memo send failed: user is online, use chat </td>
5229 <td>
5230
5231  
5232 </td>
5233 <td>
5234 <b></b>
5235  
5236 </td>
5237 </tr>
5238 <tr>
5239 <td>subtype</td>
5240 <td>CONSTANT</td>
5241 <td>27 </td>
5242 <td>
5243
5244  
5245 </td>
5246 <td>
5247 <b></b>
5248  
5249 </td>
5250 </tr>
5251 </table>
5252
5253 <h4>
5254 <a name="S0028"></a>ORIGIN: SERVER;
5255 MESSAGE: memo_error</h4>
5256 NUMERIC TYPE (hex): 0028<p>
5257 <p>Just a guess.</p>
5258 </p>
5259 <table border="1" width="100%">
5260 <tr>
5261 <th width="10%">NAME</th>
5262 <th width="8%">TYPE</th>
5263 <th width="4%">VALUE</th>
5264 <th>DESCRIPTION</th>
5265 <th width="10%">GUARD</th>
5266 </tr>
5267 <tr>
5268 <td>name</td>
5269 <td>username</td>
5270 <td> </td>
5271 <td>
5272
5273  
5274 </td>
5275 <td>
5276 <b></b>
5277  
5278 </td>
5279 </tr>
5280 <tr>
5281 <td>cid</td>
5282 <td>clientid</td>
5283 <td> </td>
5284 <td>
5285
5286  
5287 </td>
5288 <td>
5289 <b></b>
5290  
5291 </td>
5292 </tr>
5293 <tr>
5294 <td>message</td>
5295 <td>CONSTANT</td>
5296 <td>memo send failed: error 28 </td>
5297 <td>
5298
5299  
5300 </td>
5301 <td>
5302 <b></b>
5303  
5304 </td>
5305 </tr>
5306 <tr>
5307 <td>subtype</td>
5308 <td>CONSTANT</td>
5309 <td>28 </td>
5310 <td>
5311
5312  
5313 </td>
5314 <td>
5315 <b></b>
5316  
5317 </td>
5318 </tr>
5319 </table>
5320
5321 <h4>
5322 <a name="S0029"></a>ORIGIN: SERVER;
5323 MESSAGE: memo</h4>
5324 NUMERIC TYPE (hex): 0029<p>
5325 </p>
5326 <table border="1" width="100%">
5327 <tr>
5328 <th width="10%">NAME</th>
5329 <th width="8%">TYPE</th>
5330 <th width="4%">VALUE</th>
5331 <th>DESCRIPTION</th>
5332 <th width="10%">GUARD</th>
5333 </tr>
5334 <tr>
5335 <td>name</td>
5336 <td>username</td>
5337 <td> </td>
5338 <td>
5339
5340  
5341 </td>
5342 <td>
5343 <b></b>
5344  
5345 </td>
5346 </tr>
5347 <tr>
5348 <td>time</td>
5349 <td>timestamp</td>
5350 <td> </td>
5351 <td>
5352
5353  
5354 </td>
5355 <td>
5356 <b></b>
5357  
5358 </td>
5359 </tr>
5360 <tr>
5361 <td>message</td>
5362 <td>ZSTRING</td>
5363 <td> </td>
5364 <td>
5365
5366  
5367 </td>
5368 <td>
5369 <b></b>
5370  
5371 </td>
5372 </tr>
5373 </table>
5374
5375 <h4>
5376 <a name="S002a"></a>ORIGIN: SERVER;
5377 MESSAGE: memo_sent</h4>
5378 NUMERIC TYPE (hex): 002a<p>
5379 <p>The memo was sent successfully</p>
5380 </p>
5381 <table border="1" width="100%">
5382 <tr>
5383 <th width="10%">NAME</th>
5384 <th width="8%">TYPE</th>
5385 <th width="4%">VALUE</th>
5386 <th>DESCRIPTION</th>
5387 <th width="10%">GUARD</th>
5388 </tr>
5389 <tr>
5390 <td>name</td>
5391 <td>username</td>
5392 <td> </td>
5393 <td>
5394
5395  
5396 </td>
5397 <td>
5398 <b></b>
5399  
5400 </td>
5401 </tr>
5402 <tr>
5403 <td>cid</td>
5404 <td>clientid</td>
5106 <td> </td> 5405 <td> </td>
5107 <td> 5406 <td>
5108 5407
5109   5408  
5110 </td> 5409 </td>
5203 </td> 5502 </td>
5204 </tr> 5503 </tr>
5205 </table> 5504 </table>
5206 5505
5207 <h4> 5506 <h4>
5507 <a name="S030c"></a>ORIGIN: SERVER;
5508 MESSAGE: unknown_030c</h4>
5509 NUMERIC TYPE (hex): 030c<p>
5510 <p>Not the slightest... No payload, either.</p>
5511 </p>
5512 <table border="1" width="100%">
5513 <tr>
5514 <th width="10%">NAME</th>
5515 <th width="8%">TYPE</th>
5516 <th width="4%">VALUE</th>
5517 <th>DESCRIPTION</th>
5518 <th width="10%">GUARD</th>
5519 </tr>
5520 </table>
5521
5522 <h4>
5208 <a name="S0310"></a>ORIGIN: SERVER; 5523 <a name="S0310"></a>ORIGIN: SERVER;
5209 MESSAGE: priv_room</h4> 5524 MESSAGE: priv_room</h4>
5210 NUMERIC TYPE (hex): 0310<p> 5525 NUMERIC TYPE (hex): 0310<p>
5211 "permission denied" when joining a room 5526 "permission denied" when joining a room
5212 </p> 5527 </p>
6754 <b></b> 7069 <b></b>
6755   7070  
6756 </td> 7071 </td>
6757 </tr> 7072 </tr>
6758 <tr> 7073 <tr>
6759 <td>id</td> 7074 <td>cid</td>
6760 <td>U16</td> 7075 <td>clientid</td>
6761 <td> </td> 7076 <td> </td>
6762 <td> 7077 <td>
6763 7078
6764   7079  
6765 </td> 7080 </td>
6827   7142  
6828 </td> 7143 </td>
6829 </tr> 7144 </tr>
6830 <tr> 7145 <tr>
6831 <td>quiet</td> 7146 <td>quiet</td>
6832 <td>U8</td> 7147 <td>flag</td>
6833 <td> </td> 7148 <td> </td>
6834 <td> 7149 <td>
6835 7150
6836   7151  
6837 </td> 7152 </td>

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines