From 464efbad569a97b3e94d124369590fb3aa53c234 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Thu, 5 Oct 2023 09:52:35 +1100 Subject: [PATCH] refactor(connlib): restructure directory for consistency (#2236) --- .github/workflows/rust.yml | 16 +- docker-compose.yml | 8 +- kotlin/android/app/build.gradle.kts | 4 +- rust/Cargo.lock | 209 +++++++++--------- rust/Cargo.toml | 28 ++- rust/connlib/clients/android/Cargo.toml | 6 +- rust/connlib/clients/android/src/lib.rs | 2 +- rust/connlib/clients/apple/Cargo.toml | 6 +- .../clients/apple/Sources/Connlib/connlib.h | 2 +- rust/connlib/clients/apple/src/lib.rs | 2 +- .../client => clients/shared}/Cargo.toml | 8 +- .../shared}/examples/on_demand_rolling.rs | 2 +- .../client => clients/shared}/src/control.rs | 2 +- .../shared}/src/file_logger.rs | 0 .../client => clients/shared}/src/lib.rs | 12 +- .../client => clients/shared}/src/messages.rs | 6 +- .../gateway => gateway-shared}/Cargo.toml | 6 +- .../gateway => gateway-shared}/src/control.rs | 6 +- .../gateway => gateway-shared}/src/lib.rs | 10 +- .../src/messages.rs | 6 +- .../{libs/common => shared}/Cargo.toml | 2 +- .../{libs/common => shared}/src/callbacks.rs | 0 .../src/callbacks_error_facade.rs | 0 .../{libs/common => shared}/src/control.rs | 0 .../{libs/common => shared}/src/error.rs | 0 .../{libs/common => shared}/src/lib.rs | 0 .../{libs/common => shared}/src/messages.rs | 0 .../common => shared}/src/messages/key.rs | 0 rust/connlib/{libs => }/tunnel/Cargo.toml | 2 +- .../{libs => }/tunnel/src/control_protocol.rs | 2 +- .../tunnel/src/control_protocol/client.rs | 4 +- .../tunnel/src/control_protocol/gateway.rs | 2 +- .../{libs => }/tunnel/src/device_channel.rs | 0 .../src/device_channel/device_channel_unix.rs | 2 +- .../src/device_channel/device_channel_win.rs | 2 +- .../tunnel/src/device_channel/tun.rs | 0 .../src/device_channel/tun/tun_android.rs | 2 +- .../src/device_channel/tun/tun_darwin.rs | 2 +- .../src/device_channel/tun/tun_linux.rs | 2 +- .../src/device_channel/tun/wrapped_socket.rs | 0 rust/connlib/{libs => }/tunnel/src/dns.rs | 2 +- .../{libs => }/tunnel/src/iface_handler.rs | 2 +- rust/connlib/{libs => }/tunnel/src/index.rs | 0 .../{libs => }/tunnel/src/ip_packet.rs | 0 rust/connlib/{libs => }/tunnel/src/lib.rs | 12 +- rust/connlib/{libs => }/tunnel/src/peer.rs | 6 +- .../{libs => }/tunnel/src/peer_handler.rs | 2 +- .../{libs => }/tunnel/src/resource_sender.rs | 2 +- .../{libs => }/tunnel/src/resource_table.rs | 2 +- rust/{connlib => }/gateway/Cargo.toml | 6 +- rust/{connlib => }/gateway/src/main.rs | 2 +- .../headless => headless-client}/Cargo.toml | 6 +- .../headless => headless-client}/src/main.rs | 2 +- rust/{connlib => }/headless-utils/Cargo.toml | 3 +- rust/{connlib => }/headless-utils/src/lib.rs | 0 .../apple/Firezone.xcodeproj/project.pbxproj | 12 +- .../FirezoneNetworkExtension/Adapter.swift | 4 +- .../Connlib.xcfilelist | 4 +- 58 files changed, 214 insertions(+), 216 deletions(-) rename rust/connlib/{libs/client => clients/shared}/Cargo.toml (90%) rename rust/connlib/{libs/client => clients/shared}/examples/on_demand_rolling.rs (94%) rename rust/connlib/{libs/client => clients/shared}/src/control.rs (99%) rename rust/connlib/{libs/client => clients/shared}/src/file_logger.rs (100%) rename rust/connlib/{libs/client => clients/shared}/src/lib.rs (98%) rename rust/connlib/{libs/client => clients/shared}/src/messages.rs (99%) rename rust/connlib/{libs/gateway => gateway-shared}/Cargo.toml (88%) rename rust/connlib/{libs/gateway => gateway-shared}/src/control.rs (98%) rename rust/connlib/{libs/gateway => gateway-shared}/src/lib.rs (98%) rename rust/connlib/{libs/gateway => gateway-shared}/src/messages.rs (98%) rename rust/connlib/{libs/common => shared}/Cargo.toml (98%) rename rust/connlib/{libs/common => shared}/src/callbacks.rs (100%) rename rust/connlib/{libs/common => shared}/src/callbacks_error_facade.rs (100%) rename rust/connlib/{libs/common => shared}/src/control.rs (100%) rename rust/connlib/{libs/common => shared}/src/error.rs (100%) rename rust/connlib/{libs/common => shared}/src/lib.rs (100%) rename rust/connlib/{libs/common => shared}/src/messages.rs (100%) rename rust/connlib/{libs/common => shared}/src/messages/key.rs (100%) rename rust/connlib/{libs => }/tunnel/Cargo.toml (98%) rename rust/connlib/{libs => }/tunnel/src/control_protocol.rs (99%) rename rust/connlib/{libs => }/tunnel/src/control_protocol/client.rs (99%) rename rust/connlib/{libs => }/tunnel/src/control_protocol/gateway.rs (99%) rename rust/connlib/{libs => }/tunnel/src/device_channel.rs (100%) rename rust/connlib/{libs => }/tunnel/src/device_channel/device_channel_unix.rs (95%) rename rust/connlib/{libs => }/tunnel/src/device_channel/device_channel_win.rs (91%) rename rust/connlib/{libs => }/tunnel/src/device_channel/tun.rs (100%) rename rust/connlib/{libs => }/tunnel/src/device_channel/tun/tun_android.rs (98%) rename rust/connlib/{libs => }/tunnel/src/device_channel/tun/tun_darwin.rs (99%) rename rust/connlib/{libs => }/tunnel/src/device_channel/tun/tun_linux.rs (99%) rename rust/connlib/{libs => }/tunnel/src/device_channel/tun/wrapped_socket.rs (100%) rename rust/connlib/{libs => }/tunnel/src/dns.rs (98%) rename rust/connlib/{libs => }/tunnel/src/iface_handler.rs (99%) rename rust/connlib/{libs => }/tunnel/src/index.rs (100%) rename rust/connlib/{libs => }/tunnel/src/ip_packet.rs (100%) rename rust/connlib/{libs => }/tunnel/src/lib.rs (98%) rename rust/connlib/{libs => }/tunnel/src/peer.rs (99%) rename rust/connlib/{libs => }/tunnel/src/peer_handler.rs (99%) rename rust/connlib/{libs => }/tunnel/src/resource_sender.rs (98%) rename rust/connlib/{libs => }/tunnel/src/resource_table.rs (99%) rename rust/{connlib => }/gateway/Cargo.toml (75%) rename rust/{connlib => }/gateway/src/main.rs (92%) rename rust/{connlib/clients/headless => headless-client}/Cargo.toml (76%) rename rust/{connlib/clients/headless => headless-client}/src/main.rs (94%) rename rust/{connlib => }/headless-utils/Cargo.toml (80%) rename rust/{connlib => }/headless-utils/src/lib.rs (100%) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index ea621fddf..1e21d1c93 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -34,19 +34,19 @@ jobs: # TODO: https://github.com/rust-lang/cargo/issues/5220 include: - runs-on: ubuntu-20.04 - packages: -p headless -p gateway + packages: -p firezone-headless-client -p firezone-gateway - runs-on: ubuntu-22.04 - packages: -p headless -p gateway + packages: -p firezone-headless-client -p firezone-gateway - runs-on: macos-11 - packages: -p connlib-apple + packages: -p connlib-client-apple - runs-on: macos-12 - packages: -p connlib-apple + packages: -p connlib-client-apple - runs-on: macos-13 - packages: -p connlib-apple + packages: -p connlib-client-apple - runs-on: windows-2019 - packages: -p firezone-client-connlib + packages: -p connlib-client-shared - runs-on: windows-2022 - packages: -p firezone-client-connlib + packages: -p connlib-client-shared runs-on: ${{ matrix.runs-on }} steps: - uses: actions/checkout@v4 @@ -171,7 +171,7 @@ jobs: contents: read id-token: "write" env: - PACKAGE: gateway + PACKAGE: firezone-gateway REGISTRY: us-east1-docker.pkg.dev GCLOUD_PROJECT: firezone-staging GOOGLE_CLOUD_PROJECT: firezone-staging diff --git a/docker-compose.yml b/docker-compose.yml index 1eb072c37..8b6747d1b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -117,12 +117,12 @@ services: environment: FZ_URL: "ws://api:8081/" FZ_SECRET: "SFMyNTY.g2gDaAN3CGlkZW50aXR5bQAAACQ3ZGE3ZDFjZC0xMTFjLTQ0YTctYjVhYy00MDI3YjlkMjMwZTVtAAAAIBn8Xu1jtFlxZxp4ZvAz0f0QEN2PZThA-7awHMPxn_tHbgYAbLRvQokBYgHhM38.pM-prhb7uvvCVKf51-tAUMEtMzLPZk1n3nLsY44dGFA" - RUST_LOG: headless=trace,firezone_client_connlib=trace,firezone_tunnel=trace,libs_common=trace,warn + RUST_LOG: firezone_headless_client=trace,connlib_client_shared=trace,firezone_tunnel=trace,connlib_shared=trace,warn build: context: rust dockerfile: Dockerfile args: - PACKAGE: headless + PACKAGE: firezone-headless-client image: firezone-headless dns: - 100.100.111.1 @@ -150,13 +150,13 @@ services: environment: FZ_URL: "ws://api:8081/" FZ_SECRET: "SFMyNTY.g2gDaAJtAAAAJDNjZWYwNTY2LWFkZmQtNDhmZS1hMGYxLTU4MDY3OTYwOGY2Zm0AAABAamp0enhSRkpQWkdCYy1vQ1o5RHkyRndqd2FIWE1BVWRwenVScjJzUnJvcHg3NS16bmhfeHBfNWJUNU9uby1yYm4GAEC0b0KJAWIAAVGA.9Oirn9t8rvQpfOhW7hwGBFVzeMm9di0xYGTlwf9cFFk" - RUST_LOG: gateway=trace,firezone_gateway_connlib=trace,firezone_tunnel=trace,libs_common=trace,warn + RUST_LOG: firezone_gateway=trace,connlib_gateway_shared=trace,firezone_tunnel=trace,connlib_shared=trace,warn ENABLE_MASQUERADE: 1 build: context: rust dockerfile: Dockerfile args: - PACKAGE: gateway + PACKAGE: firezone-gateway image: firezone-gateway cap_add: - NET_ADMIN diff --git a/kotlin/android/app/build.gradle.kts b/kotlin/android/app/build.gradle.kts index 1dec0729d..f6c6f3fd9 100644 --- a/kotlin/android/app/build.gradle.kts +++ b/kotlin/android/app/build.gradle.kts @@ -66,7 +66,7 @@ android { buildConfigField("String", "CONTROL_PLANE_URL", "\"wss://api.firez.one/\"") // Docs on filter strings: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html - buildConfigField("String", "CONNLIB_LOG_FILTER_STRING", "\"connlib_android=debug,firezone_tunnel=trace,libs_common=debug,firezone_client_connlib=debug,warn\"") + buildConfigField("String", "CONNLIB_LOG_FILTER_STRING", "\"connlib_client_android=debug,firezone_tunnel=trace,connlib_shared=debug,connlib_client_shared=debug,warn\"") resValue("string", "app_name", "\"Firezone (Dev)\"") } @@ -80,7 +80,7 @@ android { buildConfigField("String", "CONTROL_PLANE_URL", "\"wss://api.firezone.dev/\"") // Docs on filter strings: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html - buildConfigField("String", "CONNLIB_LOG_FILTER_STRING", "\"connlib_android=info,firezone_tunnel=info,libs_common=info,firezone_client_connlib=info,warn\"") + buildConfigField("String", "CONNLIB_LOG_FILTER_STRING", "\"connlib_client_android=info,firezone_tunnel=info,connlib_shared=info,connlib_client_shared=info,warn\"") resValue("string", "app_name", "\"Firezone\"") } diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 20b77a842..557343480 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -752,10 +752,10 @@ dependencies = [ ] [[package]] -name = "connlib-android" +name = "connlib-client-android" version = "1.20231001.0" dependencies = [ - "firezone-client-connlib", + "connlib-client-shared", "ip_network", "jni", "log", @@ -769,12 +769,12 @@ dependencies = [ ] [[package]] -name = "connlib-apple" +name = "connlib-client-apple" version = "1.20231001.0" dependencies = [ "anyhow", + "connlib-client-shared", "diva", - "firezone-client-connlib", "ip_network", "libc", "secrecy", @@ -788,6 +788,89 @@ dependencies = [ "walkdir", ] +[[package]] +name = "connlib-client-shared" +version = "1.20231001.0" +dependencies = [ + "async-trait", + "backoff", + "boringtun", + "chrono", + "connlib-shared", + "firezone-tunnel", + "rand", + "reqwest", + "secrecy", + "serde", + "serde_json", + "time", + "tokio", + "tokio-tungstenite", + "tokio-util", + "tracing", + "tracing-android", + "tracing-appender", + "tracing-stackdriver", + "tracing-subscriber", + "url", + "webrtc", +] + +[[package]] +name = "connlib-gateway-shared" +version = "1.20231001.0" +dependencies = [ + "async-trait", + "backoff", + "boringtun", + "chrono", + "connlib-shared", + "firezone-tunnel", + "rand", + "secrecy", + "serde", + "serde_json", + "tokio", + "tokio-tungstenite", + "tracing", + "url", + "webrtc", +] + +[[package]] +name = "connlib-shared" +version = "1.20231001.0" +dependencies = [ + "base64 0.21.4", + "boringtun", + "chrono", + "futures", + "futures-util", + "ip_network", + "log", + "os_info", + "parking_lot", + "rand", + "rand_core", + "ring 0.17.0", + "rtnetlink", + "secrecy", + "serde", + "serde_json", + "smbios-lib", + "swift-bridge", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tracing", + "tracing-android", + "tracing-appender", + "url", + "uuid", + "webrtc", +] + [[package]] name = "const-oid" version = "0.9.5" @@ -1173,52 +1256,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" [[package]] -name = "firezone-client-connlib" +name = "firezone-gateway" version = "1.20231001.0" dependencies = [ - "async-trait", - "backoff", - "boringtun", - "chrono", - "firezone-tunnel", - "libs-common", - "rand", - "reqwest", + "anyhow", + "clap", + "connlib-gateway-shared", + "headless-utils", "secrecy", - "serde", - "serde_json", - "time", - "tokio", - "tokio-tungstenite", - "tokio-util", "tracing", - "tracing-android", - "tracing-appender", - "tracing-stackdriver", "tracing-subscriber", - "url", - "webrtc", ] [[package]] -name = "firezone-gateway-connlib" +name = "firezone-headless-client" version = "1.20231001.0" dependencies = [ - "async-trait", - "backoff", - "boringtun", - "chrono", - "firezone-tunnel", - "libs-common", - "rand", + "anyhow", + "clap", + "connlib-client-shared", + "headless-utils", "secrecy", - "serde", - "serde_json", - "tokio", - "tokio-tungstenite", "tracing", - "url", - "webrtc", + "tracing-subscriber", ] [[package]] @@ -1229,6 +1289,7 @@ dependencies = [ "boringtun", "bytes", "chrono", + "connlib-shared", "domain", "futures", "futures-util", @@ -1236,7 +1297,6 @@ dependencies = [ "ip_network_table", "itertools 0.11.0", "libc", - "libs-common", "log", "netlink-packet-core", "netlink-packet-route", @@ -1358,19 +1418,6 @@ dependencies = [ "slab", ] -[[package]] -name = "gateway" -version = "1.20231001.0" -dependencies = [ - "anyhow", - "clap", - "firezone-gateway-connlib", - "headless-utils", - "secrecy", - "tracing", - "tracing-subscriber", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -1459,26 +1506,12 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "headless" -version = "1.20231001.0" -dependencies = [ - "anyhow", - "clap", - "firezone-client-connlib", - "headless-utils", - "secrecy", - "tracing", - "tracing-subscriber", -] - [[package]] name = "headless-utils" version = "1.20231001.0" dependencies = [ "clap", "ctrlc", - "firezone-client-connlib", "ip_network", "tracing", "tracing-subscriber", @@ -1877,40 +1910,6 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" -[[package]] -name = "libs-common" -version = "1.20231001.0" -dependencies = [ - "base64 0.21.4", - "boringtun", - "chrono", - "futures", - "futures-util", - "ip_network", - "log", - "os_info", - "parking_lot", - "rand", - "rand_core", - "ring 0.17.0", - "rtnetlink", - "secrecy", - "serde", - "serde_json", - "smbios-lib", - "swift-bridge", - "thiserror", - "tokio", - "tokio-stream", - "tokio-tungstenite", - "tracing", - "tracing-android", - "tracing-appender", - "url", - "uuid", - "webrtc", -] - [[package]] name = "linux-raw-sys" version = "0.4.7" @@ -4265,16 +4264,6 @@ dependencies = [ "untrusted 0.7.1", ] -[[package]] -name = "webpki" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f" -dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", -] - [[package]] name = "webpki-roots" version = "0.25.2" diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 8c9c6f015..18ae24f50 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,16 +1,16 @@ [workspace] members = [ - "relay", - "phoenix-channel", - "connlib/headless-utils", "connlib/clients/android", "connlib/clients/apple", - "connlib/clients/headless", - "connlib/libs/tunnel", - "connlib/libs/client", - "connlib/libs/gateway", - "connlib/libs/common", - "connlib/gateway", + "connlib/clients/shared", + "connlib/gateway-shared", + "connlib/shared", + "connlib/tunnel", + "gateway", + "headless-client", + "headless-utils", + "phoenix-channel", + "relay", ] resolver = "2" @@ -24,6 +24,16 @@ tracing = { version = "0.1.37" } tracing-subscriber = { version = "0.3.17", features = ["parking_lot"] } secrecy = "0.8" +connlib-client-android = { path = "connlib/clients/android"} +connlib-client-apple = { path = "connlib/clients/apple"} +connlib-client-shared = { path = "connlib/clients/shared"} +connlib-gateway-shared = { path = "connlib/gateway-shared"} +firezone-gateway = { path = "gateway"} +firezone-headless-client = { path = "headless-client"} +headless-utils = { path = "headless-utils"} +connlib-shared = { path = "connlib/shared"} +firezone-tunnel = { path = "connlib/tunnel"} + # Patched to use https://github.com/rust-lang/cc-rs/pull/708 # (the `patch` section can't be used for build deps...) [patch.crates-io] diff --git a/rust/connlib/clients/android/Cargo.toml b/rust/connlib/clients/android/Cargo.toml index df3883014..9b79a268e 100644 --- a/rust/connlib/clients/android/Cargo.toml +++ b/rust/connlib/clients/android/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "connlib-android" +name = "connlib-client-android" # mark:automatic-version version = "1.20231001.0" edition = "2021" @@ -10,7 +10,7 @@ crate-type = ["cdylib"] doc = false [features] -mock = ["firezone-client-connlib/mock"] +mock = ["connlib-client-shared/mock"] [dependencies] secrecy = { workspace = true } @@ -18,7 +18,7 @@ tracing-android = "0.2" tracing = { workspace = true, features = ["std", "attributes"] } tracing-subscriber = { workspace = true } tracing-appender = "0.2" -firezone-client-connlib = { path = "../../libs/client" } +connlib-client-shared = { workspace = true } jni = { version = "0.21.1", features = ["invocation"] } ip_network = "0.4" log = "0.4" diff --git a/rust/connlib/clients/android/src/lib.rs b/rust/connlib/clients/android/src/lib.rs index c40329330..6abc259f4 100644 --- a/rust/connlib/clients/android/src/lib.rs +++ b/rust/connlib/clients/android/src/lib.rs @@ -3,7 +3,7 @@ // However, this consideration has made it idiomatic for Java FFI in the Rust // ecosystem, so it's used here for consistency. -use firezone_client_connlib::{file_logger, Callbacks, Error, ResourceDescription, Session}; +use connlib_client_shared::{file_logger, Callbacks, Error, ResourceDescription, Session}; use ip_network::IpNetwork; use jni::{ objects::{GlobalRef, JClass, JObject, JString, JValue}, diff --git a/rust/connlib/clients/apple/Cargo.toml b/rust/connlib/clients/apple/Cargo.toml index 218455013..95e393478 100644 --- a/rust/connlib/clients/apple/Cargo.toml +++ b/rust/connlib/clients/apple/Cargo.toml @@ -1,11 +1,11 @@ [package] -name = "connlib-apple" +name = "connlib-client-apple" # mark:automatic-version version = "1.20231001.0" edition = "2021" [features] -mock = ["firezone-client-connlib/mock"] +mock = ["connlib-client-shared/mock"] [build-dependencies] anyhow = "1.0.75" @@ -18,7 +18,7 @@ secrecy = { workspace = true } ip_network = "0.4" libc = "0.2" swift-bridge = { workspace = true } -firezone-client-connlib = { path = "../../libs/client" } +connlib-client-shared = { workspace = true } serde_json = "1" tracing = { workspace = true } # TODO: https://github.com/Absolucy/tracing-oslog/pull/9 diff --git a/rust/connlib/clients/apple/Sources/Connlib/connlib.h b/rust/connlib/clients/apple/Sources/Connlib/connlib.h index b8be1fa70..4d2afe004 100644 --- a/rust/connlib/clients/apple/Sources/Connlib/connlib.h +++ b/rust/connlib/clients/apple/Sources/Connlib/connlib.h @@ -4,6 +4,6 @@ #define connlib_h #include "Generated/SwiftBridgeCore.h" -#include "Generated/connlib-apple/connlib-apple.h" +#include "Generated/connlib-client-apple/connlib-client-apple.h" #endif diff --git a/rust/connlib/clients/apple/src/lib.rs b/rust/connlib/clients/apple/src/lib.rs index b2eb994c9..996f17818 100644 --- a/rust/connlib/clients/apple/src/lib.rs +++ b/rust/connlib/clients/apple/src/lib.rs @@ -1,7 +1,7 @@ // Swift bridge generated code triggers this below #![allow(clippy::unnecessary_cast, improper_ctypes, non_camel_case_types)] -use firezone_client_connlib::{file_logger, Callbacks, Error, ResourceDescription, Session}; +use connlib_client_shared::{file_logger, Callbacks, Error, ResourceDescription, Session}; use ip_network::IpNetwork; use secrecy::SecretString; use std::{ diff --git a/rust/connlib/libs/client/Cargo.toml b/rust/connlib/clients/shared/Cargo.toml similarity index 90% rename from rust/connlib/libs/client/Cargo.toml rename to rust/connlib/clients/shared/Cargo.toml index b5c663650..a42ac2688 100644 --- a/rust/connlib/libs/client/Cargo.toml +++ b/rust/connlib/clients/shared/Cargo.toml @@ -1,11 +1,11 @@ [package] -name = "firezone-client-connlib" +name = "connlib-client-shared" # mark:automatic-version version = "1.20231001.0" edition = "2021" [features] -mock = ["libs-common/mock"] +mock = ["connlib-shared/mock"] [dependencies] tokio = { version = "1.32", default-features = false, features = ["sync", "rt"] } @@ -16,8 +16,8 @@ tracing-subscriber = { workspace = true, features = ["env-filter"] } tracing-appender = { version = "0.2.2" } tracing-stackdriver = { version = "0.8.0" } async-trait = { version = "0.1", default-features = false } -libs-common = { path = "../common" } -firezone-tunnel = { path = "../tunnel" } +connlib-shared = { workspace = true } +firezone-tunnel = { workspace = true } serde = { version = "1.0", default-features = false, features = ["std", "derive"] } boringtun = { workspace = true } backoff = { workspace = true } diff --git a/rust/connlib/libs/client/examples/on_demand_rolling.rs b/rust/connlib/clients/shared/examples/on_demand_rolling.rs similarity index 94% rename from rust/connlib/libs/client/examples/on_demand_rolling.rs rename to rust/connlib/clients/shared/examples/on_demand_rolling.rs index b5f394adc..0f1aeb627 100644 --- a/rust/connlib/libs/client/examples/on_demand_rolling.rs +++ b/rust/connlib/clients/shared/examples/on_demand_rolling.rs @@ -1,4 +1,4 @@ -use firezone_client_connlib::file_logger; +use connlib_client_shared::file_logger; use std::path::Path; use std::time::Duration; use tracing_subscriber::layer::SubscriberExt; diff --git a/rust/connlib/libs/client/src/control.rs b/rust/connlib/clients/shared/src/control.rs similarity index 99% rename from rust/connlib/libs/client/src/control.rs rename to rust/connlib/clients/shared/src/control.rs index 3dd06d1a1..8b02445e5 100644 --- a/rust/connlib/libs/client/src/control.rs +++ b/rust/connlib/clients/shared/src/control.rs @@ -5,7 +5,7 @@ use crate::messages::{ BroadcastGatewayIceCandidates, Connect, ConnectionDetails, EgressMessages, GatewayIceCandidates, InitClient, Messages, }; -use libs_common::{ +use connlib_shared::{ control::{ErrorInfo, ErrorReply, PhoenixSenderWithTopic, Reference}, messages::{GatewayId, ResourceDescription, ResourceId}, Callbacks, diff --git a/rust/connlib/libs/client/src/file_logger.rs b/rust/connlib/clients/shared/src/file_logger.rs similarity index 100% rename from rust/connlib/libs/client/src/file_logger.rs rename to rust/connlib/clients/shared/src/file_logger.rs diff --git a/rust/connlib/libs/client/src/lib.rs b/rust/connlib/clients/shared/src/lib.rs similarity index 98% rename from rust/connlib/libs/client/src/lib.rs rename to rust/connlib/clients/shared/src/lib.rs index 781d9527b..6f65d0236 100644 --- a/rust/connlib/libs/client/src/lib.rs +++ b/rust/connlib/clients/shared/src/lib.rs @@ -1,17 +1,17 @@ //! Main connlib library for clients. -pub use libs_common::{get_device_id, messages::ResourceDescription}; -pub use libs_common::{Callbacks, Error}; +pub use connlib_shared::{get_device_id, messages::ResourceDescription}; +pub use connlib_shared::{Callbacks, Error}; pub use tracing_appender::non_blocking::WorkerGuard; use crate::control::ControlSignaler; use backoff::{backoff::Backoff, ExponentialBackoffBuilder}; use boringtun::x25519::{PublicKey, StaticSecret}; -use control::ControlPlane; -use firezone_tunnel::Tunnel; -use libs_common::control::SecureUrl; -use libs_common::{ +use connlib_shared::control::SecureUrl; +use connlib_shared::{ control::PhoenixChannel, get_websocket_path, messages::Key, sha256, CallbackErrorFacade, Result, }; +use control::ControlPlane; +use firezone_tunnel::Tunnel; use messages::IngressMessages; use messages::Messages; use messages::ReplyMessages; diff --git a/rust/connlib/libs/client/src/messages.rs b/rust/connlib/clients/shared/src/messages.rs similarity index 99% rename from rust/connlib/libs/client/src/messages.rs rename to rust/connlib/clients/shared/src/messages.rs index f6439a7a2..89225ac31 100644 --- a/rust/connlib/libs/client/src/messages.rs +++ b/rust/connlib/clients/shared/src/messages.rs @@ -3,7 +3,7 @@ use std::net::IpAddr; use firezone_tunnel::RTCSessionDescription; use serde::{Deserialize, Serialize}; -use libs_common::messages::{ +use connlib_shared::messages::{ GatewayId, Interface, Key, Relay, RequestConnection, ResourceDescription, ResourceId, ReuseConnection, }; @@ -151,7 +151,7 @@ pub enum EgressMessages { #[cfg(test)] mod test { - use libs_common::{ + use connlib_shared::{ control::PhoenixMessage, messages::{ Interface, Relay, ResourceDescription, ResourceDescriptionCidr, ResourceDescriptionDns, @@ -160,7 +160,7 @@ mod test { }; use chrono::NaiveDateTime; - use libs_common::control::ErrorInfo; + use connlib_shared::control::ErrorInfo; use crate::messages::{ConnectionDetails, EgressMessages, ReplyMessages}; diff --git a/rust/connlib/libs/gateway/Cargo.toml b/rust/connlib/gateway-shared/Cargo.toml similarity index 88% rename from rust/connlib/libs/gateway/Cargo.toml rename to rust/connlib/gateway-shared/Cargo.toml index 9d930b228..ff1eec0b8 100644 --- a/rust/connlib/libs/gateway/Cargo.toml +++ b/rust/connlib/gateway-shared/Cargo.toml @@ -1,14 +1,14 @@ [package] -name = "firezone-gateway-connlib" +name = "connlib-gateway-shared" # mark:automatic-version version = "1.20231001.0" edition = "2021" [dependencies] secrecy = { workspace = true } -libs-common = { path = "../common" } +connlib-shared = { workspace = true } async-trait = { version = "0.1", default-features = false } -firezone-tunnel = { path = "../tunnel" } +firezone-tunnel = { workspace = true } tokio = { version = "1.32", default-features = false, features = ["sync"] } tracing = { workspace = true } serde = { version = "1.0", default-features = false, features = ["std", "derive"] } diff --git a/rust/connlib/libs/gateway/src/control.rs b/rust/connlib/gateway-shared/src/control.rs similarity index 98% rename from rust/connlib/libs/gateway/src/control.rs rename to rust/connlib/gateway-shared/src/control.rs index e02d121fd..49534e959 100644 --- a/rust/connlib/libs/gateway/src/control.rs +++ b/rust/connlib/gateway-shared/src/control.rs @@ -3,13 +3,13 @@ use super::messages::{ }; use crate::messages::{AllowAccess, BroadcastClientIceCandidates, ClientIceCandidates}; use async_trait::async_trait; -use firezone_tunnel::{ConnId, ControlSignal, Tunnel}; -use libs_common::Error::ControlProtocolError; -use libs_common::{ +use connlib_shared::Error::ControlProtocolError; +use connlib_shared::{ control::PhoenixSenderWithTopic, messages::{GatewayId, ResourceDescription}, Callbacks, Result, }; +use firezone_tunnel::{ConnId, ControlSignal, Tunnel}; use std::sync::Arc; use webrtc::ice_transport::ice_candidate::RTCIceCandidate; diff --git a/rust/connlib/libs/gateway/src/lib.rs b/rust/connlib/gateway-shared/src/lib.rs similarity index 98% rename from rust/connlib/libs/gateway/src/lib.rs rename to rust/connlib/gateway-shared/src/lib.rs index 24ad323ff..59be0ac86 100644 --- a/rust/connlib/libs/gateway/src/lib.rs +++ b/rust/connlib/gateway-shared/src/lib.rs @@ -1,15 +1,15 @@ //! Main connlib library for gateway. -pub use libs_common::{get_device_id, messages::ResourceDescription, Callbacks, Error}; +pub use connlib_shared::{get_device_id, messages::ResourceDescription, Callbacks, Error}; use crate::control::ControlSignaler; use backoff::{backoff::Backoff, ExponentialBackoffBuilder}; use boringtun::x25519::{PublicKey, StaticSecret}; -use control::ControlPlane; -use firezone_tunnel::Tunnel; -use libs_common::control::SecureUrl; -use libs_common::{ +use connlib_shared::control::SecureUrl; +use connlib_shared::{ control::PhoenixChannel, get_websocket_path, messages::Key, sha256, CallbackErrorFacade, Result, }; +use control::ControlPlane; +use firezone_tunnel::Tunnel; use messages::IngressMessages; use rand::{distributions::Alphanumeric, thread_rng, Rng}; use secrecy::{Secret, SecretString}; diff --git a/rust/connlib/libs/gateway/src/messages.rs b/rust/connlib/gateway-shared/src/messages.rs similarity index 98% rename from rust/connlib/libs/gateway/src/messages.rs rename to rust/connlib/gateway-shared/src/messages.rs index a7aafa5f3..bd48ffee4 100644 --- a/rust/connlib/libs/gateway/src/messages.rs +++ b/rust/connlib/gateway-shared/src/messages.rs @@ -1,10 +1,10 @@ use std::net::IpAddr; use chrono::{serde::ts_seconds, DateTime, Utc}; -use firezone_tunnel::RTCSessionDescription; -use libs_common::messages::{ +use connlib_shared::messages::{ ActorId, ClientId, Interface, Peer, Relay, ResourceDescription, ResourceId, }; +use firezone_tunnel::RTCSessionDescription; use serde::{Deserialize, Serialize}; use webrtc::ice_transport::ice_candidate::RTCIceCandidateInit; @@ -134,7 +134,7 @@ pub struct ConnectionReady { #[cfg(test)] mod test { - use libs_common::{control::PhoenixMessage, messages::Interface}; + use connlib_shared::{control::PhoenixMessage, messages::Interface}; use super::{IngressMessages, InitGateway}; diff --git a/rust/connlib/libs/common/Cargo.toml b/rust/connlib/shared/Cargo.toml similarity index 98% rename from rust/connlib/libs/common/Cargo.toml rename to rust/connlib/shared/Cargo.toml index 420e49fbb..5683faafe 100644 --- a/rust/connlib/libs/common/Cargo.toml +++ b/rust/connlib/shared/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "libs-common" +name = "connlib-shared" # mark:automatic-version version = "1.20231001.0" edition = "2021" diff --git a/rust/connlib/libs/common/src/callbacks.rs b/rust/connlib/shared/src/callbacks.rs similarity index 100% rename from rust/connlib/libs/common/src/callbacks.rs rename to rust/connlib/shared/src/callbacks.rs diff --git a/rust/connlib/libs/common/src/callbacks_error_facade.rs b/rust/connlib/shared/src/callbacks_error_facade.rs similarity index 100% rename from rust/connlib/libs/common/src/callbacks_error_facade.rs rename to rust/connlib/shared/src/callbacks_error_facade.rs diff --git a/rust/connlib/libs/common/src/control.rs b/rust/connlib/shared/src/control.rs similarity index 100% rename from rust/connlib/libs/common/src/control.rs rename to rust/connlib/shared/src/control.rs diff --git a/rust/connlib/libs/common/src/error.rs b/rust/connlib/shared/src/error.rs similarity index 100% rename from rust/connlib/libs/common/src/error.rs rename to rust/connlib/shared/src/error.rs diff --git a/rust/connlib/libs/common/src/lib.rs b/rust/connlib/shared/src/lib.rs similarity index 100% rename from rust/connlib/libs/common/src/lib.rs rename to rust/connlib/shared/src/lib.rs diff --git a/rust/connlib/libs/common/src/messages.rs b/rust/connlib/shared/src/messages.rs similarity index 100% rename from rust/connlib/libs/common/src/messages.rs rename to rust/connlib/shared/src/messages.rs diff --git a/rust/connlib/libs/common/src/messages/key.rs b/rust/connlib/shared/src/messages/key.rs similarity index 100% rename from rust/connlib/libs/common/src/messages/key.rs rename to rust/connlib/shared/src/messages/key.rs diff --git a/rust/connlib/libs/tunnel/Cargo.toml b/rust/connlib/tunnel/Cargo.toml similarity index 98% rename from rust/connlib/libs/tunnel/Cargo.toml rename to rust/connlib/tunnel/Cargo.toml index 6c24086e7..7c6e17608 100644 --- a/rust/connlib/libs/tunnel/Cargo.toml +++ b/rust/connlib/tunnel/Cargo.toml @@ -17,7 +17,7 @@ tracing = { workspace = true } parking_lot = { version = "0.12", default-features = false } bytes = { version = "1.4", default-features = false, features = ["std"] } itertools = { version = "0.11", default-features = false, features = ["use_std"] } -libs-common = { path = "../common" } +connlib-shared = { workspace = true } libc = { version = "0.2", default-features = false, features = ["std", "const-extern-fn", "extra_traits"] } ip_network = { version = "0.4", default-features = false } ip_network_table = { version = "0.2", default-features = false } diff --git a/rust/connlib/libs/tunnel/src/control_protocol.rs b/rust/connlib/tunnel/src/control_protocol.rs similarity index 99% rename from rust/connlib/libs/tunnel/src/control_protocol.rs rename to rust/connlib/tunnel/src/control_protocol.rs index d1dd32aa9..797ce02c5 100644 --- a/rust/connlib/libs/tunnel/src/control_protocol.rs +++ b/rust/connlib/tunnel/src/control_protocol.rs @@ -4,7 +4,7 @@ use secrecy::ExposeSecret; use std::sync::Arc; use tracing::instrument; -use libs_common::{ +use connlib_shared::{ messages::{Relay, RequestConnection, ResourceDescription, ReuseConnection}, Callbacks, Error, Result, }; diff --git a/rust/connlib/libs/tunnel/src/control_protocol/client.rs b/rust/connlib/tunnel/src/control_protocol/client.rs similarity index 99% rename from rust/connlib/libs/tunnel/src/control_protocol/client.rs rename to rust/connlib/tunnel/src/control_protocol/client.rs index 929503f38..151d482e4 100644 --- a/rust/connlib/libs/tunnel/src/control_protocol/client.rs +++ b/rust/connlib/tunnel/src/control_protocol/client.rs @@ -2,8 +2,8 @@ use std::sync::Arc; use boringtun::x25519::{PublicKey, StaticSecret}; use chrono::{DateTime, Utc}; -use libs_common::messages::SecretKey; -use libs_common::{ +use connlib_shared::messages::SecretKey; +use connlib_shared::{ control::Reference, messages::{ ClientId, GatewayId, Key, Relay, RequestConnection, ResourceDescription, ResourceId, diff --git a/rust/connlib/libs/tunnel/src/control_protocol/gateway.rs b/rust/connlib/tunnel/src/control_protocol/gateway.rs similarity index 99% rename from rust/connlib/libs/tunnel/src/control_protocol/gateway.rs rename to rust/connlib/tunnel/src/control_protocol/gateway.rs index 233fe7db5..afe898442 100644 --- a/rust/connlib/libs/tunnel/src/control_protocol/gateway.rs +++ b/rust/connlib/tunnel/src/control_protocol/gateway.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use chrono::{DateTime, Utc}; -use libs_common::{ +use connlib_shared::{ messages::{ClientId, Relay, ResourceDescription}, Callbacks, Error, Result, }; diff --git a/rust/connlib/libs/tunnel/src/device_channel.rs b/rust/connlib/tunnel/src/device_channel.rs similarity index 100% rename from rust/connlib/libs/tunnel/src/device_channel.rs rename to rust/connlib/tunnel/src/device_channel.rs diff --git a/rust/connlib/libs/tunnel/src/device_channel/device_channel_unix.rs b/rust/connlib/tunnel/src/device_channel/device_channel_unix.rs similarity index 95% rename from rust/connlib/libs/tunnel/src/device_channel/device_channel_unix.rs rename to rust/connlib/tunnel/src/device_channel/device_channel_unix.rs index fdf04f788..e3598e6f6 100644 --- a/rust/connlib/libs/tunnel/src/device_channel/device_channel_unix.rs +++ b/rust/connlib/tunnel/src/device_channel/device_channel_unix.rs @@ -3,8 +3,8 @@ use std::sync::{ Arc, }; +use connlib_shared::{messages::Interface, CallbackErrorFacade, Callbacks, Result}; use ip_network::IpNetwork; -use libs_common::{messages::Interface, CallbackErrorFacade, Callbacks, Result}; use tokio::io::{unix::AsyncFd, Interest}; use tun::{IfaceDevice, IfaceStream}; diff --git a/rust/connlib/libs/tunnel/src/device_channel/device_channel_win.rs b/rust/connlib/tunnel/src/device_channel/device_channel_win.rs similarity index 91% rename from rust/connlib/libs/tunnel/src/device_channel/device_channel_win.rs rename to rust/connlib/tunnel/src/device_channel/device_channel_win.rs index 07b19a311..d61eac66a 100644 --- a/rust/connlib/libs/tunnel/src/device_channel/device_channel_win.rs +++ b/rust/connlib/tunnel/src/device_channel/device_channel_win.rs @@ -1,5 +1,5 @@ +use connlib_shared::{messages::Interface, CallbackErrorFacade, Callbacks, Result}; use ip_network::IpNetwork; -use libs_common::{messages::Interface, CallbackErrorFacade, Callbacks, Result}; #[derive(Clone)] pub(crate) struct DeviceIo; diff --git a/rust/connlib/libs/tunnel/src/device_channel/tun.rs b/rust/connlib/tunnel/src/device_channel/tun.rs similarity index 100% rename from rust/connlib/libs/tunnel/src/device_channel/tun.rs rename to rust/connlib/tunnel/src/device_channel/tun.rs diff --git a/rust/connlib/libs/tunnel/src/device_channel/tun/tun_android.rs b/rust/connlib/tunnel/src/device_channel/tun/tun_android.rs similarity index 98% rename from rust/connlib/libs/tunnel/src/device_channel/tun/tun_android.rs rename to rust/connlib/tunnel/src/device_channel/tun/tun_android.rs index 5acde6b13..753269045 100644 --- a/rust/connlib/libs/tunnel/src/device_channel/tun/tun_android.rs +++ b/rust/connlib/tunnel/src/device_channel/tun/tun_android.rs @@ -1,10 +1,10 @@ use crate::InterfaceConfig; +use connlib_shared::{CallbackErrorFacade, Callbacks, Error, Result, DNS_SENTINEL}; use ip_network::IpNetwork; use libc::{ close, ioctl, read, sockaddr, sockaddr_in, write, AF_INET, IFNAMSIZ, IPPROTO_IP, SIOCGIFMTU, SOCK_STREAM, }; -use libs_common::{CallbackErrorFacade, Callbacks, Error, Result, DNS_SENTINEL}; use std::{ ffi::{c_int, c_short, c_uchar}, io, diff --git a/rust/connlib/libs/tunnel/src/device_channel/tun/tun_darwin.rs b/rust/connlib/tunnel/src/device_channel/tun/tun_darwin.rs similarity index 99% rename from rust/connlib/libs/tunnel/src/device_channel/tun/tun_darwin.rs rename to rust/connlib/tunnel/src/device_channel/tun/tun_darwin.rs index 92a18dad9..c2775a23b 100644 --- a/rust/connlib/libs/tunnel/src/device_channel/tun/tun_darwin.rs +++ b/rust/connlib/tunnel/src/device_channel/tun/tun_darwin.rs @@ -1,10 +1,10 @@ +use connlib_shared::{CallbackErrorFacade, Callbacks, Error, Result, DNS_SENTINEL}; use ip_network::IpNetwork; use libc::{ ctl_info, fcntl, getpeername, getsockopt, ioctl, iovec, msghdr, recvmsg, sendmsg, sockaddr, sockaddr_ctl, sockaddr_in, socklen_t, AF_INET, AF_INET6, AF_SYSTEM, CTLIOCGINFO, F_GETFL, F_SETFL, IF_NAMESIZE, IPPROTO_IP, O_NONBLOCK, SOCK_STREAM, SYSPROTO_CONTROL, UTUN_OPT_IFNAME, }; -use libs_common::{CallbackErrorFacade, Callbacks, Error, Result, DNS_SENTINEL}; use std::{ ffi::{c_int, c_short, c_uchar}, io, diff --git a/rust/connlib/libs/tunnel/src/device_channel/tun/tun_linux.rs b/rust/connlib/tunnel/src/device_channel/tun/tun_linux.rs similarity index 99% rename from rust/connlib/libs/tunnel/src/device_channel/tun/tun_linux.rs rename to rust/connlib/tunnel/src/device_channel/tun/tun_linux.rs index 01dfcc871..c525f04d5 100644 --- a/rust/connlib/libs/tunnel/src/device_channel/tun/tun_linux.rs +++ b/rust/connlib/tunnel/src/device_channel/tun/tun_linux.rs @@ -1,10 +1,10 @@ +use connlib_shared::{CallbackErrorFacade, Callbacks, Error, Result}; use futures::TryStreamExt; use ip_network::IpNetwork; use libc::{ close, fcntl, ioctl, open, read, sockaddr, sockaddr_in, write, F_GETFL, F_SETFL, IFF_MULTI_QUEUE, IFF_NO_PI, IFF_TUN, IFNAMSIZ, O_NONBLOCK, O_RDWR, }; -use libs_common::{CallbackErrorFacade, Callbacks, Error, Result}; use netlink_packet_route::{rtnl::link::nlas::Nla, RT_SCOPE_UNIVERSE}; use rtnetlink::{new_connection, Handle}; use std::{ diff --git a/rust/connlib/libs/tunnel/src/device_channel/tun/wrapped_socket.rs b/rust/connlib/tunnel/src/device_channel/tun/wrapped_socket.rs similarity index 100% rename from rust/connlib/libs/tunnel/src/device_channel/tun/wrapped_socket.rs rename to rust/connlib/tunnel/src/device_channel/tun/wrapped_socket.rs diff --git a/rust/connlib/libs/tunnel/src/dns.rs b/rust/connlib/tunnel/src/dns.rs similarity index 98% rename from rust/connlib/libs/tunnel/src/dns.rs rename to rust/connlib/tunnel/src/dns.rs index 8514eadc2..7b802833d 100644 --- a/rust/connlib/libs/tunnel/src/dns.rs +++ b/rust/connlib/tunnel/src/dns.rs @@ -4,11 +4,11 @@ use crate::{ ip_packet::{to_dns, IpPacket, MutableIpPacket, Version}, ControlSignal, Tunnel, }; +use connlib_shared::{messages::ResourceDescription, Callbacks, DNS_SENTINEL}; use domain::base::{ iana::{Class, Rcode, Rtype}, Dname, Message, MessageBuilder, ParsedDname, ToDname, }; -use libs_common::{messages::ResourceDescription, Callbacks, DNS_SENTINEL}; use pnet_packet::{udp::MutableUdpPacket, MutablePacket, Packet as UdpPacket, PacketSize}; const DNS_TTL: u32 = 300; diff --git a/rust/connlib/libs/tunnel/src/iface_handler.rs b/rust/connlib/tunnel/src/iface_handler.rs similarity index 99% rename from rust/connlib/libs/tunnel/src/iface_handler.rs rename to rust/connlib/tunnel/src/iface_handler.rs index 26530f290..1b2d71c69 100644 --- a/rust/connlib/libs/tunnel/src/iface_handler.rs +++ b/rust/connlib/tunnel/src/iface_handler.rs @@ -2,7 +2,7 @@ use std::{net::IpAddr, sync::Arc, time::Duration}; use boringtun::noise::{errors::WireGuardError, Tunn, TunnResult}; use bytes::Bytes; -use libs_common::{Callbacks, Error, Result}; +use connlib_shared::{Callbacks, Error, Result}; use crate::{ device_channel::{DeviceIo, IfaceConfig}, diff --git a/rust/connlib/libs/tunnel/src/index.rs b/rust/connlib/tunnel/src/index.rs similarity index 100% rename from rust/connlib/libs/tunnel/src/index.rs rename to rust/connlib/tunnel/src/index.rs diff --git a/rust/connlib/libs/tunnel/src/ip_packet.rs b/rust/connlib/tunnel/src/ip_packet.rs similarity index 100% rename from rust/connlib/libs/tunnel/src/ip_packet.rs rename to rust/connlib/tunnel/src/ip_packet.rs diff --git a/rust/connlib/libs/tunnel/src/lib.rs b/rust/connlib/tunnel/src/lib.rs similarity index 98% rename from rust/connlib/libs/tunnel/src/lib.rs rename to rust/connlib/tunnel/src/lib.rs index dc0099c1f..14676129d 100644 --- a/rust/connlib/libs/tunnel/src/lib.rs +++ b/rust/connlib/tunnel/src/lib.rs @@ -8,9 +8,9 @@ use boringtun::{ }; use bytes::Bytes; +use connlib_shared::{messages::Key, CallbackErrorFacade, Callbacks, Error, DNS_SENTINEL}; use ip_network::IpNetwork; use ip_network_table::IpNetworkTable; -use libs_common::{messages::Key, CallbackErrorFacade, Callbacks, Error, DNS_SENTINEL}; use serde::{Deserialize, Serialize}; use async_trait::async_trait; @@ -31,7 +31,7 @@ use webrtc::{ use std::{collections::HashMap, net::IpAddr, sync::Arc, time::Duration}; -use libs_common::{ +use connlib_shared::{ messages::{ ClientId, GatewayId, Interface as InterfaceConfig, ResourceDescription, ResourceId, }, @@ -43,8 +43,8 @@ use device_channel::{create_iface, DeviceIo, IfaceConfig}; pub use control_protocol::Request; pub use webrtc::peer_connection::sdp::session_description::RTCSessionDescription; +use connlib_shared::messages::SecretKey; use index::IndexLfsr; -use libs_common::messages::SecretKey; mod control_protocol; mod device_channel; @@ -91,7 +91,7 @@ impl From for ConnId { } /// Represent's the tunnel actual peer's config -/// Obtained from libs_common's Peer +/// Obtained from connlib_shared's Peer #[derive(Clone)] pub struct PeerConfig { pub(crate) persistent_keepalive: Option, @@ -100,8 +100,8 @@ pub struct PeerConfig { pub(crate) preshared_key: SecretKey, } -impl From for PeerConfig { - fn from(value: libs_common::messages::Peer) -> Self { +impl From for PeerConfig { + fn from(value: connlib_shared::messages::Peer) -> Self { Self { persistent_keepalive: value.persistent_keepalive, public_key: value.public_key.0.into(), diff --git a/rust/connlib/libs/tunnel/src/peer.rs b/rust/connlib/tunnel/src/peer.rs similarity index 99% rename from rust/connlib/libs/tunnel/src/peer.rs rename to rust/connlib/tunnel/src/peer.rs index 57c691de6..9df880108 100644 --- a/rust/connlib/libs/tunnel/src/peer.rs +++ b/rust/connlib/tunnel/src/peer.rs @@ -3,12 +3,12 @@ use std::{collections::HashMap, net::IpAddr, sync::Arc}; use boringtun::noise::{Tunn, TunnResult}; use bytes::Bytes; use chrono::{DateTime, Utc}; -use ip_network::IpNetwork; -use ip_network_table::IpNetworkTable; -use libs_common::{ +use connlib_shared::{ messages::{ResourceDescription, ResourceId}, Callbacks, Error, Result, }; +use ip_network::IpNetwork; +use ip_network_table::IpNetworkTable; use parking_lot::{Mutex, RwLock}; use webrtc::data::data_channel::DataChannel; diff --git a/rust/connlib/libs/tunnel/src/peer_handler.rs b/rust/connlib/tunnel/src/peer_handler.rs similarity index 99% rename from rust/connlib/libs/tunnel/src/peer_handler.rs rename to rust/connlib/tunnel/src/peer_handler.rs index 921036ee0..2fdd6f703 100644 --- a/rust/connlib/libs/tunnel/src/peer_handler.rs +++ b/rust/connlib/tunnel/src/peer_handler.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use boringtun::noise::{handshake::parse_handshake_anon, Packet, TunnResult}; use bytes::Bytes; -use libs_common::{Callbacks, Error, Result}; +use connlib_shared::{Callbacks, Error, Result}; use crate::{ device_channel::DeviceIo, index::check_packet_index, peer::Peer, ControlSignal, Tunnel, diff --git a/rust/connlib/libs/tunnel/src/resource_sender.rs b/rust/connlib/tunnel/src/resource_sender.rs similarity index 98% rename from rust/connlib/libs/tunnel/src/resource_sender.rs rename to rust/connlib/tunnel/src/resource_sender.rs index 3c3432ed1..13a4d6749 100644 --- a/rust/connlib/libs/tunnel/src/resource_sender.rs +++ b/rust/connlib/tunnel/src/resource_sender.rs @@ -7,7 +7,7 @@ use crate::{ device_channel::DeviceIo, ip_packet::MutableIpPacket, peer::Peer, ControlSignal, Tunnel, }; -use libs_common::{messages::ResourceDescription, Callbacks, Error, Result}; +use connlib_shared::{messages::ResourceDescription, Callbacks, Error, Result}; impl Tunnel where diff --git a/rust/connlib/libs/tunnel/src/resource_table.rs b/rust/connlib/tunnel/src/resource_table.rs similarity index 99% rename from rust/connlib/libs/tunnel/src/resource_table.rs rename to rust/connlib/tunnel/src/resource_table.rs index 4a0867099..625b10103 100644 --- a/rust/connlib/libs/tunnel/src/resource_table.rs +++ b/rust/connlib/tunnel/src/resource_table.rs @@ -2,9 +2,9 @@ use std::{collections::HashMap, net::IpAddr, rc::Rc}; use chrono::{DateTime, Utc}; +use connlib_shared::messages::{ResourceDescription, ResourceId}; use ip_network::IpNetwork; use ip_network_table::IpNetworkTable; -use libs_common::messages::{ResourceDescription, ResourceId}; pub(crate) trait Resource { fn description(&self) -> &ResourceDescription; diff --git a/rust/connlib/gateway/Cargo.toml b/rust/gateway/Cargo.toml similarity index 75% rename from rust/connlib/gateway/Cargo.toml rename to rust/gateway/Cargo.toml index 8d1db989f..ec1257230 100644 --- a/rust/connlib/gateway/Cargo.toml +++ b/rust/gateway/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "gateway" +name = "firezone-gateway" # mark:automatic-version version = "1.20231001.0" edition = "2021" @@ -8,8 +8,8 @@ edition = "2021" [dependencies] secrecy = { workspace = true } -firezone-gateway-connlib = { path = "../libs/gateway" } -headless-utils = { path = "../headless-utils" } +connlib-gateway-shared = { workspace = true } +headless-utils = { workspace = true } anyhow = { version = "1.0" } tracing = { workspace = true } clap = { version = "4.3", features = ["derive", "env"] } diff --git a/rust/connlib/gateway/src/main.rs b/rust/gateway/src/main.rs similarity index 92% rename from rust/connlib/gateway/src/main.rs rename to rust/gateway/src/main.rs index 0459758bd..ad51d5959 100644 --- a/rust/connlib/gateway/src/main.rs +++ b/rust/gateway/src/main.rs @@ -1,6 +1,6 @@ use anyhow::Result; use clap::Parser; -use firezone_gateway_connlib::{get_device_id, Callbacks, Session}; +use connlib_gateway_shared::{get_device_id, Callbacks, Session}; use headless_utils::{block_on_ctrl_c, setup_global_subscriber, CommonArgs}; use secrecy::SecretString; use tracing_subscriber::layer; diff --git a/rust/connlib/clients/headless/Cargo.toml b/rust/headless-client/Cargo.toml similarity index 76% rename from rust/connlib/clients/headless/Cargo.toml rename to rust/headless-client/Cargo.toml index 3bbf0e33c..d9c7b5e61 100644 --- a/rust/connlib/clients/headless/Cargo.toml +++ b/rust/headless-client/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "headless" +name = "firezone-headless-client" # mark:automatic-version version = "1.20231001.0" edition = "2021" @@ -8,8 +8,8 @@ edition = "2021" [dependencies] secrecy = { workspace = true } -firezone-client-connlib = { path = "../../libs/client" } -headless-utils = { path = "../../headless-utils" } +connlib-client-shared = { workspace = true } +headless-utils = { workspace = true } anyhow = { version = "1.0" } tracing = { workspace = true } clap = { version = "4.4", features = ["derive", "env"] } diff --git a/rust/connlib/clients/headless/src/main.rs b/rust/headless-client/src/main.rs similarity index 94% rename from rust/connlib/clients/headless/src/main.rs rename to rust/headless-client/src/main.rs index 2aff44aec..5db84bb38 100644 --- a/rust/connlib/clients/headless/src/main.rs +++ b/rust/headless-client/src/main.rs @@ -1,6 +1,6 @@ use anyhow::Result; use clap::Parser; -use firezone_client_connlib::{file_logger, get_device_id, Callbacks, Error, Session}; +use connlib_client_shared::{file_logger, get_device_id, Callbacks, Error, Session}; use headless_utils::{block_on_ctrl_c, setup_global_subscriber, CommonArgs}; use secrecy::SecretString; use std::path::PathBuf; diff --git a/rust/connlib/headless-utils/Cargo.toml b/rust/headless-utils/Cargo.toml similarity index 80% rename from rust/connlib/headless-utils/Cargo.toml rename to rust/headless-utils/Cargo.toml index 56c0df665..8ef609f9e 100644 --- a/rust/connlib/headless-utils/Cargo.toml +++ b/rust/headless-utils/Cargo.toml @@ -7,10 +7,9 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -firezone-client-connlib = { path = "../libs/client" } ip_network = "0.4" url = { version = "2.3.1", default-features = false } -tracing-subscriber = { workspace = true } +tracing-subscriber = { workspace = true, features = ["env-filter"] } tracing = { workspace = true } clap = { version = "4.3", features = ["derive", "env"] } ctrlc = "3.4" diff --git a/rust/connlib/headless-utils/src/lib.rs b/rust/headless-utils/src/lib.rs similarity index 100% rename from rust/connlib/headless-utils/src/lib.rs rename to rust/headless-utils/src/lib.rs diff --git a/swift/apple/Firezone.xcodeproj/project.pbxproj b/swift/apple/Firezone.xcodeproj/project.pbxproj index a42d143d6..b83da9bfa 100644 --- a/swift/apple/Firezone.xcodeproj/project.pbxproj +++ b/swift/apple/Firezone.xcodeproj/project.pbxproj @@ -22,8 +22,8 @@ 6FE4550A2A5D110D006549B1 /* CallbackHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE455082A5D110D006549B1 /* CallbackHandler.swift */; }; 6FE4550C2A5D111E006549B1 /* SwiftBridgeCore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE4550B2A5D111D006549B1 /* SwiftBridgeCore.swift */; }; 6FE4550D2A5D111E006549B1 /* SwiftBridgeCore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE4550B2A5D111D006549B1 /* SwiftBridgeCore.swift */; }; - 6FE4550F2A5D112C006549B1 /* connlib-apple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE4550E2A5D112C006549B1 /* connlib-apple.swift */; }; - 6FE455102A5D112C006549B1 /* connlib-apple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE4550E2A5D112C006549B1 /* connlib-apple.swift */; }; + 6FE4550F2A5D112C006549B1 /* connlib-client-apple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE4550E2A5D112C006549B1 /* connlib-client-apple.swift */; }; + 6FE455102A5D112C006549B1 /* connlib-client-apple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE4550E2A5D112C006549B1 /* connlib-client-apple.swift */; }; 6FE93AFB2A738D7E002D278A /* NetworkSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE93AFA2A738D7E002D278A /* NetworkSettings.swift */; }; 6FE93AFC2A738D7E002D278A /* NetworkSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE93AFA2A738D7E002D278A /* NetworkSettings.swift */; }; 794C38152970A2660029F38F /* FirezoneKit in Frameworks */ = {isa = PBXBuildFile; productRef = 794C38142970A2660029F38F /* FirezoneKit */; }; @@ -105,7 +105,7 @@ 6FE454EA2A5BFABA006549B1 /* Adapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Adapter.swift; sourceTree = ""; }; 6FE455082A5D110D006549B1 /* CallbackHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallbackHandler.swift; sourceTree = ""; }; 6FE4550B2A5D111D006549B1 /* SwiftBridgeCore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftBridgeCore.swift; path = Connlib/Generated/SwiftBridgeCore.swift; sourceTree = ""; }; - 6FE4550E2A5D112C006549B1 /* connlib-apple.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "connlib-apple.swift"; path = "Connlib/Generated/connlib-apple/connlib-apple.swift"; sourceTree = ""; }; + 6FE4550E2A5D112C006549B1 /* connlib-client-apple.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "connlib-client-apple.swift"; path = "Connlib/Generated/connlib-client-apple/connlib-client-apple.swift"; sourceTree = ""; }; 6FE455112A5D13A2006549B1 /* FirezoneNetworkExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FirezoneNetworkExtension-Bridging-Header.h"; sourceTree = ""; }; 6FE93AFA2A738D7E002D278A /* NetworkSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkSettings.swift; sourceTree = ""; }; 8D2F64EC2A97336C00B6176A /* PrimaryMacAddress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryMacAddress.swift; sourceTree = ""; }; @@ -167,7 +167,7 @@ 6FA39A032A6A7248000F0157 /* NetworkResource.swift */, 6FE455082A5D110D006549B1 /* CallbackHandler.swift */, 6FE4550B2A5D111D006549B1 /* SwiftBridgeCore.swift */, - 6FE4550E2A5D112C006549B1 /* connlib-apple.swift */, + 6FE4550E2A5D112C006549B1 /* connlib-client-apple.swift */, 8D2F64EC2A97336C00B6176A /* PrimaryMacAddress.swift */, 6FE455112A5D13A2006549B1 /* FirezoneNetworkExtension-Bridging-Header.h */, ); @@ -474,7 +474,7 @@ buildActionMask = 2147483647; files = ( 6FE455092A5D110D006549B1 /* CallbackHandler.swift in Sources */, - 6FE4550F2A5D112C006549B1 /* connlib-apple.swift in Sources */, + 6FE4550F2A5D112C006549B1 /* connlib-client-apple.swift in Sources */, 05CF1D17290B1FE700CF4755 /* PacketTunnelProvider.swift in Sources */, 6FE454F62A5BFB93006549B1 /* Adapter.swift in Sources */, 6FA39A042A6A7248000F0157 /* NetworkResource.swift in Sources */, @@ -489,7 +489,7 @@ files = ( 8D2F64EF2A973F7000B6176A /* PrimaryMacAddress.swift in Sources */, 6FE4550A2A5D110D006549B1 /* CallbackHandler.swift in Sources */, - 6FE455102A5D112C006549B1 /* connlib-apple.swift in Sources */, + 6FE455102A5D112C006549B1 /* connlib-client-apple.swift in Sources */, 05CF1D16290B1FE700CF4755 /* PacketTunnelProvider.swift in Sources */, 6FE454F72A5BFB93006549B1 /* Adapter.swift in Sources */, 6FA39A052A6A7248000F0157 /* NetworkResource.swift in Sources */, diff --git a/swift/apple/FirezoneNetworkExtension/Adapter.swift b/swift/apple/FirezoneNetworkExtension/Adapter.swift index a9a0cfc98..5e4097c18 100644 --- a/swift/apple/FirezoneNetworkExtension/Adapter.swift +++ b/swift/apple/FirezoneNetworkExtension/Adapter.swift @@ -92,10 +92,10 @@ public class Adapter { // Docs on filter strings: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html #if DEBUG private let logFilterString = - "connlib_apple=debug,firezone_tunnel=trace,libs_common=debug,firezone_client_connlib=debug,warn" + "connlib_client_apple=debug,firezone_tunnel=trace,connlib_shared=debug,connlib_client_shared=debug,warn" #else private let logFilterString = - "connlib_apple=info,firezone_tunnel=info,libs_common=info,firezone_client_connlib=info,warn" + "connlib_client_apple=info,firezone_tunnel=info,connlib_shared=info,connlib_client_shared=info,warn" #endif private let connlibLogFolderPath: String diff --git a/swift/apple/FirezoneNetworkExtension/Connlib.xcfilelist b/swift/apple/FirezoneNetworkExtension/Connlib.xcfilelist index bc540382f..3298f595a 100644 --- a/swift/apple/FirezoneNetworkExtension/Connlib.xcfilelist +++ b/swift/apple/FirezoneNetworkExtension/Connlib.xcfilelist @@ -1,5 +1,5 @@ -$(PROJECT_DIR)/FirezoneNetworkExtension/Connlib/Generated/connlib-apple/connlib-apple.swift -$(PROJECT_DIR)/FirezoneNetworkExtension/Connlib/Generated/connlib-apple/connlib-apple.h +$(PROJECT_DIR)/FirezoneNetworkExtension/Connlib/Generated/connlib-client-apple/connlib-client-apple.swift +$(PROJECT_DIR)/FirezoneNetworkExtension/Connlib/Generated/connlib-client-apple/connlib-client-apple.h $(PROJECT_DIR)/FirezoneNetworkExtension/Connlib/Generated/SwiftBridgeCore.h $(PROJECT_DIR)/FirezoneNetworkExtension/Connlib/Generated/SwiftBridgeCore.swift $(PROJECT_DIR)/FirezoneNetworkExtension/Connlib/connlib.h