message: check REQUEST_SALT only when received at least 1 data chunk
diff: @@ -213,20 +213,23 @@ where
  // 2. TCP stream read() returns EOF before receiving the header, no checking required.
  //
  // poll_read_decrypted will wait until the first non-zero size data chunk.
  - let method = this.stream.method();
  - if method.salt_len() > 0 {
  - if let Some(request_nonce) = this.stream.received_request_nonce() {
  - if this.stream.sent_nonce() != request_nonce {
  + let (data_chunk_count, _) = this.stream.current_data_chunk_remaining();
  + if data_chunk_count > 0 {
  + // data_chunk_count > 0, so the reader received at least 1 data chunk.
  +
  + let sent_nonce = this.stream.sent_nonce();
  + let sent_nonce = if sent_nonce.is_empty() { None } else { Some(sent_nonce) };
  + if sent_nonce != this.stream.received_request_nonce() {
  return Err(io::Error::new(
  ErrorKind::Other,
  "received TCP response header with unmatched salt",
  ))
  .into();
  }
  - }
  - }
  *(this.reader_state) = ProxyClientStreamReadState::Established;
  + }
  +
  return Ok(()).into();
  }
  }
  