Fix LF check in protocol impl

next
Sayan Nandan 3 years ago
parent d57b0d98cf
commit 0e7340c965
No known key found for this signature in database
GPG Key ID: 8BC07A0A4D41DD52

@ -20,6 +20,7 @@ All changes in this project will be noted in this file.
- (skysh) Added error code output for new error codes which otherwise printed "Unknown error"
- (skysh) Fixed handling of EOF keystroke
- (skyd) Respect logging level for all terminal output
- (skyd) Fixed LF check in protocol impl
## Version 0.7.4

28
Cargo.lock generated

@ -51,9 +51,9 @@ dependencies = [
[[package]]
name = "async-trait"
version = "0.1.52"
version = "0.1.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3"
checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600"
dependencies = [
"proc-macro2",
"quote",
@ -449,9 +449,9 @@ dependencies = [
[[package]]
name = "fd-lock"
version = "3.0.4"
version = "3.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02ecad9808e0596f8956d14f7fa868f996290bd01c8d7329d6e5bc2bb76adf8f"
checksum = "46e245f4c8ec30c6415c56cb132c07e69e74f1942f6b4a4061da748b49f486ca"
dependencies = [
"cfg-if",
"rustix",
@ -613,9 +613,9 @@ dependencies = [
[[package]]
name = "io-lifetimes"
version = "0.5.3"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6"
checksum = "9448015e586b611e5d322f6703812bbca2f1e709d5773ecd38ddb4e3bb649504"
[[package]]
name = "itoa"
@ -995,9 +995,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.16"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4af2ec4714533fcdf07e886f17025ace8b997b9ce51204ee69b6da831c3da57"
checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
dependencies = [
"proc-macro2",
]
@ -1091,9 +1091,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.2.11"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
checksum = "8ae183fc1b06c149f0c1793e1eb447c8b04bfe46d48e9e48bfb8d2d7ed64ecf0"
dependencies = [
"bitflags",
]
@ -1128,9 +1128,9 @@ checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
[[package]]
name = "rustix"
version = "0.33.4"
version = "0.34.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef7ec6a44fba95d21fa522760c03c16ca5ee95cebb6e4ef579cab3e6d7ba6c06"
checksum = "cd3cc851a13d30a34cb747ba2a0c5101a4b2e8b1677a29b213ee465365ea495e"
dependencies = [
"bitflags",
"errno",
@ -1250,9 +1250,9 @@ dependencies = [
[[package]]
name = "signal-hook-mio"
version = "0.2.1"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29fd5867f1c4f2c5be079aee7a2adf1152ebb04a4bc4d341f504b7dece607ed4"
checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
dependencies = [
"libc",
"mio 0.7.14",

@ -380,15 +380,17 @@ impl<'a> Parser<'a> {
let end_ptr = self.data_end_ptr();
let mut len = 0usize;
unsafe {
while end_ptr > self.cursor {
if *self.cursor == b'\n' {
self.incr_cursor();
break;
}
while end_ptr > self.cursor && *self.cursor != b'\n' {
len += 1;
self.incr_cursor();
}
Ok(UnsafeSlice::new(start_ptr, len))
if self.will_cursor_give_linefeed()? {
let ret = Ok(UnsafeSlice::new(start_ptr, len));
self.incr_cursor();
ret
} else {
Err(ParseError::BadPacket)
}
}
}
}

@ -37,6 +37,13 @@ fn test_read_line() {
assert_eq!(parser.remaining(), 0);
}
#[test]
fn test_read_line_fail() {
let line = "abcdef".as_bytes();
let mut p = Parser::new(line);
assert_eq!(p.read_line().unwrap_err(), ParseError::NotEnough);
}
#[test]
fn test_read_until() {
let mybytes = "123456789".as_bytes();

@ -12,6 +12,6 @@ proc-macro = true
[dependencies]
# external deps
proc-macro2 = "1.0.36"
quote = "1.0.16"
quote = "1.0.17"
rand = "0.8.5"
syn = { version = "1.0.89", features = ["full"] }

Loading…
Cancel
Save