diff --git a/Cargo.lock b/Cargo.lock index 4783bcb..efa2aff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -926,7 +926,7 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "ostp" -version = "0.1.70" +version = "0.2.0" dependencies = [ "anyhow", "base64", @@ -945,7 +945,7 @@ dependencies = [ [[package]] name = "ostp-client" -version = "0.1.70" +version = "0.2.0" dependencies = [ "anyhow", "bytes", @@ -963,7 +963,7 @@ dependencies = [ [[package]] name = "ostp-core" -version = "0.1.70" +version = "0.2.0" dependencies = [ "anyhow", "bytes", @@ -994,12 +994,13 @@ dependencies = [ [[package]] name = "ostp-server" -version = "0.1.70" +version = "0.2.0" dependencies = [ "anyhow", "axum", "bytes", "ostp-core", + "portable-atomic", "rand", "serde", "serde_json", @@ -1011,7 +1012,7 @@ dependencies = [ [[package]] name = "ostp-tun-helper" -version = "0.1.70" +version = "0.2.0" dependencies = [ "anyhow", "chrono", diff --git a/ostp-server/Cargo.toml b/ostp-server/Cargo.toml index 7f2d6ae..cf407b5 100644 --- a/ostp-server/Cargo.toml +++ b/ostp-server/Cargo.toml @@ -16,3 +16,4 @@ rand.workspace = true socket2 = "0.6.3" axum = "0.8" tower-http = { version = "0.6", features = ["cors"] } +portable-atomic.workspace = true diff --git a/ostp-server/src/api.rs b/ostp-server/src/api.rs index 5dfbf60..2b629bd 100644 --- a/ostp-server/src/api.rs +++ b/ostp-server/src/api.rs @@ -15,7 +15,8 @@ use std::collections::HashMap; use std::sync::{Arc, RwLock}; -use std::sync::atomic::{AtomicU64, Ordering}; +use std::sync::atomic::Ordering; +use portable_atomic::AtomicU64; use std::time::Instant; use axum::{ diff --git a/ostp-server/src/dispatcher.rs b/ostp-server/src/dispatcher.rs index 63d7e99..7a81a31 100644 --- a/ostp-server/src/dispatcher.rs +++ b/ostp-server/src/dispatcher.rs @@ -4,7 +4,8 @@ use ostp_core::{OstpEvent, ProtocolAction, ProtocolConfig, ProtocolMachine}; use std::collections::HashMap; use std::net::SocketAddr; use std::sync::{Arc, RwLock}; -use std::sync::atomic::{AtomicU64, Ordering}; +use std::sync::atomic::Ordering; +use portable_atomic::AtomicU64; /// Maximum number of concurrent authenticated sessions. /// Excess handshake attempts are silently dropped -- no response, no state allocated. diff --git a/ostp-wiki b/ostp-wiki new file mode 160000 index 0000000..cd3d7d8 --- /dev/null +++ b/ostp-wiki @@ -0,0 +1 @@ +Subproject commit cd3d7d8dae142112d58bc216777b77a2ded83b4e diff --git a/scripts/build.ps1 b/scripts/build.ps1 index db169b5..cff7b2f 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -19,18 +19,25 @@ Write-Output "Synchronizing with origin master..." # --- Version bump --- $CargoToml = Join-Path $ProjectRoot "Cargo.toml" -$Version = "0.1.0" +$Version = "0.2.0" if (Test-Path $CargoToml) { $Content = [System.IO.File]::ReadAllText($CargoToml) - if ($Content -match 'version\s*=\s*"(\d+)\.(\d+)\.(\d+)"') { + # Match version only in [workspace.package] section (first occurrence) + if ($Content -match '\[workspace\.package\][\s\S]*?version\s*=\s*"(\d+)\.(\d+)\.(\d+)"') { $Major = [int]$Matches[1] $Minor = [int]$Matches[2] $Patch = [int]$Matches[3] $NewPatch = $Patch + 1 $Version = "{0}.{1}.{2}" -f $Major, $Minor, $NewPatch + # Replace only the workspace version line, not dependency versions + $OldVersionStr = 'version = "{0}.{1}.{2}"' -f $Major, $Minor, $Patch $NewVersionStr = 'version = "' + $Version + '"' - $NewContent = $Content -replace 'version\s*=\s*"\d+\.\d+\.\d+"', $NewVersionStr - [System.IO.File]::WriteAllText($CargoToml, $NewContent) + # Use .NET Replace to swap only the first occurrence + $idx = $Content.IndexOf($OldVersionStr) + if ($idx -ge 0) { + $NewContent = $Content.Remove($idx, $OldVersionStr.Length).Insert($idx, $NewVersionStr) + [System.IO.File]::WriteAllText($CargoToml, $NewContent) + } Write-Output "[ok] Version: v$Version" } }