- request() now reads exactly the expected response length with read_exact instead of a single non-guaranteed fill_buf, fixing a latent bug where a response split across multiple TCP packets could be mistaken for malformed data; the per-method length checks are now redundant and were removed - sequence_number wraps explicitly via wrapping_add instead of relying on implicit (and debug-vs-release inconsistent) overflow behavior after 65536 requests - get_name validates UTF-8 strictly instead of silently lossy-decoding invalid bytes; on invalid data it now returns the FromUtf8Error itself (byte-level \0 trimming moved after the UTF-8 check), letting the caller choose to fail or fall back to a lossy rendering - removed the unused Default derive from Clock and Record - removed npm from the CI image (no JS/Node in this repo), fixed a typo in a CI step name - fixed the Cargo.toml license field to the actual SPDX identifier (AGPL-3.0-or-later, per the notice at the end of LICENSE) instead of the free-text "GNU AGPLv3.0" Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -45,11 +45,11 @@ If you want to read about this reverse engineering attempt, check out
|
||||
println!("No\tMchn\tEnNo\t\tName\t\tMode\tIOMd\tDateTime\t");
|
||||
while let Some(record) = record_stream.next().await {
|
||||
let record = record.unwrap();
|
||||
let name = r701
|
||||
.get_name(record.employee_id)
|
||||
.await
|
||||
.unwrap()
|
||||
.unwrap_or(format!("user #{}", record.employee_id));
|
||||
let name = match r701.get_name(record.employee_id).await.unwrap() {
|
||||
Some(Ok(name)) => name,
|
||||
Some(Err(error)) => String::from_utf8_lossy(error.as_bytes()).into_owned(),
|
||||
None => format!("user #{}", record.employee_id),
|
||||
};
|
||||
|
||||
println!(
|
||||
"{:0>6}\t{}\t{:0>9}\t{: <10}\t{}\t{}\t{}",
|
||||
|
||||
Reference in New Issue
Block a user