From cde205eb57be4db83b205df23103739e951da6a9 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 13 Jul 2021 18:38:59 +0100 Subject: [PATCH] errors: Provide cseq in transmitted piece update errors Signed-off-by: Ian Jackson --- src/updates.rs | 5 ++++- templates/script.ts | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/updates.rs b/src/updates.rs index 3ff0ad29..616ad8ef 100644 --- a/src/updates.rs +++ b/src/updates.rs @@ -263,6 +263,7 @@ type TransmitUpdateLogEntry<'u> = (&'u Timezone, &'u CommittedLogEntry); #[allow(non_camel_case_types)] #[derive(Debug,Serialize)] struct ErrorTransmitUpdateEntry_Piece<'u> { + cseq: Option, #[serde(flatten)] tue: TransmitUpdateEntry_Piece<'u>, } @@ -982,7 +983,8 @@ impl PreparedUpdate { ESVU::TokenRevoked => TUE::Error(ESVU::TokenRevoked), ESVU::PieceOpError { error, partially, ref error_msg, ref state } => { - let c = state.by_client.as_ref().map(|(_,c,_)| *c); + let c = state.by_client.as_ref().map(|(_,c,_ )| *c); + let cseq = state.by_client.as_ref().map(|(_,_,cseq)| *cseq); if c == None || c == Some(dest) { let tue = match pue_piece_to_tue_p(state, player) { Some(tue) => tue, @@ -993,6 +995,7 @@ impl PreparedUpdate { error, error_msg, partially, state: { ETUE_P { tue, + cseq, } }, } ) diff --git a/templates/script.ts b/templates/script.ts index a26f50f6..4b9c054f 100644 --- a/templates/script.ts +++ b/templates/script.ts @@ -1677,6 +1677,9 @@ type TransmitUpdateEntry_Piece = { piece: PieceId, op: Object, }; +type ErrorTransmitUpdateEntry_Piece = TransmitUpdateEntry_Piece & { + cseq: ClientSeq | null, +}; function handle_piece_update(j: TransmitUpdateEntry_Piece) { console.log('PIECE UPDATE ',j) @@ -1996,12 +1999,14 @@ messages.Error = function type PieceOpError = { error: string, - state: TransmitUpdateEntry_Piece, + error_msg: string, + state: ErrorTransmitUpdateEntry_Piece, }; update_error_handlers.PieceOpError = function (m: PieceOpError) { let piece = m.state.piece; + let cseq = m.state.cseq; let p = pieces[piece]; console.log('ERROR UPDATE PIECE ', m, p); if (p == null) return; -- 2.30.2