diff --git a/Cargo.lock b/Cargo.lock index e25ea138..b19088bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4281,8 +4281,8 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.60.1", - "windows-interface 0.59.2", + "windows-implement 0.60.2", + "windows-interface 0.59.3", "windows-link", "windows-result 0.3.4", "windows-strings 0.4.2", @@ -4312,9 +4312,9 @@ dependencies = [ [[package]] name = "windows-implement" -version = "0.60.1" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb307e42a74fb6de9bf3a02d9712678b22399c87e6fa869d6dfcd8c1b7754e0" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", @@ -4334,9 +4334,9 @@ dependencies = [ [[package]] name = "windows-interface" -version = "0.59.2" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0abd1ddbc6964ac14db11c7213d6532ef34bd9aa042c2e5935f59d7908b46a5" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", diff --git a/src/ipc/mitmproxy_ipc/mitmproxy_ipc.rs b/src/ipc/mitmproxy_ipc/mitmproxy_ipc.rs new file mode 100644 index 00000000..2f2ac653 --- /dev/null +++ b/src/ipc/mitmproxy_ipc/mitmproxy_ipc.rs @@ -0,0 +1,100 @@ +// @generated +// This file is @generated by prost-build. +// Note: The protobuf definition is shared between the Rust and Swift parts. +// We are not using prost-build because providing protoc is a hassle on many platforms. +// See .github/workflows/autofix.yml for how to update the respective files, +// or file a PR and let CI handle it. + +/// Packet with associated tunnel info (Windows pipe to mitmproxy) +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct PacketWithMeta { + #[prost(bytes="bytes", tag="1")] + pub data: ::prost::bytes::Bytes, + #[prost(message, optional, tag="2")] + pub tunnel_info: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct TunnelInfo { + #[prost(uint32, optional, tag="1")] + pub pid: ::core::option::Option, + #[prost(string, optional, tag="2")] + pub process_name: ::core::option::Option<::prost::alloc::string::String>, +} +/// Packet or intercept spec (Windows pipe to redirector) +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct FromProxy { + #[prost(oneof="from_proxy::Message", tags="1, 2")] + pub message: ::core::option::Option, +} +/// Nested message and enum types in `FromProxy`. +pub mod from_proxy { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum Message { + #[prost(message, tag="1")] + Packet(super::Packet), + #[prost(message, tag="2")] + InterceptConf(super::InterceptConf), + } +} +/// Packet (macOS UDP Stream) +/// ⚠️ Bump network extension version on changes, +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct Packet { + #[prost(bytes="bytes", tag="1")] + pub data: ::prost::bytes::Bytes, +} +/// Intercept conf (macOS Control Stream) +/// ⚠️ Bump network extension version on changes, +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct InterceptConf { + #[prost(string, repeated, tag="1")] + pub actions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +/// New flow (macOS TCP/UDP Stream) +/// ⚠️ Bump network extension version on changes, +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct NewFlow { + #[prost(oneof="new_flow::Message", tags="1, 2")] + pub message: ::core::option::Option, +} +/// Nested message and enum types in `NewFlow`. +pub mod new_flow { + #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)] + pub enum Message { + #[prost(message, tag="1")] + Tcp(super::TcpFlow), + #[prost(message, tag="2")] + Udp(super::UdpFlow), + } +} +/// ⚠️ Bump network extension version on changes, +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct TcpFlow { + #[prost(message, optional, tag="1")] + pub remote_address: ::core::option::Option
, + #[prost(message, optional, tag="2")] + pub tunnel_info: ::core::option::Option, +} +/// ⚠️ Bump network extension version on changes, +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct UdpFlow { + #[prost(message, optional, tag="1")] + pub local_address: ::core::option::Option
, + #[prost(message, optional, tag="3")] + pub tunnel_info: ::core::option::Option, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct UdpPacket { + #[prost(bytes="bytes", tag="1")] + pub data: ::prost::bytes::Bytes, + #[prost(message, optional, tag="2")] + pub remote_address: ::core::option::Option
, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct Address { + #[prost(string, tag="1")] + pub host: ::prost::alloc::string::String, + #[prost(uint32, tag="2")] + pub port: u32, +} +// @@protoc_insertion_point(module)