cleanup
This commit is contained in:
parent
25ace50d45
commit
5df46aecae
263
Cargo.lock
generated
263
Cargo.lock
generated
@ -63,9 +63,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "0.7.19"
|
||||
version = "0.7.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
|
||||
checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
@ -218,13 +218,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "async-io"
|
||||
version = "1.10.0"
|
||||
version = "1.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e8121296a9f05be7f34aa4196b1747243b3b62e048bb7906f644f3fbfc490cf7"
|
||||
checksum = "6fe557ebe0829511ddff4ad3011d159c0e6f144e05e3e8c3ab5095a131900a7b"
|
||||
dependencies = [
|
||||
"async-lock",
|
||||
"autocfg",
|
||||
"concurrent-queue 1.2.4",
|
||||
"concurrent-queue 2.0.0",
|
||||
"futures-lite",
|
||||
"libc",
|
||||
"log",
|
||||
@ -399,7 +399,7 @@ dependencies = [
|
||||
"futures-util",
|
||||
"pin-project 1.0.12",
|
||||
"rustc_version",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"wasm-bindgen-futures",
|
||||
]
|
||||
|
||||
@ -467,7 +467,7 @@ dependencies = [
|
||||
"async-trait",
|
||||
"axum-core",
|
||||
"bitflags",
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"futures-util",
|
||||
"http",
|
||||
"http-body",
|
||||
@ -480,7 +480,7 @@ dependencies = [
|
||||
"pin-project-lite 0.2.9",
|
||||
"serde",
|
||||
"sync_wrapper",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tower",
|
||||
"tower-http",
|
||||
"tower-layer",
|
||||
@ -494,7 +494,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "37e5939e02c56fecd5c017c37df4238c0a839fa76b7f97acdd7efb804fd181cc"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"futures-util",
|
||||
"http",
|
||||
"http-body",
|
||||
@ -513,7 +513,7 @@ dependencies = [
|
||||
"cc",
|
||||
"cfg-if 1.0.0",
|
||||
"libc",
|
||||
"miniz_oxide",
|
||||
"miniz_oxide 0.5.4",
|
||||
"object",
|
||||
"rustc-demangle",
|
||||
]
|
||||
@ -569,9 +569,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "blake3"
|
||||
version = "1.3.1"
|
||||
version = "1.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f"
|
||||
checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef"
|
||||
dependencies = [
|
||||
"arrayref",
|
||||
"arrayvec",
|
||||
@ -627,16 +627,16 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
|
||||
|
||||
[[package]]
|
||||
name = "blocking"
|
||||
version = "1.2.0"
|
||||
version = "1.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc"
|
||||
checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8"
|
||||
dependencies = [
|
||||
"async-channel",
|
||||
"async-lock",
|
||||
"async-task",
|
||||
"atomic-waker",
|
||||
"fastrand",
|
||||
"futures-lite",
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -707,9 +707,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
|
||||
|
||||
[[package]]
|
||||
name = "bytes"
|
||||
version = "1.2.1"
|
||||
version = "1.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"
|
||||
checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c"
|
||||
|
||||
[[package]]
|
||||
name = "cache-padded"
|
||||
@ -719,9 +719,9 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
|
||||
|
||||
[[package]]
|
||||
name = "capnp"
|
||||
version = "0.15.0"
|
||||
version = "0.15.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0e850735c543306805e2ba8ee0a9632b0f62bb05872a8be2e2674e9903a1c048"
|
||||
checksum = "f4929d71efc55aa42759793d853ecdfa6bb034419d22884e3e9871f0f593ac8d"
|
||||
|
||||
[[package]]
|
||||
name = "capnp-futures"
|
||||
@ -761,9 +761,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.76"
|
||||
version = "1.0.77"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f"
|
||||
checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
|
||||
|
||||
[[package]]
|
||||
name = "cesu8"
|
||||
@ -830,15 +830,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "chrono"
|
||||
version = "0.4.22"
|
||||
version = "0.4.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
|
||||
checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
|
||||
dependencies = [
|
||||
"iana-time-zone",
|
||||
"js-sys",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
"time 0.1.44",
|
||||
"time 0.1.45",
|
||||
"wasm-bindgen",
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
@ -962,7 +962,7 @@ version = "4.6.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"memchr",
|
||||
]
|
||||
|
||||
@ -1031,7 +1031,7 @@ dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thread_local",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-stream",
|
||||
"tonic",
|
||||
"tracing",
|
||||
@ -1061,9 +1061,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "constant_time_eq"
|
||||
version = "0.1.5"
|
||||
version = "0.2.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
|
||||
checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279"
|
||||
|
||||
[[package]]
|
||||
name = "core-foundation"
|
||||
@ -1174,22 +1174,22 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-epoch"
|
||||
version = "0.9.11"
|
||||
version = "0.9.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"
|
||||
checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"cfg-if 1.0.0",
|
||||
"crossbeam-utils",
|
||||
"memoffset",
|
||||
"memoffset 0.7.1",
|
||||
"scopeguard",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-utils"
|
||||
version = "0.8.12"
|
||||
version = "0.8.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
|
||||
checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
]
|
||||
@ -1285,7 +1285,7 @@ dependencies = [
|
||||
"libc",
|
||||
"log",
|
||||
"signal-hook",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"unicode-segmentation",
|
||||
"unicode-width",
|
||||
]
|
||||
@ -1330,7 +1330,7 @@ dependencies = [
|
||||
"num",
|
||||
"owning_ref",
|
||||
"time 0.3.17",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"toml",
|
||||
"unicode-segmentation",
|
||||
"unicode-width",
|
||||
@ -1374,9 +1374,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cxx"
|
||||
version = "1.0.81"
|
||||
version = "1.0.82"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "97abf9f0eca9e52b7f81b945524e76710e6cb2366aead23b7d4fbf72e281f888"
|
||||
checksum = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cxxbridge-flags",
|
||||
@ -1386,9 +1386,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cxx-build"
|
||||
version = "1.0.81"
|
||||
version = "1.0.82"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7cc32cc5fea1d894b77d269ddb9f192110069a8a9c1f1d441195fba90553dea3"
|
||||
checksum = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"codespan-reporting",
|
||||
@ -1401,15 +1401,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cxxbridge-flags"
|
||||
version = "1.0.81"
|
||||
version = "1.0.82"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ca220e4794c934dc6b1207c3b42856ad4c302f2df1712e9f8d2eec5afaacf1f"
|
||||
checksum = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71"
|
||||
|
||||
[[package]]
|
||||
name = "cxxbridge-macro"
|
||||
version = "1.0.81"
|
||||
version = "1.0.82"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b846f081361125bfc8dc9d3940c84e1fd83ba54bbca7b17cd29483c828be0704"
|
||||
checksum = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -1536,9 +1536,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "digest"
|
||||
version = "0.10.5"
|
||||
version = "0.10.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"
|
||||
checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
|
||||
dependencies = [
|
||||
"block-buffer 0.10.3",
|
||||
"crypto-common",
|
||||
@ -1813,12 +1813,12 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
|
||||
|
||||
[[package]]
|
||||
name = "flate2"
|
||||
version = "1.0.24"
|
||||
version = "1.0.25"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
|
||||
checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
|
||||
dependencies = [
|
||||
"crc32fast",
|
||||
"miniz_oxide",
|
||||
"miniz_oxide 0.6.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2120,7 +2120,7 @@ version = "0.3.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"fnv",
|
||||
"futures-core",
|
||||
"futures-sink",
|
||||
@ -2128,7 +2128,7 @@ dependencies = [
|
||||
"http",
|
||||
"indexmap",
|
||||
"slab",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
]
|
||||
@ -2236,7 +2236,7 @@ version = "0.2.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"fnv",
|
||||
"itoa",
|
||||
]
|
||||
@ -2247,7 +2247,7 @@ version = "0.4.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"http",
|
||||
"pin-project-lite 0.2.9",
|
||||
]
|
||||
@ -2282,7 +2282,7 @@ version = "0.14.23"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"futures-channel",
|
||||
"futures-core",
|
||||
"futures-util",
|
||||
@ -2294,7 +2294,7 @@ dependencies = [
|
||||
"itoa",
|
||||
"pin-project-lite 0.2.9",
|
||||
"socket2",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tower-service",
|
||||
"tracing",
|
||||
"want",
|
||||
@ -2308,7 +2308,7 @@ checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
|
||||
dependencies = [
|
||||
"hyper",
|
||||
"pin-project-lite 0.2.9",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-io-timeout",
|
||||
]
|
||||
|
||||
@ -2378,7 +2378,7 @@ name = "igd"
|
||||
version = "0.12.0"
|
||||
dependencies = [
|
||||
"attohttpc",
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"futures",
|
||||
"http",
|
||||
"hyper",
|
||||
@ -2387,7 +2387,7 @@ dependencies = [
|
||||
"simplelog 0.9.0",
|
||||
"tokio 0.2.25",
|
||||
"tokio 0.3.7",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"url",
|
||||
"xmltree",
|
||||
]
|
||||
@ -2438,9 +2438,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
|
||||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "1.9.1"
|
||||
version = "1.9.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
|
||||
checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"hashbrown",
|
||||
@ -2487,9 +2487,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ipconfig"
|
||||
version = "0.3.0"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "723519edce41262b05d4143ceb95050e4c614f483e78e9fd9e39a8275a84ad98"
|
||||
checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be"
|
||||
dependencies = [
|
||||
"socket2",
|
||||
"widestring 0.5.1",
|
||||
@ -2842,6 +2842,15 @@ dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memoffset"
|
||||
version = "0.7.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memory_units"
|
||||
version = "0.4.0"
|
||||
@ -2869,6 +2878,15 @@ dependencies = [
|
||||
"adler",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "miniz_oxide"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
|
||||
dependencies = [
|
||||
"adler",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mio"
|
||||
version = "0.6.23"
|
||||
@ -2991,7 +3009,7 @@ checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"jni-sys",
|
||||
"ndk-sys 0.4.0",
|
||||
"ndk-sys 0.4.1+23.1.7779620",
|
||||
"num_enum",
|
||||
"raw-window-handle",
|
||||
"thiserror",
|
||||
@ -3015,7 +3033,7 @@ dependencies = [
|
||||
"ndk 0.7.0",
|
||||
"ndk-context",
|
||||
"ndk-macro",
|
||||
"ndk-sys 0.4.0",
|
||||
"ndk-sys 0.4.1+23.1.7779620",
|
||||
"once_cell",
|
||||
"parking_lot 0.12.1",
|
||||
]
|
||||
@ -3044,9 +3062,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ndk-sys"
|
||||
version = "0.4.0"
|
||||
version = "0.4.1+23.1.7779620"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "21d83ec9c63ec5bf950200a8e508bdad6659972187b625469f58ef8c08e29046"
|
||||
checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
|
||||
dependencies = [
|
||||
"jni-sys",
|
||||
]
|
||||
@ -3098,12 +3116,12 @@ dependencies = [
|
||||
name = "netlink-proto"
|
||||
version = "0.9.1"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"futures",
|
||||
"log",
|
||||
"netlink-packet-core",
|
||||
"netlink-sys",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -3111,11 +3129,11 @@ name = "netlink-sys"
|
||||
version = "0.8.1"
|
||||
dependencies = [
|
||||
"async-io",
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"futures",
|
||||
"libc",
|
||||
"log",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -3128,7 +3146,7 @@ dependencies = [
|
||||
"cc",
|
||||
"cfg-if 1.0.0",
|
||||
"libc",
|
||||
"memoffset",
|
||||
"memoffset 0.6.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -3141,7 +3159,7 @@ dependencies = [
|
||||
"bitflags",
|
||||
"cfg-if 1.0.0",
|
||||
"libc",
|
||||
"memoffset",
|
||||
"memoffset 0.6.5",
|
||||
"pin-utils",
|
||||
]
|
||||
|
||||
@ -3362,7 +3380,7 @@ dependencies = [
|
||||
"prost",
|
||||
"protobuf",
|
||||
"thiserror",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tonic",
|
||||
]
|
||||
|
||||
@ -3426,7 +3444,7 @@ dependencies = [
|
||||
"percent-encoding",
|
||||
"rand 0.8.5",
|
||||
"thiserror",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-stream",
|
||||
]
|
||||
|
||||
@ -3442,9 +3460,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "os_str_bytes"
|
||||
version = "6.4.0"
|
||||
version = "6.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7b5bf27447411e9ee3ff51186bf7a08e16c341efdde93f4d823e8844429bed7e"
|
||||
checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
|
||||
|
||||
[[package]]
|
||||
name = "overload"
|
||||
@ -3573,9 +3591,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
|
||||
|
||||
[[package]]
|
||||
name = "pest"
|
||||
version = "2.4.1"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a528564cc62c19a7acac4d81e01f39e53e25e17b934878f4c6d25cc2836e62f8"
|
||||
checksum = "5f400b0f7905bf702f9f3dc3df5a121b16c54e9e8012c082905fdf09a931861a"
|
||||
dependencies = [
|
||||
"thiserror",
|
||||
"ucd-trie",
|
||||
@ -3583,9 +3601,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pest_derive"
|
||||
version = "2.4.1"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d5fd9bc6500181952d34bd0b2b0163a54d794227b498be0b7afa7698d0a7b18f"
|
||||
checksum = "423c2ba011d6e27b02b482a3707c773d19aec65cc024637aec44e19652e66f63"
|
||||
dependencies = [
|
||||
"pest",
|
||||
"pest_generator",
|
||||
@ -3593,9 +3611,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pest_generator"
|
||||
version = "2.4.1"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d2610d5ac5156217b4ff8e46ddcef7cdf44b273da2ac5bca2ecbfa86a330e7c4"
|
||||
checksum = "3e64e6c2c85031c02fdbd9e5c72845445ca0a724d419aa0bc068ac620c9935c1"
|
||||
dependencies = [
|
||||
"pest",
|
||||
"pest_meta",
|
||||
@ -3606,9 +3624,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pest_meta"
|
||||
version = "2.4.1"
|
||||
version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "824749bf7e21dd66b36fbe26b3f45c713879cccd4a009a917ab8e045ca8246fe"
|
||||
checksum = "57959b91f0a133f89a68be874a5c88ed689c19cd729ecdb5d762ebf16c64d662"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"pest",
|
||||
@ -3840,7 +3858,7 @@ version = "0.11.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a0841812012b2d4a6145fae9a6af1534873c32aa67fff26bd09f8fa42c83f95a"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"prost-derive",
|
||||
]
|
||||
|
||||
@ -3850,7 +3868,7 @@ version = "0.11.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1d8b442418ea0822409d9e7d047cbf1e7e9e1760b172bf9982cf29d517c93511"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"heck",
|
||||
"itertools",
|
||||
"lazy_static",
|
||||
@ -3885,7 +3903,7 @@ version = "0.11.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "747761bc3dc48f9a34553bf65605cf6cb6288ba219f3450b4275dbd81539551a"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"prost",
|
||||
]
|
||||
|
||||
@ -4018,11 +4036,10 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rayon"
|
||||
version = "1.5.3"
|
||||
version = "1.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
|
||||
checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"crossbeam-deque",
|
||||
"either",
|
||||
"rayon-core",
|
||||
@ -4030,9 +4047,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rayon-core"
|
||||
version = "1.9.3"
|
||||
version = "1.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
|
||||
checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3"
|
||||
dependencies = [
|
||||
"crossbeam-channel",
|
||||
"crossbeam-deque",
|
||||
@ -4158,7 +4175,7 @@ version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"rustc-hex",
|
||||
]
|
||||
|
||||
@ -4206,7 +4223,7 @@ dependencies = [
|
||||
"netlink-proto",
|
||||
"nix 0.22.3",
|
||||
"thiserror",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -4476,9 +4493,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.87"
|
||||
version = "1.0.89"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45"
|
||||
checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"ryu",
|
||||
@ -4556,7 +4573,7 @@ checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"cpufeatures",
|
||||
"digest 0.10.5",
|
||||
"digest 0.10.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -4567,7 +4584,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"cpufeatures",
|
||||
"digest 0.10.5",
|
||||
"digest 0.10.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -4791,9 +4808,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sysinfo"
|
||||
version = "0.26.7"
|
||||
version = "0.26.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c375d5fd899e32847b8566e10598d6e9f1d9b55ec6de3cdf9e7da4bdc51371bc"
|
||||
checksum = "29ddf41e393a9133c81d5f0974195366bd57082deac6e0eb02ed39b8341c2bb6"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"core-foundation-sys 0.8.3",
|
||||
@ -4870,9 +4887,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "time"
|
||||
version = "0.1.44"
|
||||
version = "0.1.45"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
|
||||
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"wasi 0.10.0+wasi-snapshot-preview1",
|
||||
@ -4972,12 +4989,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tokio"
|
||||
version = "1.21.2"
|
||||
version = "1.22.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099"
|
||||
checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3"
|
||||
dependencies = [
|
||||
"autocfg",
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"libc",
|
||||
"memchr",
|
||||
"mio 0.8.5",
|
||||
@ -4998,7 +5015,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
|
||||
dependencies = [
|
||||
"pin-project-lite 0.2.9",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -5020,7 +5037,7 @@ checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"pin-project-lite 0.2.9",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -5029,12 +5046,12 @@ version = "0.7.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740"
|
||||
dependencies = [
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"futures-core",
|
||||
"futures-io",
|
||||
"futures-sink",
|
||||
"pin-project-lite 0.2.9",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
@ -5057,7 +5074,7 @@ dependencies = [
|
||||
"async-trait",
|
||||
"axum",
|
||||
"base64 0.13.1",
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"futures-core",
|
||||
"futures-util",
|
||||
"h2",
|
||||
@ -5069,7 +5086,7 @@ dependencies = [
|
||||
"pin-project 1.0.12",
|
||||
"prost",
|
||||
"prost-derive",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-stream",
|
||||
"tokio-util",
|
||||
"tower",
|
||||
@ -5105,7 +5122,7 @@ dependencies = [
|
||||
"pin-project-lite 0.2.9",
|
||||
"rand 0.8.5",
|
||||
"slab",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-util",
|
||||
"tower-layer",
|
||||
"tower-service",
|
||||
@ -5119,7 +5136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"futures-core",
|
||||
"futures-util",
|
||||
"http",
|
||||
@ -5304,7 +5321,7 @@ dependencies = [
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
"tinyvec",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tracing",
|
||||
"url",
|
||||
]
|
||||
@ -5324,7 +5341,7 @@ dependencies = [
|
||||
"resolv-conf",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tracing",
|
||||
"trust-dns-proto",
|
||||
]
|
||||
@ -5362,7 +5379,7 @@ checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0"
|
||||
dependencies = [
|
||||
"base64 0.13.1",
|
||||
"byteorder",
|
||||
"bytes 1.2.1",
|
||||
"bytes 1.3.0",
|
||||
"http",
|
||||
"httparse",
|
||||
"log",
|
||||
@ -5532,7 +5549,7 @@ dependencies = [
|
||||
"serde_derive",
|
||||
"serial_test",
|
||||
"thiserror",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-util",
|
||||
"veilid-core",
|
||||
]
|
||||
@ -5611,7 +5628,7 @@ dependencies = [
|
||||
"static_assertions",
|
||||
"stop-token",
|
||||
"thiserror",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-stream",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
@ -5655,7 +5672,7 @@ dependencies = [
|
||||
"parking_lot 0.12.1",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-stream",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
@ -5702,7 +5719,7 @@ dependencies = [
|
||||
"signal-hook",
|
||||
"signal-hook-async-std",
|
||||
"stop-token",
|
||||
"tokio 1.21.2",
|
||||
"tokio 1.22.0",
|
||||
"tokio-stream",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
@ -6201,9 +6218,9 @@ checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
|
||||
|
||||
[[package]]
|
||||
name = "winreg"
|
||||
version = "0.7.0"
|
||||
version = "0.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
|
||||
checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
|
||||
dependencies = [
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
@ -6238,9 +6255,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "wyz"
|
||||
version = "0.5.0"
|
||||
version = "0.5.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "30b31594f29d27036c383b53b59ed3476874d518f0efb151b27a4c275141390e"
|
||||
checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
|
||||
dependencies = [
|
||||
"tap",
|
||||
]
|
||||
|
@ -4,6 +4,7 @@ use crate::crypto::Crypto;
|
||||
use crate::veilid_api::*;
|
||||
use crate::veilid_config::*;
|
||||
use crate::xx::*;
|
||||
use crate::*;
|
||||
|
||||
pub type UpdateCallback = Arc<dyn Fn(VeilidUpdate) + Send + Sync>;
|
||||
|
||||
@ -203,7 +204,7 @@ impl VeilidCoreContext {
|
||||
if #[cfg(target_os = "android")] {
|
||||
if crate::intf::utils::android::ANDROID_GLOBALS.lock().is_none() {
|
||||
error!("Android globals are not set up");
|
||||
return Err(VeilidAPIError::Internal { message: "Android globals are not set up".to_owned() });
|
||||
apibail_internal!("Android globals are not set up");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -251,7 +252,7 @@ pub async fn api_startup(
|
||||
// See if we have an API started up already
|
||||
let mut initialized_lock = INITIALIZED.lock().await;
|
||||
if *initialized_lock {
|
||||
return Err(VeilidAPIError::AlreadyInitialized);
|
||||
apibail_already_initialized!();
|
||||
}
|
||||
|
||||
// Create core context
|
||||
@ -274,7 +275,7 @@ pub async fn api_startup_json(
|
||||
// See if we have an API started up already
|
||||
let mut initialized_lock = INITIALIZED.lock().await;
|
||||
if *initialized_lock {
|
||||
return Err(VeilidAPIError::AlreadyInitialized);
|
||||
apibail_already_initialized!();
|
||||
}
|
||||
|
||||
// Create core context
|
||||
|
@ -1,7 +1,6 @@
|
||||
use super::*;
|
||||
use crate::tests::common::test_veilid_config::*;
|
||||
use crate::xx::*;
|
||||
use crate::*;
|
||||
|
||||
static LOREM_IPSUM:&[u8] = b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ";
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
use super::*;
|
||||
use crate::tests::common::test_veilid_config::*;
|
||||
use crate::xx::*;
|
||||
use crate::*;
|
||||
|
||||
pub async fn test_envelope_round_trip() {
|
||||
info!("--- test envelope round trip ---");
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::*;
|
||||
use crate::xx::*;
|
||||
use connection_table::*;
|
||||
use network_connection::*;
|
||||
use stop_token::future::FutureExt;
|
||||
|
@ -1,4 +1,5 @@
|
||||
use crate::*;
|
||||
use crate::xx::*;
|
||||
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
mod native;
|
||||
@ -33,7 +34,6 @@ use routing_table::*;
|
||||
use rpc_processor::*;
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
use wasm::*;
|
||||
use xx::*;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::*;
|
||||
use crate::xx::*;
|
||||
use igd::*;
|
||||
use std::net::UdpSocket;
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::super::*;
|
||||
use crate::xx::*;
|
||||
use super::*;
|
||||
|
||||
impl NetworkManager {
|
||||
// Clean up the public address check tables, removing entries that have timed out
|
||||
|
@ -1,6 +1,4 @@
|
||||
use super::super::*;
|
||||
|
||||
use crate::xx::*;
|
||||
use super::*;
|
||||
|
||||
impl NetworkManager {
|
||||
// Compute transfer statistics for the low level network
|
||||
|
@ -1,8 +1,7 @@
|
||||
use super::*;
|
||||
|
||||
use super::connection_table::*;
|
||||
use super::network_connection::*;
|
||||
use crate::tests::common::test_veilid_config::*;
|
||||
use crate::xx::*;
|
||||
use crate::*;
|
||||
|
||||
pub async fn test_add_get_remove() {
|
||||
let config = get_config();
|
||||
|
@ -1,6 +1,7 @@
|
||||
mod protocol;
|
||||
|
||||
use super::*;
|
||||
|
||||
use crate::routing_table::*;
|
||||
use connection_manager::*;
|
||||
use protocol::ws::WebsocketProtocolHandler;
|
||||
|
@ -2,7 +2,6 @@ pub mod wrtc;
|
||||
pub mod ws;
|
||||
|
||||
use super::*;
|
||||
use crate::xx::*;
|
||||
use std::io;
|
||||
|
||||
#[derive(Debug)]
|
||||
|
@ -11,11 +11,12 @@ mod routing_table_inner;
|
||||
mod stats_accounting;
|
||||
mod tasks;
|
||||
|
||||
use crate::xx::*;
|
||||
use crate::*;
|
||||
|
||||
use crate::crypto::*;
|
||||
use crate::network_manager::*;
|
||||
use crate::rpc_processor::*;
|
||||
use crate::xx::*;
|
||||
use crate::*;
|
||||
use bucket::*;
|
||||
pub use bucket_entry::*;
|
||||
pub use debug::*;
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::super::*;
|
||||
use crate::xx::*;
|
||||
use super::*;
|
||||
|
||||
use futures_util::stream::{FuturesUnordered, StreamExt};
|
||||
use stop_token::future::FutureExt as StopFutureExt;
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::super::*;
|
||||
use crate::xx::*;
|
||||
use super::*;
|
||||
|
||||
impl RoutingTable {
|
||||
// Kick the queued buckets in the routing table to free dead nodes if necessary
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::super::*;
|
||||
use crate::xx::*;
|
||||
use super::*;
|
||||
|
||||
use futures_util::stream::{FuturesOrdered, StreamExt};
|
||||
use stop_token::future::FutureExt as StopFutureExt;
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::super::*;
|
||||
use crate::xx::*;
|
||||
use super::*;
|
||||
|
||||
use futures_util::stream::{FuturesUnordered, StreamExt};
|
||||
use futures_util::FutureExt;
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::super::*;
|
||||
use crate::xx::*;
|
||||
use super::*;
|
||||
|
||||
use futures_util::stream::{FuturesUnordered, StreamExt};
|
||||
use futures_util::FutureExt;
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::super::*;
|
||||
use crate::xx::*;
|
||||
use super::*;
|
||||
|
||||
impl RoutingTable {
|
||||
// Keep relays assigned and accessible
|
||||
|
@ -1,5 +1,4 @@
|
||||
use super::super::*;
|
||||
use crate::xx::*;
|
||||
use super::*;
|
||||
|
||||
impl RoutingTable {
|
||||
// Compute transfer statistics to determine how 'fast' a node is
|
||||
|
@ -1,7 +1,5 @@
|
||||
use crate::xx::*;
|
||||
use crate::*;
|
||||
use super::*;
|
||||
use core::convert::TryInto;
|
||||
use rpc_processor::*;
|
||||
|
||||
pub fn encode_address(
|
||||
address: &Address,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_address_type_set(
|
||||
address_type_set: &AddressTypeSet,
|
||||
|
@ -1,7 +1,5 @@
|
||||
use crate::crypto::*;
|
||||
use crate::*;
|
||||
use super::*;
|
||||
use core::convert::TryInto;
|
||||
use rpc_processor::*;
|
||||
|
||||
pub fn decode_dht_key(public_key: &veilid_capnp::key256::Reader) -> DHTKey {
|
||||
let u0 = public_key.get_u0().to_be_bytes();
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_signature(sig: &DHTSignature, builder: &mut veilid_capnp::signature512::Builder) {
|
||||
let sig = &sig.bytes;
|
||||
|
@ -1,7 +1,5 @@
|
||||
use crate::xx::*;
|
||||
use crate::*;
|
||||
use super::*;
|
||||
use core::convert::TryInto;
|
||||
use rpc_processor::*;
|
||||
|
||||
pub fn decode_dial_info(reader: &veilid_capnp::dial_info::Reader) -> Result<DialInfo, RPCError> {
|
||||
match reader
|
||||
|
@ -1,4 +1,4 @@
|
||||
use crate::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_dial_info_class(dial_info_class: DialInfoClass) -> veilid_capnp::DialInfoClass {
|
||||
match dial_info_class {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_dial_info_detail(
|
||||
dial_info_detail: &DialInfoDetail,
|
||||
|
@ -1,4 +1,4 @@
|
||||
use crate::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_network_class(network_class: NetworkClass) -> veilid_capnp::NetworkClass {
|
||||
match network_class {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_node_info(
|
||||
node_info: &NodeInfo,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_public_internet_node_status(
|
||||
public_internet_node_status: &PublicInternetNodeStatus,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_nonce(nonce: &Nonce, builder: &mut veilid_capnp::nonce24::Builder) {
|
||||
builder.set_u0(u64::from_be_bytes(
|
||||
|
@ -1,6 +1,4 @@
|
||||
use super::*;
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCAnswer {
|
||||
|
@ -45,3 +45,5 @@ pub use operation_watch_value::*;
|
||||
pub use question::*;
|
||||
pub use respond_to::*;
|
||||
pub use statement::*;
|
||||
|
||||
use super::*;
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum RPCOperationKind {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationAppCallQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationAppMessage {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationCancelTunnelQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationCompleteTunnelQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationFindBlockQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationFindNodeQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationGetValueQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationNodeInfoUpdate {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationReturnReceipt {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RoutedOperation {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationSetValueQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationSignal {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationStartTunnelQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationStatusQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationSupplyBlockQ {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationValidateDialInfo {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationValueChanged {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCOperationWatchValueQ {
|
||||
|
@ -1,6 +1,4 @@
|
||||
use super::*;
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCQuestion {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum RespondTo {
|
||||
|
@ -1,6 +1,4 @@
|
||||
use super::*;
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RPCStatement {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_peer_info(
|
||||
peer_info: &PeerInfo,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_protocol_type_set(
|
||||
protocol_type_set: &ProtocolTypeSet,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_sender_info(
|
||||
sender_info: &SenderInfo,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_signal_info(
|
||||
signal_info: &SignalInfo,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_signed_direct_node_info(
|
||||
signed_direct_node_info: &SignedDirectNodeInfo,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_signed_node_info(
|
||||
signed_node_info: &SignedNodeInfo,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_signed_relayed_node_info(
|
||||
signed_relayed_node_info: &SignedRelayedNodeInfo,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_socket_address(
|
||||
socket_address: &SocketAddress,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_tunnel_mode(tunnel_mode: TunnelMode) -> veilid_capnp::TunnelEndpointMode {
|
||||
match tunnel_mode {
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_value_data(
|
||||
value_data: &ValueData,
|
||||
|
@ -1,5 +1,4 @@
|
||||
use crate::*;
|
||||
use rpc_processor::*;
|
||||
use super::*;
|
||||
|
||||
pub fn encode_value_key(
|
||||
value_key: &ValueKey,
|
||||
|
@ -4,8 +4,3 @@ pub mod test_protected_store;
|
||||
pub mod test_table_store;
|
||||
pub mod test_veilid_config;
|
||||
pub mod test_veilid_core;
|
||||
|
||||
use super::*;
|
||||
|
||||
pub use crypto::tests::*;
|
||||
pub use network_manager::tests::*;
|
||||
|
@ -1,5 +1,3 @@
|
||||
pub mod common;
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
mod native;
|
||||
|
||||
use super::*;
|
||||
|
@ -3,10 +3,11 @@
|
||||
|
||||
mod test_async_peek_stream;
|
||||
|
||||
use crate::xx::*;
|
||||
|
||||
use crate::crypto::tests::*;
|
||||
use crate::network_manager::tests::*;
|
||||
use crate::tests::common::*;
|
||||
use crate::xx::*;
|
||||
|
||||
#[cfg(all(target_os = "android", feature = "android_tests"))]
|
||||
use jni::{objects::JClass, objects::JObject, JNIEnv};
|
||||
|
@ -1,4 +1,4 @@
|
||||
use super::*;
|
||||
use crate::xx::*;
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(feature="rt-async-std")] {
|
||||
|
284
veilid-core/src/veilid_api/api.rs
Normal file
284
veilid-core/src/veilid_api/api.rs
Normal file
@ -0,0 +1,284 @@
|
||||
use super::*;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct VeilidAPIInner {
|
||||
context: Option<VeilidCoreContext>,
|
||||
}
|
||||
|
||||
impl fmt::Debug for VeilidAPIInner {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
write!(f, "VeilidAPIInner")
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for VeilidAPIInner {
|
||||
fn drop(&mut self) {
|
||||
if let Some(context) = self.context.take() {
|
||||
intf::spawn_detached(api_shutdown(context));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct VeilidAPI {
|
||||
inner: Arc<Mutex<VeilidAPIInner>>,
|
||||
}
|
||||
|
||||
impl VeilidAPI {
|
||||
#[instrument(skip_all)]
|
||||
pub(crate) fn new(context: VeilidCoreContext) -> Self {
|
||||
Self {
|
||||
inner: Arc::new(Mutex::new(VeilidAPIInner {
|
||||
context: Some(context),
|
||||
})),
|
||||
}
|
||||
}
|
||||
|
||||
#[instrument(skip_all)]
|
||||
pub async fn shutdown(self) {
|
||||
let context = { self.inner.lock().context.take() };
|
||||
if let Some(context) = context {
|
||||
api_shutdown(context).await;
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_shutdown(&self) -> bool {
|
||||
self.inner.lock().context.is_none()
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// Accessors
|
||||
pub fn config(&self) -> Result<VeilidConfig, VeilidAPIError> {
|
||||
let inner = self.inner.lock();
|
||||
if let Some(context) = &inner.context {
|
||||
return Ok(context.config.clone());
|
||||
}
|
||||
Err(VeilidAPIError::NotInitialized)
|
||||
}
|
||||
pub fn crypto(&self) -> Result<Crypto, VeilidAPIError> {
|
||||
let inner = self.inner.lock();
|
||||
if let Some(context) = &inner.context {
|
||||
return Ok(context.crypto.clone());
|
||||
}
|
||||
Err(VeilidAPIError::NotInitialized)
|
||||
}
|
||||
pub fn table_store(&self) -> Result<TableStore, VeilidAPIError> {
|
||||
let inner = self.inner.lock();
|
||||
if let Some(context) = &inner.context {
|
||||
return Ok(context.table_store.clone());
|
||||
}
|
||||
Err(VeilidAPIError::not_initialized())
|
||||
}
|
||||
pub fn block_store(&self) -> Result<BlockStore, VeilidAPIError> {
|
||||
let inner = self.inner.lock();
|
||||
if let Some(context) = &inner.context {
|
||||
return Ok(context.block_store.clone());
|
||||
}
|
||||
Err(VeilidAPIError::not_initialized())
|
||||
}
|
||||
pub fn protected_store(&self) -> Result<ProtectedStore, VeilidAPIError> {
|
||||
let inner = self.inner.lock();
|
||||
if let Some(context) = &inner.context {
|
||||
return Ok(context.protected_store.clone());
|
||||
}
|
||||
Err(VeilidAPIError::not_initialized())
|
||||
}
|
||||
pub fn attachment_manager(&self) -> Result<AttachmentManager, VeilidAPIError> {
|
||||
let inner = self.inner.lock();
|
||||
if let Some(context) = &inner.context {
|
||||
return Ok(context.attachment_manager.clone());
|
||||
}
|
||||
Err(VeilidAPIError::not_initialized())
|
||||
}
|
||||
pub fn network_manager(&self) -> Result<NetworkManager, VeilidAPIError> {
|
||||
let inner = self.inner.lock();
|
||||
if let Some(context) = &inner.context {
|
||||
return Ok(context.attachment_manager.network_manager());
|
||||
}
|
||||
Err(VeilidAPIError::not_initialized())
|
||||
}
|
||||
pub fn rpc_processor(&self) -> Result<RPCProcessor, VeilidAPIError> {
|
||||
let inner = self.inner.lock();
|
||||
if let Some(context) = &inner.context {
|
||||
return Ok(context.attachment_manager.network_manager().rpc_processor());
|
||||
}
|
||||
Err(VeilidAPIError::NotInitialized)
|
||||
}
|
||||
pub fn routing_table(&self) -> Result<RoutingTable, VeilidAPIError> {
|
||||
let inner = self.inner.lock();
|
||||
if let Some(context) = &inner.context {
|
||||
return Ok(context.attachment_manager.network_manager().routing_table());
|
||||
}
|
||||
Err(VeilidAPIError::NotInitialized)
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// Attach/Detach
|
||||
|
||||
// get a full copy of the current state
|
||||
pub async fn get_state(&self) -> Result<VeilidState, VeilidAPIError> {
|
||||
let attachment_manager = self.attachment_manager()?;
|
||||
let network_manager = attachment_manager.network_manager();
|
||||
let config = self.config()?;
|
||||
|
||||
let attachment = attachment_manager.get_veilid_state();
|
||||
let network = network_manager.get_veilid_state();
|
||||
let config = config.get_veilid_state();
|
||||
|
||||
Ok(VeilidState {
|
||||
attachment,
|
||||
network,
|
||||
config,
|
||||
})
|
||||
}
|
||||
|
||||
// get network connectedness
|
||||
|
||||
// connect to the network
|
||||
#[instrument(level = "debug", err, skip_all)]
|
||||
pub async fn attach(&self) -> Result<(), VeilidAPIError> {
|
||||
let attachment_manager = self.attachment_manager()?;
|
||||
attachment_manager
|
||||
.request_attach()
|
||||
.await
|
||||
.map_err(|e| VeilidAPIError::internal(e))
|
||||
}
|
||||
|
||||
// disconnect from the network
|
||||
#[instrument(level = "debug", err, skip_all)]
|
||||
pub async fn detach(&self) -> Result<(), VeilidAPIError> {
|
||||
let attachment_manager = self.attachment_manager()?;
|
||||
attachment_manager
|
||||
.request_detach()
|
||||
.await
|
||||
.map_err(|e| VeilidAPIError::internal(e))
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// Routing Context
|
||||
|
||||
#[instrument(level = "debug", skip(self))]
|
||||
pub fn routing_context(&self) -> RoutingContext {
|
||||
RoutingContext::new(self.clone())
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// Private route allocation
|
||||
|
||||
#[instrument(level = "debug", skip(self))]
|
||||
pub async fn new_private_route(&self) -> Result<(DHTKey, Vec<u8>), VeilidAPIError> {
|
||||
self.new_custom_private_route(Stability::default(), Sequencing::default())
|
||||
.await
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", skip(self))]
|
||||
pub async fn new_custom_private_route(
|
||||
&self,
|
||||
stability: Stability,
|
||||
sequencing: Sequencing,
|
||||
) -> Result<(DHTKey, Vec<u8>), VeilidAPIError> {
|
||||
let default_route_hop_count: usize = {
|
||||
let config = self.config()?;
|
||||
let c = config.get();
|
||||
c.network.rpc.default_route_hop_count.into()
|
||||
};
|
||||
|
||||
let rss = self.routing_table()?.route_spec_store();
|
||||
let r = rss
|
||||
.allocate_route(
|
||||
stability,
|
||||
sequencing,
|
||||
default_route_hop_count,
|
||||
Direction::Inbound.into(),
|
||||
&[],
|
||||
)
|
||||
.map_err(VeilidAPIError::internal)?;
|
||||
let Some(pr_pubkey) = r else {
|
||||
apibail_generic!("unable to allocate route");
|
||||
};
|
||||
if !rss
|
||||
.test_route(&pr_pubkey)
|
||||
.await
|
||||
.map_err(VeilidAPIError::no_connection)?
|
||||
{
|
||||
rss.release_route(&pr_pubkey);
|
||||
apibail_generic!("allocated route failed to test");
|
||||
}
|
||||
let private_route = rss
|
||||
.assemble_private_route(&pr_pubkey, Some(true))
|
||||
.map_err(VeilidAPIError::generic)?;
|
||||
let blob = match RouteSpecStore::private_route_to_blob(&private_route) {
|
||||
Ok(v) => v,
|
||||
Err(e) => {
|
||||
rss.release_route(&pr_pubkey);
|
||||
apibail_internal!(e);
|
||||
}
|
||||
};
|
||||
|
||||
rss.mark_route_published(&pr_pubkey, true)
|
||||
.map_err(VeilidAPIError::internal)?;
|
||||
|
||||
Ok((pr_pubkey, blob))
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", skip(self))]
|
||||
pub fn import_remote_private_route(&self, blob: Vec<u8>) -> Result<DHTKey, VeilidAPIError> {
|
||||
let rss = self.routing_table()?.route_spec_store();
|
||||
rss.import_remote_private_route(blob)
|
||||
.map_err(|e| VeilidAPIError::invalid_argument(e, "blob", "private route blob"))
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", skip(self))]
|
||||
pub fn release_private_route(&self, key: &DHTKey) -> Result<(), VeilidAPIError> {
|
||||
let rss = self.routing_table()?.route_spec_store();
|
||||
if rss.release_route(key) {
|
||||
Ok(())
|
||||
} else {
|
||||
Err(VeilidAPIError::invalid_argument(
|
||||
"release_private_route",
|
||||
"key",
|
||||
key,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// App Calls
|
||||
|
||||
#[instrument(level = "debug", skip(self))]
|
||||
pub async fn app_call_reply(&self, id: u64, message: Vec<u8>) -> Result<(), VeilidAPIError> {
|
||||
let rpc_processor = self.rpc_processor()?;
|
||||
rpc_processor
|
||||
.app_call_reply(id, message)
|
||||
.await
|
||||
.map_err(|e| e.into())
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// Tunnel Building
|
||||
|
||||
#[instrument(level = "debug", err, skip(self))]
|
||||
pub async fn start_tunnel(
|
||||
&self,
|
||||
_endpoint_mode: TunnelMode,
|
||||
_depth: u8,
|
||||
) -> Result<PartialTunnel, VeilidAPIError> {
|
||||
panic!("unimplemented");
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", err, skip(self))]
|
||||
pub async fn complete_tunnel(
|
||||
&self,
|
||||
_endpoint_mode: TunnelMode,
|
||||
_depth: u8,
|
||||
_partial_tunnel: PartialTunnel,
|
||||
) -> Result<FullTunnel, VeilidAPIError> {
|
||||
panic!("unimplemented");
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", err, skip(self))]
|
||||
pub async fn cancel_tunnel(&self, _tunnel_id: TunnelId) -> Result<bool, VeilidAPIError> {
|
||||
panic!("unimplemented");
|
||||
}
|
||||
}
|
@ -276,15 +276,10 @@ fn get_debug_argument<T, G: FnOnce(&str) -> Option<T>>(
|
||||
argument: &str,
|
||||
getter: G,
|
||||
) -> Result<T, VeilidAPIError> {
|
||||
if let Some(val) = getter(value) {
|
||||
Ok(val)
|
||||
} else {
|
||||
Err(VeilidAPIError::InvalidArgument {
|
||||
context: context.to_owned(),
|
||||
argument: argument.to_owned(),
|
||||
value: value.to_owned(),
|
||||
})
|
||||
}
|
||||
let Some(val) = getter(value) else {
|
||||
apibail_invalid_argument!(context, argument, value);
|
||||
};
|
||||
Ok(val)
|
||||
}
|
||||
fn get_debug_argument_at<T, G: FnOnce(&str) -> Option<T>>(
|
||||
debug_args: &[String],
|
||||
@ -294,21 +289,13 @@ fn get_debug_argument_at<T, G: FnOnce(&str) -> Option<T>>(
|
||||
getter: G,
|
||||
) -> Result<T, VeilidAPIError> {
|
||||
if pos >= debug_args.len() {
|
||||
return Err(VeilidAPIError::MissingArgument {
|
||||
context: context.to_owned(),
|
||||
argument: argument.to_owned(),
|
||||
});
|
||||
apibail_missing_argument!(context, argument);
|
||||
}
|
||||
let value = &debug_args[pos];
|
||||
if let Some(val) = getter(value) {
|
||||
Ok(val)
|
||||
} else {
|
||||
Err(VeilidAPIError::InvalidArgument {
|
||||
context: context.to_owned(),
|
||||
argument: argument.to_owned(),
|
||||
value: value.to_owned(),
|
||||
})
|
||||
}
|
||||
let Some(val) = getter(value) else {
|
||||
apibail_invalid_argument!(context, argument, value);
|
||||
};
|
||||
Ok(val)
|
||||
}
|
||||
|
||||
impl VeilidAPI {
|
||||
@ -351,11 +338,7 @@ impl VeilidAPI {
|
||||
} else if let Some(lim) = get_number(&arg) {
|
||||
limit = lim;
|
||||
} else {
|
||||
return Err(VeilidAPIError::InvalidArgument {
|
||||
context: "debug_entries".to_owned(),
|
||||
argument: "unknown".to_owned(),
|
||||
value: arg,
|
||||
});
|
||||
apibail_invalid_argument!("debug_entries", "unknown", arg);
|
||||
}
|
||||
}
|
||||
|
||||
@ -412,7 +395,7 @@ impl VeilidAPI {
|
||||
async fn debug_restart(&self, args: String) -> Result<String, VeilidAPIError> {
|
||||
let args = args.trim_start();
|
||||
if args.is_empty() {
|
||||
return Err(VeilidAPIError::missing_argument("debug_restart", "arg_0"));
|
||||
apibail_missing_argument!("debug_restart", "arg_0");
|
||||
}
|
||||
let (arg, _rest) = args.split_once(' ').unwrap_or((args, ""));
|
||||
// let rest = rest.trim_start().to_owned();
|
||||
@ -431,11 +414,7 @@ impl VeilidAPI {
|
||||
|
||||
Ok("Network restarted".to_owned())
|
||||
} else {
|
||||
Err(VeilidAPIError::invalid_argument(
|
||||
"debug_restart",
|
||||
"arg_1",
|
||||
arg,
|
||||
))
|
||||
apibail_invalid_argument!("debug_restart", "arg_1", arg);
|
||||
}
|
||||
}
|
||||
|
||||
@ -654,11 +633,7 @@ impl VeilidAPI {
|
||||
if full_val == "full" {
|
||||
true
|
||||
} else {
|
||||
return Err(VeilidAPIError::invalid_argument(
|
||||
"debug_route",
|
||||
"full",
|
||||
full_val,
|
||||
));
|
||||
apibail_invalid_argument!("debug_route", "full", full_val);
|
||||
}
|
||||
} else {
|
||||
false
|
||||
|
186
veilid-core/src/veilid_api/error.rs
Normal file
186
veilid-core/src/veilid_api/error.rs
Normal file
@ -0,0 +1,186 @@
|
||||
use super::*;
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[macro_export]
|
||||
macro_rules! apibail_timeout {
|
||||
() => {
|
||||
return Err(VeilidAPIError::timeout())
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[macro_export]
|
||||
macro_rules! apibail_generic {
|
||||
($x:expr) => {
|
||||
return Err(VeilidAPIError::generic($x))
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[macro_export]
|
||||
macro_rules! apibail_internal {
|
||||
($x:expr) => {
|
||||
return Err(VeilidAPIError::internal($x))
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[macro_export]
|
||||
macro_rules! apibail_parse_error {
|
||||
($x:expr, $y:expr) => {
|
||||
return Err(VeilidAPIError::parse_error($x, $y))
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[macro_export]
|
||||
macro_rules! apibail_missing_argument {
|
||||
($x:expr, $y:expr) => {
|
||||
return Err(VeilidAPIError::missing_argument($x, $y))
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[macro_export]
|
||||
macro_rules! apibail_invalid_argument {
|
||||
($x:expr, $y:expr, $z:expr) => {
|
||||
return Err(VeilidAPIError::invalid_argument($x, $y, $z))
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[macro_export]
|
||||
macro_rules! apibail_no_connection {
|
||||
($x:expr) => {
|
||||
return Err(VeilidAPIError::no_connection($x))
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[macro_export]
|
||||
macro_rules! apibail_key_not_found {
|
||||
($x:expr) => {
|
||||
return Err(VeilidAPIError::key_not_found($x))
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused_macros)]
|
||||
#[macro_export]
|
||||
macro_rules! apibail_already_initialized {
|
||||
() => {
|
||||
return Err(VeilidAPIError::already_initialized())
|
||||
};
|
||||
}
|
||||
|
||||
#[derive(
|
||||
ThisError,
|
||||
Clone,
|
||||
Debug,
|
||||
PartialOrd,
|
||||
PartialEq,
|
||||
Eq,
|
||||
Ord,
|
||||
Serialize,
|
||||
Deserialize,
|
||||
RkyvArchive,
|
||||
RkyvSerialize,
|
||||
RkyvDeserialize,
|
||||
)]
|
||||
#[archive_attr(repr(u8), derive(CheckBytes))]
|
||||
#[serde(tag = "kind")]
|
||||
pub enum VeilidAPIError {
|
||||
#[error("Not initialized")]
|
||||
NotInitialized,
|
||||
#[error("Already initialized")]
|
||||
AlreadyInitialized,
|
||||
#[error("Timeout")]
|
||||
Timeout,
|
||||
#[error("Shutdown")]
|
||||
Shutdown,
|
||||
#[error("Key not found: {key}")]
|
||||
KeyNotFound { key: DHTKey },
|
||||
#[error("No connection: {message}")]
|
||||
NoConnection { message: String },
|
||||
#[error("No peer info: {node_id}")]
|
||||
NoPeerInfo { node_id: NodeId },
|
||||
#[error("Internal: {message}")]
|
||||
Internal { message: String },
|
||||
#[error("Unimplemented: {message}")]
|
||||
Unimplemented { message: String },
|
||||
#[error("Parse error: '{message}' with value '{value}'")]
|
||||
ParseError { message: String, value: String },
|
||||
#[error("Invalid argument: '{argument}' for '{context}' with value '{value}'")]
|
||||
InvalidArgument {
|
||||
context: String,
|
||||
argument: String,
|
||||
value: String,
|
||||
},
|
||||
#[error("Missing argument: '{argument}' for '{context}'")]
|
||||
MissingArgument { context: String, argument: String },
|
||||
#[error("Generic: {message}")]
|
||||
Generic { message: String },
|
||||
}
|
||||
|
||||
impl VeilidAPIError {
|
||||
pub fn not_initialized() -> Self {
|
||||
Self::NotInitialized
|
||||
}
|
||||
pub fn already_initialized() -> Self {
|
||||
Self::AlreadyInitialized
|
||||
}
|
||||
pub fn timeout() -> Self {
|
||||
Self::Timeout
|
||||
}
|
||||
pub fn shutdown() -> Self {
|
||||
Self::Shutdown
|
||||
}
|
||||
pub fn key_not_found(key: DHTKey) -> Self {
|
||||
Self::KeyNotFound { key }
|
||||
}
|
||||
pub fn no_connection<T: ToString>(msg: T) -> Self {
|
||||
Self::NoConnection {
|
||||
message: msg.to_string(),
|
||||
}
|
||||
}
|
||||
pub fn no_peer_info(node_id: NodeId) -> Self {
|
||||
Self::NoPeerInfo { node_id }
|
||||
}
|
||||
pub fn internal<T: ToString>(msg: T) -> Self {
|
||||
Self::Internal {
|
||||
message: msg.to_string(),
|
||||
}
|
||||
}
|
||||
pub fn unimplemented<T: ToString>(msg: T) -> Self {
|
||||
Self::Unimplemented {
|
||||
message: msg.to_string(),
|
||||
}
|
||||
}
|
||||
pub fn parse_error<T: ToString, S: ToString>(msg: T, value: S) -> Self {
|
||||
Self::ParseError {
|
||||
message: msg.to_string(),
|
||||
value: value.to_string(),
|
||||
}
|
||||
}
|
||||
pub fn invalid_argument<T: ToString, S: ToString, R: ToString>(
|
||||
context: T,
|
||||
argument: S,
|
||||
value: R,
|
||||
) -> Self {
|
||||
Self::InvalidArgument {
|
||||
context: context.to_string(),
|
||||
argument: argument.to_string(),
|
||||
value: value.to_string(),
|
||||
}
|
||||
}
|
||||
pub fn missing_argument<T: ToString, S: ToString>(context: T, argument: S) -> Self {
|
||||
Self::MissingArgument {
|
||||
context: context.to_string(),
|
||||
argument: argument.to_string(),
|
||||
}
|
||||
}
|
||||
pub fn generic<T: ToString>(msg: T) -> Self {
|
||||
Self::Generic {
|
||||
message: msg.to_string(),
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,5 @@
|
||||
use super::*;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
@ -106,7 +107,7 @@ impl RoutingContext {
|
||||
// Resolve node
|
||||
let mut nr = match rpc_processor.resolve_node(node_id.key).await {
|
||||
Ok(Some(nr)) => nr,
|
||||
Ok(None) => return Err(VeilidAPIError::KeyNotFound { key: node_id.key }),
|
||||
Ok(None) => apibail_key_not_found!(node_id.key),
|
||||
Err(e) => return Err(e.into()),
|
||||
};
|
||||
// Apply sequencing to match safety selection
|
||||
@ -123,7 +124,7 @@ impl RoutingContext {
|
||||
let Some(private_route) = rss
|
||||
.get_remote_private_route(&pr)
|
||||
else {
|
||||
return Err(VeilidAPIError::KeyNotFound { key: pr });
|
||||
apibail_key_not_found!(pr);
|
||||
};
|
||||
|
||||
Ok(rpc_processor::Destination::PrivateRoute {
|
||||
@ -151,15 +152,13 @@ impl RoutingContext {
|
||||
// Send app message
|
||||
let answer = match rpc_processor.rpc_call_app_call(dest, request).await {
|
||||
Ok(NetworkResult::Value(v)) => v,
|
||||
Ok(NetworkResult::Timeout) => return Err(VeilidAPIError::Timeout),
|
||||
Ok(NetworkResult::Timeout) => apibail_timeout!(),
|
||||
Ok(NetworkResult::NoConnection(e)) | Ok(NetworkResult::AlreadyExists(e)) => {
|
||||
return Err(VeilidAPIError::NoConnection {
|
||||
message: e.to_string(),
|
||||
})
|
||||
apibail_no_connection!(e);
|
||||
}
|
||||
|
||||
Ok(NetworkResult::InvalidMessage(message)) => {
|
||||
return Err(VeilidAPIError::Generic { message })
|
||||
apibail_generic!(message);
|
||||
}
|
||||
Err(e) => return Err(e.into()),
|
||||
};
|
||||
@ -181,14 +180,12 @@ impl RoutingContext {
|
||||
// Send app message
|
||||
match rpc_processor.rpc_call_app_message(dest, message).await {
|
||||
Ok(NetworkResult::Value(())) => {}
|
||||
Ok(NetworkResult::Timeout) => return Err(VeilidAPIError::Timeout),
|
||||
Ok(NetworkResult::Timeout) => apibail_timeout!(),
|
||||
Ok(NetworkResult::NoConnection(e)) | Ok(NetworkResult::AlreadyExists(e)) => {
|
||||
return Err(VeilidAPIError::NoConnection {
|
||||
message: e.to_string(),
|
||||
})
|
||||
apibail_no_connection!(e);
|
||||
}
|
||||
Ok(NetworkResult::InvalidMessage(message)) => {
|
||||
return Err(VeilidAPIError::Generic { message })
|
||||
apibail_generic!(message);
|
||||
}
|
||||
Err(e) => return Err(e.into()),
|
||||
};
|
||||
|
2402
veilid-core/src/veilid_api/types.rs
Normal file
2402
veilid-core/src/veilid_api/types.rs
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user