S>C 0x46 SID_NEWS_INFO
0x46
SID_NEWS_INFO
(does not include protocol header)
(UINT8) Number of entries
(UINT32) Last logon timestamp
(UINT32) Oldest news timestamp
(UINT32) Newest news timestamp
For each entry:
(UINT32) Timestamp
(STRING) News
Remarks
This packet contains news from Battle.net. Timestamps are in C/Unix format, biased for UTC.
Multiple separate news messages can be received. These should be treated the same as if one message was sent with several news entries.
If the 'Timestamp' field for an entry is zero, then that entry is the message of the day (and not a news entry in the normal respect).
Comments
When the official server sends this, it sends each entry in its own message with Number of entries
set to 1
and Newest news timestamp
set to the timestamp of the single entry that was sent in that message. Oldest news timestamp
seems to be the same across all entries, but even when requesting all of the news, an entry with that timestamp is not guaranteed to also be sent.
For the "MotD" entry (timestamp = 0) the Newest news timestamp
is neither 0 nor a value matching any of the other news entries that were sent. In my single sample it was newer than the newest actual news, but still a few years old. This MotD seems to be product-specific and can contain special characters. The last line seems to always be your last logon time, for example Last logon: Fri Sep 10 2:18 AM
(double spaces between date and time intentional, not sure if it's do to the single-digit hour or some other reason). If no other MotD is set for a product it'll just be this line.
On the official server, news entries are sent newest-to-oldest, and the MotD is sent at the end.