…as it's really a misnomer for 'we are not going to make further requests and are not interested in a pack anymore'. It's used in V1 and V2 apparently to detect that we are done and allow the server to break out of a wait loop gracefully.
Showing the changes to git-protocol/src/fetch/function.rs (1 of 10 files). Show all
Unified · Split
| @@ -145,7 +145,11 @@ where · 144 unmodified lines | ||
| 145 | 145 | fetch.validate_argument_prefixes_or_panic(protocol_version, &capabilities, &[], &fetch_features); |
| 146 | 146 | |
| 147 | 147 | if next == Action::Cancel { |
| 148 | − transport.close().await?; | |
| 148 | + // An empty request marks the (early) end of the interaction. | |
| 149 | + transport | |
| 150 | + .request(client::WriteMode::Binary, client::MessageKind::Flush)? | |
| 151 | + .into_read() | |
| 152 | + .await?; | |
| 149 | 153 | return Ok(()); |
| 150 | 154 | } |
| 151 | 155 | |