@@ -20,7 +20,7 @@ impl<D: AppData, R: AppDataResponse, N: RaftNetwork<D>, S: RaftStorage<D, R>> Ra
2020 /// See `receiver implementation: AppendEntries RPC` in raft-essentials.md in this repo.
2121 #[ tracing:: instrument(
2222 level="trace" , skip( self , msg) ,
23- fields( term=msg. term, leader_id=msg. leader_id, prev_log_index=msg. prev_log_index , prev_log_term=msg. prev_log_term , leader_commit=msg. leader_commit) ,
23+ fields( term=msg. term, leader_id=msg. leader_id, prev_log_index=msg. prev_log . index , prev_log_term=msg. prev_log . term , leader_commit=msg. leader_commit) ,
2424 ) ]
2525 pub ( super ) async fn handle_append_entries_request (
2626 & mut self ,
@@ -61,9 +61,9 @@ impl<D: AppData, R: AppDataResponse, N: RaftNetwork<D>, S: RaftStorage<D, R>> Ra
6161
6262 // If RPC's `prev_log_index` is 0, or the RPC's previous log info matches the local
6363 // log info, then replication is g2g.
64- let msg_prev_index_is_min = msg. prev_log_index == u64:: min_value ( ) ;
64+ let msg_prev_index_is_min = msg. prev_log . index == u64:: min_value ( ) ;
6565 let msg_index_and_term_match =
66- ( msg. prev_log_index == self . last_log . index ) && ( msg. prev_log_term == self . last_log . term ) ;
66+ ( msg. prev_log . index == self . last_log . index ) && ( msg. prev_log . term == self . last_log . term ) ;
6767 if msg_prev_index_is_min || msg_index_and_term_match {
6868 self . append_log_entries ( & msg. entries ) . await ?;
6969 self . replicate_to_state_machine_if_needed ( msg. entries ) . await ;
@@ -85,7 +85,7 @@ impl<D: AppData, R: AppDataResponse, N: RaftNetwork<D>, S: RaftStorage<D, R>> Ra
8585 // result.
8686 let entries = self
8787 . storage
88- . get_log_entries ( msg. prev_log_index , msg. prev_log_index + 1 )
88+ . get_log_entries ( msg. prev_log . index , msg. prev_log . index + 1 )
8989 . await
9090 . map_err ( |err| self . map_fatal_storage_error ( err) ) ?;
9191 let target_entry = match entries. first ( ) {
@@ -108,7 +108,7 @@ impl<D: AppData, R: AppDataResponse, N: RaftNetwork<D>, S: RaftStorage<D, R>> Ra
108108 } ;
109109
110110 // The target entry was found. Compare its term with target term to ensure everything is consistent.
111- if target_entry. term == msg. prev_log_term {
111+ if target_entry. term == msg. prev_log . term {
112112 // We've found a point of agreement with the leader. If we have any logs present
113113 // with an index greater than this, then we must delete them per §5.3.
114114 if self . last_log . index > target_entry. index {
@@ -124,17 +124,17 @@ impl<D: AppData, R: AppDataResponse, N: RaftNetwork<D>, S: RaftStorage<D, R>> Ra
124124 // The target entry does not have the same term. Fetch the last 50 logs, and use the last
125125 // entry of that payload which is still in the target term for conflict optimization.
126126 else {
127- let start = if msg. prev_log_index >= 50 {
128- msg. prev_log_index - 50
127+ let start = if msg. prev_log . index >= 50 {
128+ msg. prev_log . index - 50
129129 } else {
130130 0
131131 } ;
132132 let old_entries = self
133133 . storage
134- . get_log_entries ( start, msg. prev_log_index )
134+ . get_log_entries ( start, msg. prev_log . index )
135135 . await
136136 . map_err ( |err| self . map_fatal_storage_error ( err) ) ?;
137- let opt = match old_entries. iter ( ) . find ( |entry| entry. term == msg. prev_log_term ) {
137+ let opt = match old_entries. iter ( ) . find ( |entry| entry. term == msg. prev_log . term ) {
138138 Some ( entry) => Some ( ConflictOpt {
139139 term : entry. term ,
140140 index : entry. index ,
0 commit comments