les: fix invalid delivery handling in retriever (#17727)
This commit is contained in:
		
							parent
							
								
									32c05e82a3
								
							
						
					
					
						commit
						ab13cd9924
					
				| @ -212,11 +212,18 @@ func (r *sentReq) stateRequesting() reqStateFn { | ||||
| 				// no need to go to stopped state because waiting() already returned false
 | ||||
| 				return nil | ||||
| 			} | ||||
| 		case rpSoftTimeout, rpDeliveredInvalid: | ||||
| 		case rpSoftTimeout: | ||||
| 			// last request timed out, try asking a new peer
 | ||||
| 			go r.tryRequest() | ||||
| 			r.lastReqQueued = true | ||||
| 			return r.stateRequesting | ||||
| 		case rpDeliveredInvalid: | ||||
| 			// if it was the last sent request (set to nil by update) then start a new one
 | ||||
| 			if !r.lastReqQueued && r.lastReqSentTo == nil { | ||||
| 				go r.tryRequest() | ||||
| 				r.lastReqQueued = true | ||||
| 			} | ||||
| 			return r.stateRequesting | ||||
| 		case rpDeliveredValid: | ||||
| 			r.stop(nil) | ||||
| 			return r.stateStopped | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user