diff options
Diffstat (limited to '')
| -rw-r--r-- | docs/GAMES.md | 14 | ||||
| -rw-r--r-- | docs/TESTING.md | 12 |
2 files changed, 26 insertions, 0 deletions
diff --git a/docs/GAMES.md b/docs/GAMES.md index bd372b1..6f6d197 100644 --- a/docs/GAMES.md +++ b/docs/GAMES.md | |||
| @@ -182,6 +182,20 @@ database. | |||
| 182 | 182 | ||
| 183 | ## Wire protocol | 183 | ## Wire protocol |
| 184 | 184 | ||
| 185 | The first line after the TLS handshake is always the version handshake: | ||
| 186 | |||
| 187 | ``` | ||
| 188 | HELLO <version> | ||
| 189 | HELLO <version> latest=<version> url=<download-url> | ||
| 190 | ``` | ||
| 191 | |||
| 192 | Client and server must share MAJOR.MINOR; only the patch component may differ. | ||
| 193 | Until the handshake succeeds the server answers every other message with | ||
| 194 | `ERROR HELLO required`, and the client sends no credentials. A mismatch answers | ||
| 195 | `ERROR Version mismatch: ...` and the client disconnects. `latest` and `url` | ||
| 196 | drive the "newer version available" notice. The server reads `DOWNLOAD_URL` | ||
| 197 | from its environment, falling back to the public site. | ||
| 198 | |||
| 185 | Slots keeps its original exchange: | 199 | Slots keeps its original exchange: |
| 186 | 200 | ||
| 187 | ``` | 201 | ``` |
diff --git a/docs/TESTING.md b/docs/TESTING.md index 1a1d369..23e3a19 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md | |||
| @@ -180,6 +180,18 @@ Use an 80-column terminal because several output lines are width-sensitive. | |||
| 180 | one row with `winnings = 0`, `details.result = "abandoned"` and | 180 | one row with `winnings = 0`, `details.result = "abandoned"` and |
| 181 | `details.reason = "server_restart"`. | 181 | `details.reason = "server_restart"`. |
| 182 | 182 | ||
| 183 | ## Manual version handshake check | ||
| 184 | |||
| 185 | 1. Connect a client and server from the same release: the client connects and | ||
| 186 | the server log shows the `HELLO` exchange. | ||
| 187 | 2. Connect a 4.x client to a 3.x server (or the reverse): the client must print | ||
| 188 | `Version mismatch: client ..., server ...` and never reach the login prompt. | ||
| 189 | 3. With a deliberately skew-built server (PATCH differs) the connection is | ||
| 190 | accepted and, when the server's version is newer, the client prints | ||
| 191 | `A newer version is available`. | ||
| 192 | 4. Before the handshake, `openssl s_client -quiet -connect host:port` followed | ||
| 193 | by `PING` must answer `ERROR HELLO required`. | ||
| 194 | |||
| 183 | ## Manual identity / credential checklist | 195 | ## Manual identity / credential checklist |
| 184 | 196 | ||
| 185 | 1. Connect through one address, `register` and `login`. `hosts` shows the | 197 | 1. Connect through one address, `register` and `login`. `hosts` shows the |
