@@ -9,7 +9,8 @@ MQTT messages should, unless otherwise indicated, be set persistent so that
9
9
devices that reboot or lose their connection will display the right thing upon
10
10
reconnection. Most messages are designed to be idempotent, in the sense that
11
11
they carry timestamps of their veracity, so out-of-order delivery is partially
12
- mitigated.
12
+ mitigated. Timestamps are in UTC seconds which is easily obtained over the
13
+ network using (S)NTP.
13
14
14
15
Public, Centrally-set topics
15
16
############################
@@ -20,7 +21,7 @@ logins as well as our jail timers' users.
20
21
21
22
* ``config `` the string ``none `` or a whitespace-separated series of fields:
22
23
23
- * ``start_time `` -- POSIX seconds indicating start state
24
+ * ``start_time `` -- UTC seconds indicating start state
24
25
25
26
* ``setup_duration `` -- setup duration, in seconds
26
27
@@ -48,12 +49,12 @@ logins as well as our jail timers' users.
48
49
49
50
* any additional fields are to be ignored.
50
51
51
- * ``endtime `` -- a single number, denoting POSIX seconds of a
52
+ * ``endtime `` -- a single number, denoting UTC seconds of a
52
53
forced game end. If this is larger than the last ``starttime `` gotten
53
54
in a ``config `` message, then the game is considered over.
54
55
55
56
* ``flags `` -- a whitespace-separated text field. The first field is a
56
- POSIX -seconds timestamp; subsequent fields are either the string ``? `` or:
57
+ UTC -seconds timestamp; subsequent fields are either the string ``? `` or:
57
58
58
59
* ``red `` -- red team flag capture count (int, negatives OK)
59
60
@@ -62,7 +63,7 @@ logins as well as our jail timers' users.
62
63
* any additional fields are to be ignored.
63
64
64
65
* ``message `` -- Message to be displayed everywhere. This and
65
- all other ``message/# `` topics have a POSIX -seconds timestamp followed by
66
+ all other ``message/# `` topics have a UTC -seconds timestamp followed by
66
67
whitespace before the message body. These permit messages from previous
67
68
games to be suppressed, should they end up resident on the MQTT broker.
68
69
@@ -75,14 +76,14 @@ logins as well as our jail timers' users.
75
76
* ``message/jail/# `` -- Reserved for messages directed to a particular jail
76
77
glyph; at present, our devices do not subscribe to these endpoints.
77
78
78
- * ``messagereset `` -- A single number, denoting POSIX seconds
79
+ * ``messagereset `` -- A single number, denoting UTC seconds
79
80
before which messages should not be displayed. This is useful in the
80
81
event that the judges send out an incorrect message.
81
82
82
83
There are some additional public topics not under ``ctfws/game `` as they do not
83
84
pertain to a particular game, but rather to the world more generally:
84
85
85
- * ``ctfws/timesync `` -- a single number, denoting POSIX seconds at the time of
86
+ * ``ctfws/timesync `` -- a single number, denoting UTC seconds at the time of
86
87
its publication. The head judge's computer or the broker should publish to
87
88
this topic periodically (every minute?) to assist clients in measuring their
88
89
clock skew. Clients must ignore retained messages on this topic, as they are
@@ -98,7 +99,7 @@ Messages for here are composed of whitespace-separated fields:
98
99
99
100
* ``url `` -- a URL whence the document may be downloaded;
100
101
(spaces are to be URL-encoded, naturally enough).
101
- * ``time `` -- (integer) POSIX seconds at which the handbook was last modified
102
+ * ``time `` -- (integer) UTC seconds at which the handbook was last modified
102
103
* ``sha256 `` -- A hex encoding of the SHA256 of the handbook file.
103
104
104
105
The ``time `` and ``sha256 `` fields are to assist clients in suppressing fetches
0 commit comments