3e23bdf3c0
* added additional workspace-wide dependencies * Added conditional serialization on 'BinaryBuildInformationOwned' * initial framework for service provider messages * updated request/response tags to account for existing variants of Socks5Message * handling legacy deserialization * another serialization revamp to account for legacy version * legacy client working with versioned network requester * socks5 client deserializing responses into updated structures * using new structures for sending in socks5 client * SendRequest wrapper for Request::Send variant * created named fields for all variants of 'ControllerCommand' * Versioning socks5 requests + moving to proper Socks5Request struct * Updated backwards compatible Socks5Response * unused imports * poc ServiceProvider trait * wip * implemented 'ServiceProvider' trait on the Network Requester * Socks5RequestError * added properly serialized ErrorResponse to ControlResponse * fixed version serialization + feature selection * handling of version control requests * improved SocksProxyError by providing more concrete variants and removing generic case * got rid of ServiceProviderClient trait and wrote simple example showing control requests * tests for serialisation backwards compatibility * post-merge fixes due to method renaming * enum boxing to make clippy happier * making sure to not drop buffer channel when starting `DirectClient` * Using nym-sdk in the example * Replaced printing version to stdout with proper log call
22 lines
805 B
Rust
22 lines
805 B
Rust
// Copyright 2023 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use service_providers_common::{define_simple_version, interface::Version};
|
|
|
|
/// Defines initial version of the communication interface between socks5 clients and
|
|
/// network requesters (socks5).
|
|
// note: we start from '3' so that we could distinguish cases where no version is provided
|
|
// and legacy communication mode is used instead
|
|
pub const INITIAL_INTERFACE_VERSION: u8 = 3;
|
|
|
|
/// Defines the current version of the communication interface between socks5 clients and
|
|
/// network requesters (socks5).
|
|
/// It has to be incremented for any breaking change.
|
|
pub const INTERFACE_VERSION: u8 = 3;
|
|
|
|
define_simple_version!(
|
|
Socks5ProtocolVersion,
|
|
INITIAL_INTERFACE_VERSION,
|
|
INTERFACE_VERSION
|
|
);
|