refactor(connlib): restructure directory for consistency (#2236)

This commit is contained in:
Thomas Eizinger
2023-10-05 09:52:35 +11:00
committed by GitHub
parent a02abcbac5
commit 464efbad56
58 changed files with 214 additions and 216 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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\"")
}

209
rust/Cargo.lock generated
View File

@@ -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"

View File

@@ -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]

View File

@@ -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"

View File

@@ -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},

View File

@@ -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

View File

@@ -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

View File

@@ -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::{

View File

@@ -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 }

View File

@@ -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;

View File

@@ -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,

View File

@@ -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;

View File

@@ -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};

View File

@@ -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"] }

View File

@@ -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;

View File

@@ -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};

View File

@@ -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};

View File

@@ -1,5 +1,5 @@
[package]
name = "libs-common"
name = "connlib-shared"
# mark:automatic-version
version = "1.20231001.0"
edition = "2021"

View File

@@ -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 }

View File

@@ -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,
};

View File

@@ -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,

View File

@@ -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,
};

View File

@@ -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};

View File

@@ -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;

View File

@@ -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,

View File

@@ -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,

View File

@@ -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::{

View File

@@ -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;

View File

@@ -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},

View File

@@ -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<ResourceId> 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<u16>,
@@ -100,8 +100,8 @@ pub struct PeerConfig {
pub(crate) preshared_key: SecretKey,
}
impl From<libs_common::messages::Peer> for PeerConfig {
fn from(value: libs_common::messages::Peer) -> Self {
impl From<connlib_shared::messages::Peer> for PeerConfig {
fn from(value: connlib_shared::messages::Peer) -> Self {
Self {
persistent_keepalive: value.persistent_keepalive,
public_key: value.public_key.0.into(),

View File

@@ -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;

View File

@@ -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,

View File

@@ -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<C, CB> Tunnel<C, CB>
where

View File

@@ -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;

View File

@@ -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"] }

View File

@@ -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;

View File

@@ -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"] }

View File

@@ -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;

View File

@@ -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"

View File

@@ -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 = "<group>"; };
6FE455082A5D110D006549B1 /* CallbackHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallbackHandler.swift; sourceTree = "<group>"; };
6FE4550B2A5D111D006549B1 /* SwiftBridgeCore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftBridgeCore.swift; path = Connlib/Generated/SwiftBridgeCore.swift; sourceTree = "<group>"; };
6FE4550E2A5D112C006549B1 /* connlib-apple.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "connlib-apple.swift"; path = "Connlib/Generated/connlib-apple/connlib-apple.swift"; sourceTree = "<group>"; };
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 = "<group>"; };
6FE455112A5D13A2006549B1 /* FirezoneNetworkExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FirezoneNetworkExtension-Bridging-Header.h"; sourceTree = "<group>"; };
6FE93AFA2A738D7E002D278A /* NetworkSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkSettings.swift; sourceTree = "<group>"; };
8D2F64EC2A97336C00B6176A /* PrimaryMacAddress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimaryMacAddress.swift; sourceTree = "<group>"; };
@@ -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 */,

View File

@@ -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

View File

@@ -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