From 9eebdad3032191259f8ac0c8a96eac545f7eac62 Mon Sep 17 00:00:00 2001 From: Evan Cameron Date: Tue, 2 Mar 2021 04:11:07 -0500 Subject: [PATCH 1/4] proto: minor cleanups (#1386) --- crates/proto/src/op/message.rs | 38 ++++++++++------------ crates/proto/src/rr/domain/try_parse_ip.rs | 19 ++++------- crates/proto/src/tcp/tcp_stream.rs | 2 +- crates/proto/src/xfer/serial_message.rs | 20 +++++++++++- 4 files changed, 43 insertions(+), 36 deletions(-) diff --git a/crates/proto/src/op/message.rs b/crates/proto/src/op/message.rs index 539f3a95ca..b45d65f2ec 100644 --- a/crates/proto/src/op/message.rs +++ b/crates/proto/src/op/message.rs @@ -96,11 +96,12 @@ pub fn update_header_counts( assert!(counts.additional_count <= u16::max_value() as usize); let mut header = current_header.clone(); - header.set_query_count(counts.query_count as u16); - header.set_answer_count(counts.answer_count as u16); - header.set_name_server_count(counts.nameserver_count as u16); - header.set_additional_count(counts.additional_count as u16); - header.set_truncated(is_truncated); + header + .set_query_count(counts.query_count as u16) + .set_answer_count(counts.answer_count as u16) + .set_name_server_count(counts.nameserver_count as u16) + .set_additional_count(counts.additional_count as u16) + .set_truncated(is_truncated); header } @@ -141,29 +142,24 @@ impl Message { /// * `op_code` - operation of the request /// * `response_code` - the error code for the response pub fn error_msg(id: u16, op_code: OpCode, response_code: ResponseCode) -> Message { - let mut message: Message = Message::new(); - message.set_message_type(MessageType::Response); - message.set_id(id); - message.set_response_code(response_code); - message.set_op_code(op_code); + let mut message = Message::new(); + message + .set_message_type(MessageType::Response) + .set_id(id) + .set_response_code(response_code) + .set_op_code(op_code); message } /// Truncates a Message, this blindly removes all response fields and sets truncated to `true` pub fn truncate(&self) -> Self { - let mut truncated: Message = Message::new(); - truncated.set_id(self.id()); - truncated.set_message_type(self.message_type()); - truncated.set_op_code(self.op_code()); - truncated.set_authoritative(self.authoritative()); + let mut truncated = self.clone(); truncated.set_truncated(true); - truncated.set_recursion_desired(self.recursion_desired()); - truncated.set_recursion_available(self.recursion_available()); - truncated.set_response_code(self.response_code()); - if self.edns().is_some() { - truncated.set_edns(self.edns().unwrap().clone()); - } + // drops additional/answer/queries so len is 0 + truncated.take_additionals(); + truncated.take_answers(); + truncated.take_queries(); // TODO, perhaps just quickly add a few response records here? that we know would fit? truncated diff --git a/crates/proto/src/rr/domain/try_parse_ip.rs b/crates/proto/src/rr/domain/try_parse_ip.rs index 523ef0007e..10e6a47da4 100644 --- a/crates/proto/src/rr/domain/try_parse_ip.rs +++ b/crates/proto/src/rr/domain/try_parse_ip.rs @@ -6,7 +6,6 @@ // copied, modified, or distributed except according to those terms. use std::net::IpAddr; -use std::str::FromStr; use crate::rr::{Name, RData}; @@ -18,24 +17,18 @@ pub trait TryParseIp { impl TryParseIp for str { fn try_parse_ip(&self) -> Option { - match IpAddr::from_str(self) { - Ok(IpAddr::V4(ip4)) => Some(RData::A(ip4)), - Ok(IpAddr::V6(ip6)) => Some(RData::AAAA(ip6)), - Err(_) => None, + match self.parse::() { + Ok(IpAddr::V4(ip4)) => Ok(RData::A(ip4)), + Ok(IpAddr::V6(ip6)) => Ok(RData::AAAA(ip6)), + Err(err) => Err(err), } + .ok() } } -// impl<'a> TryParseIp for &'a str { -// fn try_parse_ip(&self) -> Option { -// TryParseIp::try_parse_ip(*self) -// } -// } - impl TryParseIp for String { fn try_parse_ip(&self) -> Option { - let this = self as &str; - this.try_parse_ip() + (&self[..]).try_parse_ip() } } diff --git a/crates/proto/src/tcp/tcp_stream.rs b/crates/proto/src/tcp/tcp_stream.rs index 0304dde9a5..d748a56547 100644 --- a/crates/proto/src/tcp/tcp_stream.rs +++ b/crates/proto/src/tcp/tcp_stream.rs @@ -287,7 +287,7 @@ impl Stream for TcpStream { // already handled above, here to make sure the poll() pops the next message Poll::Ready(Some(message)) => { // if there is no peer, this connection should die... - let (buffer, dst) = message.into_parts(); + let (buffer, dst) = message.into(); // This is an error if the destination is not our peer (this is TCP after all) // This will kill the connection... diff --git a/crates/proto/src/xfer/serial_message.rs b/crates/proto/src/xfer/serial_message.rs index b8665d27a7..6e31278329 100644 --- a/crates/proto/src/xfer/serial_message.rs +++ b/crates/proto/src/xfer/serial_message.rs @@ -35,7 +35,12 @@ impl SerialMessage { /// Unwrap the Bytes and address pub fn into_parts(self) -> (Vec, SocketAddr) { - (self.message, self.addr) + self.into() + } + + /// Build a `SerialMessage` from some bytes and an address + pub fn from_parts(message: Vec, addr: SocketAddr) -> Self { + (message, addr).into() } /// Deserializes the inner data into a Message @@ -43,3 +48,16 @@ impl SerialMessage { Message::from_vec(&self.message) } } + +impl From<(Vec, SocketAddr)> for SerialMessage { + fn from((message, addr): (Vec, SocketAddr)) -> Self { + SerialMessage { message, addr } + } +} + +impl From for (Vec, SocketAddr) { + fn from(msg: SerialMessage) -> Self { + let SerialMessage { message, addr } = msg; + (message, addr) + } +} From 981738123d83281c91362a30b379d9458be87f60 Mon Sep 17 00:00:00 2001 From: Ian Laidlaw Date: Tue, 23 Feb 2021 14:47:34 -0500 Subject: [PATCH 2/4] Take the current header truncated bit into account --- crates/proto/src/op/message.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/proto/src/op/message.rs b/crates/proto/src/op/message.rs index b45d65f2ec..31e5a8244d 100644 --- a/crates/proto/src/op/message.rs +++ b/crates/proto/src/op/message.rs @@ -797,7 +797,8 @@ where nameserver_count: nameserver_count.0, additional_count: additional_count.0, }; - let was_truncated = answer_count.1 || nameserver_count.1 || additional_count.1; + let was_truncated = + header.truncated() || answer_count.1 || nameserver_count.1 || additional_count.1; place.replace(encoder, update_header_counts(header, was_truncated, counts))?; Ok(()) From b2ea1fdaea625bd83c1737c6267348a1f5a1a50b Mon Sep 17 00:00:00 2001 From: Ian Laidlaw Date: Tue, 2 Mar 2021 16:30:56 -0500 Subject: [PATCH 3/4] Test that the truncate bit is encoded/decoded in the Message --- crates/proto/src/op/message.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/proto/src/op/message.rs b/crates/proto/src/op/message.rs index 31e5a8244d..2d8f625a67 100644 --- a/crates/proto/src/op/message.rs +++ b/crates/proto/src/op/message.rs @@ -560,7 +560,7 @@ impl Message { pub fn update_counts(&mut self) -> &mut Self { self.header = update_header_counts( &self.header, - false, + self.truncated(), HeaderCounts { query_count: self.queries.len(), answer_count: self.answers.len(), From a6eb537c691e1fdc28a85d213fccbc90e5f1822b Mon Sep 17 00:00:00 2001 From: Benjamin Fry Date: Fri, 5 Mar 2021 11:23:36 -0800 Subject: [PATCH 4/4] fix audit of pin-project-lite --- Cargo.lock | 171 +++++++++++++++++++---------------------------------- 1 file changed, 60 insertions(+), 111 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a4fbd25eeb..7ddb52531a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,9 +11,9 @@ dependencies = [ [[package]] name = "adler" -version = "0.2.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" @@ -176,9 +176,9 @@ checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" [[package]] name = "async-trait" -version = "0.1.42" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" +checksum = "d3340571769500ddef1e94b45055fabed6b08a881269b7570c830b8f32ef84ef" dependencies = [ "proc-macro2", "quote", @@ -354,14 +354,13 @@ checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" [[package]] name = "crossbeam-utils" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae8f328835f8f5a6ceb6a7842a7f2d0c03692adb5c889347235d59194731fe3" +checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" dependencies = [ "autocfg", "cfg-if 1.0.0", "lazy_static", - "loom", ] [[package]] @@ -477,9 +476,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9052a1a50244d8d5aa9bf55cbc2fb6f357c86cc52e46c62ed390a7180cf150" +checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1" dependencies = [ "futures-channel", "futures-core", @@ -492,9 +491,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846" +checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939" dependencies = [ "futures-core", "futures-sink", @@ -502,15 +501,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65" +checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" [[package]] name = "futures-executor" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e59fdc009a4b3096bf94f740a0f2424c082521f20a9b08c5c07c48d90fd9b9" +checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1" dependencies = [ "futures-core", "futures-task", @@ -520,9 +519,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500" +checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59" [[package]] name = "futures-lite" @@ -541,9 +540,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd" +checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7" dependencies = [ "proc-macro-hack", "proc-macro2", @@ -553,24 +552,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6" +checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3" [[package]] name = "futures-task" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86" -dependencies = [ - "once_cell", -] +checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80" [[package]] name = "futures-util" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b" +checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" dependencies = [ "futures-channel", "futures-core", @@ -586,19 +582,6 @@ dependencies = [ "slab", ] -[[package]] -name = "generator" -version = "0.6.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9fed24fd1e18827652b4d55652899a1e9da8e54d91624dc3437a5bc3a9f9a9c" -dependencies = [ - "cc", - "libc", - "log", - "rustversion", - "winapi", -] - [[package]] name = "getrandom" version = "0.2.2" @@ -631,9 +614,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b67e66362108efccd8ac053abafc8b7a8d86a37e6e48fc4f6f7485eb5e9e6a5" +checksum = "d832b01df74254fe364568d6ddc294443f61cbec82816b60904303af87efae78" dependencies = [ "bytes", "fnv", @@ -646,7 +629,6 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "tracing-futures", ] [[package]] @@ -769,9 +751,9 @@ checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] name = "js-sys" -version = "0.3.47" +version = "0.3.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cfb73131c35423a367daf8cbd24100af0d077668c8c2943f0e7dd775fef0f65" +checksum = "dc9f84f9b115ce7843d60706df1422a916680bfdfcbdb0447c5614ff9d7e4d78" dependencies = [ "wasm-bindgen", ] @@ -793,9 +775,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.86" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c" +checksum = "03b07a082330a35e43f63177cc01689da34fbffa0105e1246cf0311472cac73a" [[package]] name = "libsqlite3-sys" @@ -833,17 +815,6 @@ dependencies = [ "value-bag", ] -[[package]] -name = "loom" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d44c73b4636e497b4917eb21c33539efa3816741a2d3ff26c6316f1b529481a4" -dependencies = [ - "cfg-if 1.0.0", - "generator", - "scoped-tls", -] - [[package]] name = "lru-cache" version = "0.1.2" @@ -873,9 +844,9 @@ checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] name = "miniz_oxide" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ "adler", "autocfg", @@ -883,9 +854,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc250d6848c90d719ea2ce34546fb5df7af1d3fd189d10bf7bad80bfcebecd95" +checksum = "a5dede4e2065b3842b8b0af444119f3aa331cc7cc2dd20388bfb0f5d5a38823a" dependencies = [ "libc", "log", @@ -987,9 +958,9 @@ checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" [[package]] name = "once_cell" -version = "1.5.2" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" +checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" [[package]] name = "openssl" @@ -1083,9 +1054,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" +checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" [[package]] name = "pin-utils" @@ -1324,12 +1295,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "rustversion" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd" - [[package]] name = "schannel" version = "0.1.19" @@ -1340,12 +1305,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - [[package]] name = "scopeguard" version = "1.1.0" @@ -1364,9 +1323,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69" +checksum = "2dfd318104249865096c8da1dfabf09ddbb6d0330ea176812a62ec75e40c4166" dependencies = [ "bitflags", "core-foundation", @@ -1377,9 +1336,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b" +checksum = "dee48cdde5ed250b0d3252818f646e174ab414036edb884dde62d80a3ac6082d" dependencies = [ "core-foundation-sys", "libc", @@ -1466,9 +1425,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.60" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" +checksum = "ed22b90a0e734a23a7610f4283ac9e5acfb96cbb30dfefa540d66f866f1c09c5" dependencies = [ "proc-macro2", "quote", @@ -1656,9 +1615,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f77d3842f76ca899ff2dbcf231c5c65813dea431301d6eb686279c15c4464f12" +checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" dependencies = [ "cfg-if 1.0.0", "pin-project-lite", @@ -1674,16 +1633,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "trust-dns" version = "0.20.0" @@ -2044,9 +1993,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be" +checksum = "7ee1280240b7c461d6a0071313e08f34a60b0365f14260362e5a2b17d1d31aa7" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -2054,9 +2003,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc45447f0d4573f3d65720f636bbcc3dd6ce920ed704670118650bcd47764c7" +checksum = "5b7d8b6942b8bb3a9b0e73fc79b98095a27de6fa247615e59d096754a3bc2aa8" dependencies = [ "bumpalo", "lazy_static", @@ -2069,9 +2018,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3de431a2910c86679c34283a33f66f4e4abd7e0aec27b6669060148872aadf94" +checksum = "8e67a5806118af01f0d9045915676b22aaebecf4178ae7021bc171dab0b897ab" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -2081,9 +2030,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c" +checksum = "e5ac38da8ef716661f0f36c0d8320b89028efe10c7c0afde65baffb496ce0d3b" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2091,9 +2040,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385" +checksum = "cc053ec74d454df287b9374ee8abb36ffd5acb95ba87da3ba5b7d3fe20eb401e" dependencies = [ "proc-macro2", "quote", @@ -2104,15 +2053,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4945e4943ae02d15c13962b38a5b1e81eadd4b71214eee75af64a4d6a4fd64" +checksum = "7d6f8ec44822dd71f5f221a5847fb34acd9060535c1211b70a05844c0f6383b1" [[package]] name = "web-sys" -version = "0.3.47" +version = "0.3.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c40dc691fc48003eba817c38da7113c15698142da971298003cac3ef175680b3" +checksum = "ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b" dependencies = [ "js-sys", "wasm-bindgen",