Feature #976 ยป 0038-Protocol-Add-sync-serial-packets.patch
client/options.c | ||
---|---|---|
* of non-initialized datas when calling the changed callback. */
|
||
static bool options_fully_initialized = FALSE;
|
||
static int sync_serial = 0;
|
||
static const struct strvec *get_mapimg_format_list(const struct option *poption);
|
||
/****************************************************************************
|
||
... | ... | |
* Do now override settings that are already saved to savegame \
|
||
* and now loaded. */ \
|
||
desired_settable_option_send(OPTION(poption)); \
|
||
dsend_packet_sync_serial(&client.conn, ++sync_serial); \
|
||
psoption->desired_sent = TRUE; \
|
||
} \
|
||
\
|
||
... | ... | |
if (!settable_options_hash_lookup(settable_options_hash,
|
||
option_name(poption), &desired)) {
|
||
/* No change explicitly desired. */
|
||
/* No change explicitly desired. */
|
||
return;
|
||
}
|
||
... | ... | |
if (psoption->is_visible
|
||
&& psoption->is_changeable) {
|
||
desired_settable_option_send(OPTION(poption));
|
||
dsend_packet_sync_serial(&client.conn, ++sync_serial);
|
||
}
|
||
}
|
||
}
|
client/packhand.c | ||
---|---|---|
city_report_dialog_update_city(pcity);
|
||
}
|
||
/**********************************************************************//**
|
||
Handle servers's reply to request to sync via packet serial number
|
||
**************************************************************************/
|
||
void handle_sync_serial_reply(int serial)
|
||
{
|
||
}
|
common/networking/packets.def | ||
---|---|---|
Max used id:
|
||
============
|
||
Max id: 516
|
||
Max id: 518
|
||
Packets are not ordered by their id, but by their category. New packet
|
||
with higher id may get added to existing category, and not to the end of file.
|
||
... | ... | |
STRING tag[MAX_LEN_NAME];
|
||
end
|
||
/************** Sync Requests **********************/
|
||
PACKET_SYNC_SERIAL = 517; cs, handle-via-fields, handle-per-conn, dsend
|
||
UINT32 serial;
|
||
end
|
||
PACKET_SYNC_SERIAL_REPLY = 518; sc, handle-via-fields, dsend
|
||
UINT32 serial;
|
||
end
|
||
/*************** Webclient specific packets ****************/
|
||
/* Use range 256:511 for these */
|
||
server/connecthand.c | ||
---|---|---|
connection_delegate_restore(pconn);
|
||
connection_close(pconn, reason);
|
||
}
|
||
/**********************************************************************//**
|
||
Handle client's request to sync via packet serial number.
|
||
**************************************************************************/
|
||
void handle_sync_serial(struct connection *conn, int serial)
|
||
{
|
||
dsend_packet_sync_serial_reply(conn, serial);
|
||
}
|
server/srv_main.c | ||
---|---|---|
&& type != PACKET_NATION_SELECT_REQ
|
||
&& type != PACKET_PLAYER_READY
|
||
&& type != PACKET_VOTE_SUBMIT
|
||
&& type != PACKET_RULESET_SELECT) {
|
||
&& type != PACKET_RULESET_SELECT
|
||
&& type != PACKET_SYNC_SERIAL) {
|
||
if (S_S_OVER == server_state()) {
|
||
/* This can happen by accident, so we don't want to print
|
||
* out lots of error messages. Ie, we use log_debug(). */
|