diff --git a/.github/workflows/nuget-publish.yml b/.github/workflows/nuget-publish.yml
index f9de5cc..54dabef 100644
--- a/.github/workflows/nuget-publish.yml
+++ b/.github/workflows/nuget-publish.yml
@@ -57,7 +57,7 @@ jobs:
library: [ NowAgent ]
include:
- library: NowAgent
- libpath: ./dotnet/Devolutions.NowClient
+ libpath: ./protocols/dotnet/Devolutions.NowClient
steps:
- name: Check out ${{ github.repository }}
@@ -67,8 +67,8 @@ jobs:
shell: pwsh
run: |
$PackageVersion = '${{ needs.preflight.outputs.package-version }}'
- @("dotnet\Devolutions.NowClient\Devolutions.NowClient.csproj",
- "dotnet\Devolutions.NowProto\Devolutions.NowProto.csproj") | ForEach-Object {
+ @("protocols\dotnet\Devolutions.NowClient\Devolutions.NowClient.csproj",
+ "protocols\dotnet\Devolutions.NowProto\Devolutions.NowProto.csproj") | ForEach-Object {
$csprojPath = $_
$csprojContent = Get-Content $csprojPath -Raw
$csprojContent = $csprojContent -Replace '().*?()', "$PackageVersion"
diff --git a/Cargo.toml b/Cargo.toml
index eb95d27..e9b397e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,22 +1,22 @@
[workspace]
resolver = "2"
members = [
- "rust/*",
+ "protocols/rust/*",
"xtask",
]
[workspace.package]
edition = "2021"
license = "MIT/Apache-2.0"
-homepage = "https://github.com/Devolutions/now-proto"
-repository = "https://github.com/Devolutions/now-proto"
+homepage = "https://github.com/Devolutions/now-libraries"
+repository = "https://github.com/Devolutions/now-libraries"
authors = ["Devolutions Inc. "]
keywords = ["rdp", "remote-desktop", "network", "client", "protocol"]
categories = ["network-programming"]
[workspace.dependencies]
-now-proto-pdu = { version = "0.1", path = "crates/now-proto-pdu" }
-now-proto-fuzzing = { version = "0.1", path = "crates/now-proto-fuzzing" }
+now-proto-pdu = { version = "0.1", path = "protocols/rust/now-proto-pdu" }
+now-proto-fuzzing = { version = "0.1", path = "protocols/rust/now-proto-fuzzing" }
[profile.test.package.proptest]
opt-level = 3
diff --git a/README.md b/README.md
index 9052085..c7c3cc6 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,15 @@
-NOW-proto
-=========
+now-libraries
+=============
-Devolutions::Now::Agent RDP virtual channel protocol libraries and clients.
+Shared libraries for Devolutions NOW components.
-### Specification
+## Libraries
-Current protocol specification: [read](./docs/NOW-spec.md)
+- [protocols](./protocols/) contains the NOW protocol specifications, Rust crates, .NET libraries, and protocol test tools.
+- [policies](./policies/) is reserved for the UniGetUI/PEDM policy engine libraries.
-### Updating protocol
+## Repository Layout
-In order to update the protocol, the following steps should be followed:
-
-1. Update the protocol specification in `./docs/NOW-spec.md`.
- - Bump the protocol version number.
-1. Update the Rust implementation of the protocol in `./rust/now-proto-pdu`.
- - Bump current protocol version defined in `now_proto_pdu::channel::capset::NowProtoVersion::CURRENT`
-1. Update the C# implementation of the protocol in `./dotnet/Devolutions.NowProto`
- - Bump current protocol version in `Devolutions.NowProto.NowProtoVersion.Current`
+- Root-level tooling and CI are shared across library families.
+- Protocol-specific documentation and source code live under `protocols/`.
+- Policy-specific documentation and source code will live under `policies/`.
\ No newline at end of file
diff --git a/cliff.toml b/cliff.toml
index 7d7cfe3..4332c70 100644
--- a/cliff.toml
+++ b/cliff.toml
@@ -36,7 +36,7 @@ body = """
{%- endif %}
{%- set short_sha = commit.id | truncate(length=10, end="") %}
-{%- set commit_url = "https://github.com/Devolutions/now-proto/commit/" ~ commit.id %}
+{%- set commit_url = "https://github.com/Devolutions/now-libraries/commit/" ~ commit.id %}
{%- set commit_link = "[" ~ short_sha ~ "](" ~ commit_url ~ ")" %}
- {{ breaking }}{{ message }} ({{ commit_link }}) \
@@ -58,9 +58,9 @@ sort_commits = "oldest"
commit_preprocessors = [
# Replace issue number with the link
- { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/Devolutions/now-proto/issues/${2}))"},
+ { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/Devolutions/now-libraries/issues/${2}))"},
# Replace commit sha1 with the link
- { pattern = '([a-f0-9]{10})([a-f0-9]{30})', replace = "[${0}](https://github.com/Devolutions/now-proto/commit/${1}${2})" }
+ { pattern = '([a-f0-9]{10})([a-f0-9]{30})', replace = "[${0}](https://github.com/Devolutions/now-libraries/commit/${1}${2})" }
]
# regex for parsing and grouping commits
diff --git a/docs/make.ps1 b/docs/make.ps1
deleted file mode 100644
index 9afc19b..0000000
--- a/docs/make.ps1
+++ /dev/null
@@ -1,3 +0,0 @@
-# NOTE: Markdown Monster CLI may be broken at the moment (WinGet version 3.5.4 definitely is),
-# the PDF could be generated manually via GUI instead.
-mmcli markdowntopdf -i NOW-spec.md -o NOW-spec.pdf --theme Github --orientation Portrait --page-size A4
\ No newline at end of file
diff --git a/policies/README.md b/policies/README.md
new file mode 100644
index 0000000..8832996
--- /dev/null
+++ b/policies/README.md
@@ -0,0 +1,6 @@
+Policies
+========
+
+This directory is reserved for the UniGetUI/PEDM policy engine libraries.
+
+The future policy engine NuGet package and Rust crate will live here.
\ No newline at end of file
diff --git a/NowProto.sln b/protocols/NowProto.sln
similarity index 100%
rename from NowProto.sln
rename to protocols/NowProto.sln
diff --git a/protocols/README.md b/protocols/README.md
new file mode 100644
index 0000000..9052085
--- /dev/null
+++ b/protocols/README.md
@@ -0,0 +1,19 @@
+NOW-proto
+=========
+
+Devolutions::Now::Agent RDP virtual channel protocol libraries and clients.
+
+### Specification
+
+Current protocol specification: [read](./docs/NOW-spec.md)
+
+### Updating protocol
+
+In order to update the protocol, the following steps should be followed:
+
+1. Update the protocol specification in `./docs/NOW-spec.md`.
+ - Bump the protocol version number.
+1. Update the Rust implementation of the protocol in `./rust/now-proto-pdu`.
+ - Bump current protocol version defined in `now_proto_pdu::channel::capset::NowProtoVersion::CURRENT`
+1. Update the C# implementation of the protocol in `./dotnet/Devolutions.NowProto`
+ - Bump current protocol version in `Devolutions.NowProto.NowProtoVersion.Current`
diff --git a/docs/NOW-spec.md b/protocols/docs/NOW-spec.md
similarity index 100%
rename from docs/NOW-spec.md
rename to protocols/docs/NOW-spec.md
diff --git a/protocols/docs/make.ps1 b/protocols/docs/make.ps1
new file mode 100644
index 0000000..24943b6
--- /dev/null
+++ b/protocols/docs/make.ps1
@@ -0,0 +1,6 @@
+# NOTE: Markdown Monster CLI may be broken at the moment (WinGet version 3.5.4 definitely is),
+# the PDF could be generated manually via GUI instead.
+$SpecPath = Join-Path $PSScriptRoot 'NOW-spec.md'
+$OutputPath = Join-Path $PSScriptRoot 'NOW-spec.pdf'
+
+mmcli markdowntopdf -i $SpecPath -o $OutputPath --theme Github --orientation Portrait --page-size A4
\ No newline at end of file
diff --git a/dotnet/.gitignore b/protocols/dotnet/.gitignore
similarity index 100%
rename from dotnet/.gitignore
rename to protocols/dotnet/.gitignore
diff --git a/dotnet/Devolutions.NowClient.Cli/Devolutions.NowClient.Cli.csproj b/protocols/dotnet/Devolutions.NowClient.Cli/Devolutions.NowClient.Cli.csproj
similarity index 100%
rename from dotnet/Devolutions.NowClient.Cli/Devolutions.NowClient.Cli.csproj
rename to protocols/dotnet/Devolutions.NowClient.Cli/Devolutions.NowClient.Cli.csproj
diff --git a/dotnet/Devolutions.NowClient.Cli/Program.cs b/protocols/dotnet/Devolutions.NowClient.Cli/Program.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient.Cli/Program.cs
rename to protocols/dotnet/Devolutions.NowClient.Cli/Program.cs
diff --git a/dotnet/Devolutions.NowClient.Cli/README.md b/protocols/dotnet/Devolutions.NowClient.Cli/README.md
similarity index 100%
rename from dotnet/Devolutions.NowClient.Cli/README.md
rename to protocols/dotnet/Devolutions.NowClient.Cli/README.md
diff --git a/dotnet/Devolutions.NowClient/Devolutions.NowClient.csproj b/protocols/dotnet/Devolutions.NowClient/Devolutions.NowClient.csproj
similarity index 95%
rename from dotnet/Devolutions.NowClient/Devolutions.NowClient.csproj
rename to protocols/dotnet/Devolutions.NowClient/Devolutions.NowClient.csproj
index fefeccc..7a908d0 100644
--- a/dotnet/Devolutions.NowClient/Devolutions.NowClient.csproj
+++ b/protocols/dotnet/Devolutions.NowClient/Devolutions.NowClient.csproj
@@ -10,7 +10,7 @@
© Devolutions Inc. All rights reserved.
Devolutions.NowClient
MIT OR Apache-2.0
- https://github.com/Devolutions/now-proto.git
+ https://github.com/Devolutions/now-libraries.git
git
Library
diff --git a/dotnet/Devolutions.NowClient/README.md b/protocols/dotnet/Devolutions.NowClient/README.md
similarity index 100%
rename from dotnet/Devolutions.NowClient/README.md
rename to protocols/dotnet/Devolutions.NowClient/README.md
diff --git a/dotnet/Devolutions.NowClient/src/AExecParams.cs b/protocols/dotnet/Devolutions.NowClient/src/AExecParams.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/AExecParams.cs
rename to protocols/dotnet/Devolutions.NowClient/src/AExecParams.cs
diff --git a/dotnet/Devolutions.NowClient/src/ExecBatchParams.cs b/protocols/dotnet/Devolutions.NowClient/src/ExecBatchParams.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/ExecBatchParams.cs
rename to protocols/dotnet/Devolutions.NowClient/src/ExecBatchParams.cs
diff --git a/dotnet/Devolutions.NowClient/src/ExecProcessParams.cs b/protocols/dotnet/Devolutions.NowClient/src/ExecProcessParams.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/ExecProcessParams.cs
rename to protocols/dotnet/Devolutions.NowClient/src/ExecProcessParams.cs
diff --git a/dotnet/Devolutions.NowClient/src/ExecPwshParams.cs b/protocols/dotnet/Devolutions.NowClient/src/ExecPwshParams.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/ExecPwshParams.cs
rename to protocols/dotnet/Devolutions.NowClient/src/ExecPwshParams.cs
diff --git a/dotnet/Devolutions.NowClient/src/ExecRunParams.cs b/protocols/dotnet/Devolutions.NowClient/src/ExecRunParams.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/ExecRunParams.cs
rename to protocols/dotnet/Devolutions.NowClient/src/ExecRunParams.cs
diff --git a/dotnet/Devolutions.NowClient/src/ExecSession.cs b/protocols/dotnet/Devolutions.NowClient/src/ExecSession.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/ExecSession.cs
rename to protocols/dotnet/Devolutions.NowClient/src/ExecSession.cs
diff --git a/dotnet/Devolutions.NowClient/src/ExecShellParams.cs b/protocols/dotnet/Devolutions.NowClient/src/ExecShellParams.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/ExecShellParams.cs
rename to protocols/dotnet/Devolutions.NowClient/src/ExecShellParams.cs
diff --git a/dotnet/Devolutions.NowClient/src/ExecWinPsParams.cs b/protocols/dotnet/Devolutions.NowClient/src/ExecWinPsParams.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/ExecWinPsParams.cs
rename to protocols/dotnet/Devolutions.NowClient/src/ExecWinPsParams.cs
diff --git a/dotnet/Devolutions.NowClient/src/IExecSessionHandler.cs b/protocols/dotnet/Devolutions.NowClient/src/IExecSessionHandler.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/IExecSessionHandler.cs
rename to protocols/dotnet/Devolutions.NowClient/src/IExecSessionHandler.cs
diff --git a/dotnet/Devolutions.NowClient/src/IMessageBoxRspHandler.cs b/protocols/dotnet/Devolutions.NowClient/src/IMessageBoxRspHandler.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/IMessageBoxRspHandler.cs
rename to protocols/dotnet/Devolutions.NowClient/src/IMessageBoxRspHandler.cs
diff --git a/dotnet/Devolutions.NowClient/src/INowTransport.cs b/protocols/dotnet/Devolutions.NowClient/src/INowTransport.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/INowTransport.cs
rename to protocols/dotnet/Devolutions.NowClient/src/INowTransport.cs
diff --git a/dotnet/Devolutions.NowClient/src/IWindowRecEventHandler.cs b/protocols/dotnet/Devolutions.NowClient/src/IWindowRecEventHandler.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/IWindowRecEventHandler.cs
rename to protocols/dotnet/Devolutions.NowClient/src/IWindowRecEventHandler.cs
diff --git a/dotnet/Devolutions.NowClient/src/MessageBoxParams.cs b/protocols/dotnet/Devolutions.NowClient/src/MessageBoxParams.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/MessageBoxParams.cs
rename to protocols/dotnet/Devolutions.NowClient/src/MessageBoxParams.cs
diff --git a/dotnet/Devolutions.NowClient/src/MessageBoxResponse.cs b/protocols/dotnet/Devolutions.NowClient/src/MessageBoxResponse.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/MessageBoxResponse.cs
rename to protocols/dotnet/Devolutions.NowClient/src/MessageBoxResponse.cs
diff --git a/dotnet/Devolutions.NowClient/src/NowChannelTransport.cs b/protocols/dotnet/Devolutions.NowClient/src/NowChannelTransport.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/NowChannelTransport.cs
rename to protocols/dotnet/Devolutions.NowClient/src/NowChannelTransport.cs
diff --git a/dotnet/Devolutions.NowClient/src/NowClient.cs b/protocols/dotnet/Devolutions.NowClient/src/NowClient.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/NowClient.cs
rename to protocols/dotnet/Devolutions.NowClient/src/NowClient.cs
diff --git a/dotnet/Devolutions.NowClient/src/NowClientException.cs b/protocols/dotnet/Devolutions.NowClient/src/NowClientException.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/NowClientException.cs
rename to protocols/dotnet/Devolutions.NowClient/src/NowClientException.cs
diff --git a/dotnet/Devolutions.NowClient/src/NowClientPipeTransport.cs b/protocols/dotnet/Devolutions.NowClient/src/NowClientPipeTransport.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/NowClientPipeTransport.cs
rename to protocols/dotnet/Devolutions.NowClient/src/NowClientPipeTransport.cs
diff --git a/dotnet/Devolutions.NowClient/src/NowMessageBuffer.cs b/protocols/dotnet/Devolutions.NowClient/src/NowMessageBuffer.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/NowMessageBuffer.cs
rename to protocols/dotnet/Devolutions.NowClient/src/NowMessageBuffer.cs
diff --git a/dotnet/Devolutions.NowClient/src/NowRdmHost.cs b/protocols/dotnet/Devolutions.NowClient/src/NowRdmHost.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/NowRdmHost.cs
rename to protocols/dotnet/Devolutions.NowClient/src/NowRdmHost.cs
diff --git a/dotnet/Devolutions.NowClient/src/NowRdmHostException.cs b/protocols/dotnet/Devolutions.NowClient/src/NowRdmHostException.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/NowRdmHostException.cs
rename to protocols/dotnet/Devolutions.NowClient/src/NowRdmHostException.cs
diff --git a/dotnet/Devolutions.NowClient/src/NowRdmHostPipeTransport.cs b/protocols/dotnet/Devolutions.NowClient/src/NowRdmHostPipeTransport.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/NowRdmHostPipeTransport.cs
rename to protocols/dotnet/Devolutions.NowClient/src/NowRdmHostPipeTransport.cs
diff --git a/dotnet/Devolutions.NowClient/src/NowSessionException.cs b/protocols/dotnet/Devolutions.NowClient/src/NowSessionException.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/NowSessionException.cs
rename to protocols/dotnet/Devolutions.NowClient/src/NowSessionException.cs
diff --git a/dotnet/Devolutions.NowClient/src/RdmTypes.cs b/protocols/dotnet/Devolutions.NowClient/src/RdmTypes.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/RdmTypes.cs
rename to protocols/dotnet/Devolutions.NowClient/src/RdmTypes.cs
diff --git a/dotnet/Devolutions.NowClient/src/SystemShutdownParams.cs b/protocols/dotnet/Devolutions.NowClient/src/SystemShutdownParams.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/SystemShutdownParams.cs
rename to protocols/dotnet/Devolutions.NowClient/src/SystemShutdownParams.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandChannelClose.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandChannelClose.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandChannelClose.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandChannelClose.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandExecAbort.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecAbort.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandExecAbort.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecAbort.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandExecBatch.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecBatch.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandExecBatch.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecBatch.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandExecCancel.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecCancel.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandExecCancel.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecCancel.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandExecData.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecData.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandExecData.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecData.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandExecProcess.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecProcess.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandExecProcess.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecProcess.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandExecPwsh.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecPwsh.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandExecPwsh.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecPwsh.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandExecRun.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecRun.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandExecRun.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecRun.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandExecShell.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecShell.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandExecShell.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecShell.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandExecWinPs.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecWinPs.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandExecWinPs.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandExecWinPs.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandRdmAppAction.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmAppAction.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandRdmAppAction.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmAppAction.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandRdmAppStart.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmAppStart.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandRdmAppStart.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmAppStart.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandRdmCapabilities.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmCapabilities.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandRdmCapabilities.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmCapabilities.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandRdmSessionAction.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmSessionAction.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandRdmSessionAction.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmSessionAction.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandRdmSessionStart.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmSessionStart.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandRdmSessionStart.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandRdmSessionStart.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSessionLock.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionLock.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSessionLock.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionLock.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSessionLogoff.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionLogoff.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSessionLogoff.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionLogoff.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSessionMsgBox.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionMsgBox.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSessionMsgBox.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionMsgBox.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSessionSetKbdLayout.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionSetKbdLayout.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSessionSetKbdLayout.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionSetKbdLayout.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSessionWindowRecStart.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionWindowRecStart.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSessionWindowRecStart.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionWindowRecStart.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSessionWindowRecStop.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionWindowRecStop.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSessionWindowRecStop.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSessionWindowRecStop.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSetRdmAppNotifyHandler.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSetRdmAppNotifyHandler.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSetRdmAppNotifyHandler.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSetRdmAppNotifyHandler.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSetRdmSessionNotifyHandler.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSetRdmSessionNotifyHandler.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSetRdmSessionNotifyHandler.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSetRdmSessionNotifyHandler.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSetWindowRecEventHandler.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSetWindowRecEventHandler.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSetWindowRecEventHandler.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSetWindowRecEventHandler.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/CommandSystemShutdown.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSystemShutdown.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/CommandSystemShutdown.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/CommandSystemShutdown.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/IClientCommand.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/IClientCommand.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/IClientCommand.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/IClientCommand.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/RdmCapabilitiesResponseHandler.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/RdmCapabilitiesResponseHandler.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/RdmCapabilitiesResponseHandler.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/RdmCapabilitiesResponseHandler.cs
diff --git a/dotnet/Devolutions.NowClient/src/Worker/WorkerCtx.cs b/protocols/dotnet/Devolutions.NowClient/src/Worker/WorkerCtx.cs
similarity index 100%
rename from dotnet/Devolutions.NowClient/src/Worker/WorkerCtx.cs
rename to protocols/dotnet/Devolutions.NowClient/src/Worker/WorkerCtx.cs
diff --git a/dotnet/Devolutions.NowDvcApp/ConnectionDlg.Designer.cs b/protocols/dotnet/Devolutions.NowDvcApp/ConnectionDlg.Designer.cs
similarity index 100%
rename from dotnet/Devolutions.NowDvcApp/ConnectionDlg.Designer.cs
rename to protocols/dotnet/Devolutions.NowDvcApp/ConnectionDlg.Designer.cs
diff --git a/dotnet/Devolutions.NowDvcApp/ConnectionDlg.cs b/protocols/dotnet/Devolutions.NowDvcApp/ConnectionDlg.cs
similarity index 100%
rename from dotnet/Devolutions.NowDvcApp/ConnectionDlg.cs
rename to protocols/dotnet/Devolutions.NowDvcApp/ConnectionDlg.cs
diff --git a/dotnet/Devolutions.NowDvcApp/ConnectionDlg.resx b/protocols/dotnet/Devolutions.NowDvcApp/ConnectionDlg.resx
similarity index 97%
rename from dotnet/Devolutions.NowDvcApp/ConnectionDlg.resx
rename to protocols/dotnet/Devolutions.NowDvcApp/ConnectionDlg.resx
index 4f24d55..8b2ff64 100644
--- a/dotnet/Devolutions.NowDvcApp/ConnectionDlg.resx
+++ b/protocols/dotnet/Devolutions.NowDvcApp/ConnectionDlg.resx
@@ -1,120 +1,120 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
\ No newline at end of file
diff --git a/dotnet/Devolutions.NowDvcApp/Devolutions.NowDvcApp.csproj b/protocols/dotnet/Devolutions.NowDvcApp/Devolutions.NowDvcApp.csproj
similarity index 97%
rename from dotnet/Devolutions.NowDvcApp/Devolutions.NowDvcApp.csproj
rename to protocols/dotnet/Devolutions.NowDvcApp/Devolutions.NowDvcApp.csproj
index bd9878e..0067a73 100644
--- a/dotnet/Devolutions.NowDvcApp/Devolutions.NowDvcApp.csproj
+++ b/protocols/dotnet/Devolutions.NowDvcApp/Devolutions.NowDvcApp.csproj
@@ -1,17 +1,17 @@
-
-
-
- WinExe
- net8.0-windows
- enable
- true
- enable
- x86;x64;ARM64
-
-
-
-
-
-
-
+
+
+
+ WinExe
+ net8.0-windows
+ enable
+ true
+ enable
+ x86;x64;ARM64
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/Devolutions.NowDvcApp/DvcDialog.Designer.cs b/protocols/dotnet/Devolutions.NowDvcApp/DvcDialog.Designer.cs
similarity index 100%
rename from dotnet/Devolutions.NowDvcApp/DvcDialog.Designer.cs
rename to protocols/dotnet/Devolutions.NowDvcApp/DvcDialog.Designer.cs
diff --git a/dotnet/Devolutions.NowDvcApp/DvcDialog.cs b/protocols/dotnet/Devolutions.NowDvcApp/DvcDialog.cs
similarity index 100%
rename from dotnet/Devolutions.NowDvcApp/DvcDialog.cs
rename to protocols/dotnet/Devolutions.NowDvcApp/DvcDialog.cs
diff --git a/dotnet/Devolutions.NowDvcApp/DvcDialog.resx b/protocols/dotnet/Devolutions.NowDvcApp/DvcDialog.resx
similarity index 97%
rename from dotnet/Devolutions.NowDvcApp/DvcDialog.resx
rename to protocols/dotnet/Devolutions.NowDvcApp/DvcDialog.resx
index 4f24d55..8b2ff64 100644
--- a/dotnet/Devolutions.NowDvcApp/DvcDialog.resx
+++ b/protocols/dotnet/Devolutions.NowDvcApp/DvcDialog.resx
@@ -1,120 +1,120 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
\ No newline at end of file
diff --git a/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.Designer.cs b/protocols/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.Designer.cs
similarity index 97%
rename from dotnet/Devolutions.NowDvcApp/ExecSessionDlg.Designer.cs
rename to protocols/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.Designer.cs
index 5e9276f..966c921 100644
--- a/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.Designer.cs
+++ b/protocols/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.Designer.cs
@@ -1,349 +1,349 @@
-namespace Devolutions.NowDvcApp
-{
- partial class ExecSessionDlg
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- label1 = new System.Windows.Forms.Label();
- label2 = new System.Windows.Forms.Label();
- sessionIdText = new System.Windows.Forms.Label();
- sessionKindText = new System.Windows.Forms.Label();
- label3 = new System.Windows.Forms.Label();
- sessionStatusText = new System.Windows.Forms.Label();
- stdinInput = new System.Windows.Forms.TextBox();
- label4 = new System.Windows.Forms.Label();
- label5 = new System.Windows.Forms.Label();
- cancelPendingText = new System.Windows.Forms.Label();
- label6 = new System.Windows.Forms.Label();
- stdoutInput = new System.Windows.Forms.TextBox();
- label7 = new System.Windows.Forms.Label();
- stderrInput = new System.Windows.Forms.TextBox();
- logInput = new System.Windows.Forms.TextBox();
- label8 = new System.Windows.Forms.Label();
- sendStdinButton = new System.Windows.Forms.Button();
- eofCheckBox = new System.Windows.Forms.CheckBox();
- crCheckBox = new System.Windows.Forms.CheckBox();
- lfCheckBox = new System.Windows.Forms.CheckBox();
- cancelButton = new System.Windows.Forms.Button();
- abortButton = new System.Windows.Forms.Button();
- label9 = new System.Windows.Forms.Label();
- abortCodeInput = new System.Windows.Forms.TextBox();
- SuspendLayout();
- //
- // label1
- //
- label1.AutoSize = true;
- label1.Location = new System.Drawing.Point(11, 12);
- label1.Name = "label1";
- label1.Size = new System.Drawing.Size(99, 25);
- label1.TabIndex = 0;
- label1.Text = "Session ID:";
- //
- // label2
- //
- label2.AutoSize = true;
- label2.Location = new System.Drawing.Point(12, 37);
- label2.Name = "label2";
- label2.Size = new System.Drawing.Size(51, 25);
- label2.TabIndex = 1;
- label2.Text = "Kind:";
- //
- // sessionIdText
- //
- sessionIdText.AutoSize = true;
- sessionIdText.Location = new System.Drawing.Point(116, 12);
- sessionIdText.Name = "sessionIdText";
- sessionIdText.Size = new System.Drawing.Size(44, 25);
- sessionIdText.TabIndex = 2;
- sessionIdText.Text = ">";
- //
- // sessionKindText
- //
- sessionKindText.AutoSize = true;
- sessionKindText.Location = new System.Drawing.Point(116, 37);
- sessionKindText.Name = "sessionKindText";
- sessionKindText.Size = new System.Drawing.Size(44, 25);
- sessionKindText.TabIndex = 3;
- sessionKindText.Text = ">";
- //
- // label3
- //
- label3.AutoSize = true;
- label3.Location = new System.Drawing.Point(257, 12);
- label3.Name = "label3";
- label3.Size = new System.Drawing.Size(64, 25);
- label3.TabIndex = 4;
- label3.Text = "Status:";
- //
- // sessionStatusText
- //
- sessionStatusText.AutoSize = true;
- sessionStatusText.Location = new System.Drawing.Point(401, 12);
- sessionStatusText.Name = "sessionStatusText";
- sessionStatusText.Size = new System.Drawing.Size(84, 25);
- sessionStatusText.TabIndex = 5;
- sessionStatusText.Text = "starting...";
- //
- // stdinInput
- //
- stdinInput.Enabled = false;
- stdinInput.Location = new System.Drawing.Point(11, 117);
- stdinInput.Multiline = true;
- stdinInput.Name = "stdinInput";
- stdinInput.Size = new System.Drawing.Size(777, 97);
- stdinInput.TabIndex = 6;
- //
- // label4
- //
- label4.AutoSize = true;
- label4.Location = new System.Drawing.Point(12, 89);
- label4.Name = "label4";
- label4.Size = new System.Drawing.Size(107, 25);
- label4.TabIndex = 7;
- label4.Text = "Input(stdin):";
- //
- // label5
- //
- label5.AutoSize = true;
- label5.Location = new System.Drawing.Point(257, 37);
- label5.Name = "label5";
- label5.Size = new System.Drawing.Size(138, 25);
- label5.TabIndex = 8;
- label5.Text = "Cancel pending:";
- //
- // cancelPendingText
- //
- cancelPendingText.AutoSize = true;
- cancelPendingText.Location = new System.Drawing.Point(401, 37);
- cancelPendingText.Name = "cancelPendingText";
- cancelPendingText.Size = new System.Drawing.Size(33, 25);
- cancelPendingText.TabIndex = 9;
- cancelPendingText.Text = "no";
- //
- // label6
- //
- label6.AutoSize = true;
- label6.Location = new System.Drawing.Point(12, 268);
- label6.Name = "label6";
- label6.Size = new System.Drawing.Size(135, 25);
- label6.TabIndex = 11;
- label6.Text = "Output(stdout):";
- //
- // stdoutInput
- //
- stdoutInput.Location = new System.Drawing.Point(11, 296);
- stdoutInput.Multiline = true;
- stdoutInput.Name = "stdoutInput";
- stdoutInput.ReadOnly = true;
- stdoutInput.Size = new System.Drawing.Size(777, 146);
- stdoutInput.TabIndex = 10;
- //
- // label7
- //
- label7.AutoSize = true;
- label7.ForeColor = System.Drawing.Color.Brown;
- label7.Location = new System.Drawing.Point(13, 451);
- label7.Name = "label7";
- label7.Size = new System.Drawing.Size(116, 25);
- label7.TabIndex = 13;
- label7.Text = "Error(stdout):";
- //
- // stderrInput
- //
- stderrInput.ForeColor = System.Drawing.Color.Brown;
- stderrInput.Location = new System.Drawing.Point(12, 479);
- stderrInput.Multiline = true;
- stderrInput.Name = "stderrInput";
- stderrInput.ReadOnly = true;
- stderrInput.Size = new System.Drawing.Size(777, 146);
- stderrInput.TabIndex = 12;
- //
- // logInput
- //
- logInput.ForeColor = System.Drawing.Color.MidnightBlue;
- logInput.Location = new System.Drawing.Point(13, 661);
- logInput.Multiline = true;
- logInput.Name = "logInput";
- logInput.ReadOnly = true;
- logInput.Size = new System.Drawing.Size(777, 146);
- logInput.TabIndex = 14;
- //
- // label8
- //
- label8.AutoSize = true;
- label8.ForeColor = System.Drawing.Color.MidnightBlue;
- label8.Location = new System.Drawing.Point(13, 628);
- label8.Name = "label8";
- label8.Size = new System.Drawing.Size(107, 25);
- label8.TabIndex = 15;
- label8.Text = "Session log:";
- //
- // sendStdinButton
- //
- sendStdinButton.Enabled = false;
- sendStdinButton.Location = new System.Drawing.Point(678, 220);
- sendStdinButton.Name = "sendStdinButton";
- sendStdinButton.Size = new System.Drawing.Size(112, 34);
- sendStdinButton.TabIndex = 16;
- sendStdinButton.Text = "Send";
- sendStdinButton.UseVisualStyleBackColor = true;
- sendStdinButton.Click += SendStdinButtonClick;
- //
- // eofCheckBox
- //
- eofCheckBox.AutoSize = true;
- eofCheckBox.ForeColor = System.Drawing.Color.Firebrick;
- eofCheckBox.Location = new System.Drawing.Point(13, 220);
- eofCheckBox.Name = "eofCheckBox";
- eofCheckBox.Size = new System.Drawing.Size(70, 29);
- eofCheckBox.TabIndex = 17;
- eofCheckBox.Text = "EOF";
- eofCheckBox.UseVisualStyleBackColor = true;
- //
- // crCheckBox
- //
- crCheckBox.AutoSize = true;
- crCheckBox.Location = new System.Drawing.Point(90, 220);
- crCheckBox.Name = "crCheckBox";
- crCheckBox.Size = new System.Drawing.Size(60, 29);
- crCheckBox.TabIndex = 18;
- crCheckBox.Text = "CR";
- crCheckBox.UseVisualStyleBackColor = true;
- //
- // lfCheckBox
- //
- lfCheckBox.AutoSize = true;
- lfCheckBox.Location = new System.Drawing.Point(156, 220);
- lfCheckBox.Name = "lfCheckBox";
- lfCheckBox.Size = new System.Drawing.Size(55, 29);
- lfCheckBox.TabIndex = 19;
- lfCheckBox.Text = "LF";
- lfCheckBox.UseVisualStyleBackColor = true;
- //
- // cancelButton
- //
- cancelButton.BackColor = System.Drawing.Color.PeachPuff;
- cancelButton.Enabled = false;
- cancelButton.Location = new System.Drawing.Point(696, 12);
- cancelButton.Name = "cancelButton";
- cancelButton.Size = new System.Drawing.Size(92, 46);
- cancelButton.TabIndex = 21;
- cancelButton.Text = "Cancel";
- cancelButton.UseVisualStyleBackColor = false;
- cancelButton.Click += CancelButtonClick;
- //
- // abortButton
- //
- abortButton.BackColor = System.Drawing.Color.LightCoral;
- abortButton.Location = new System.Drawing.Point(696, 64);
- abortButton.Name = "abortButton";
- abortButton.Size = new System.Drawing.Size(92, 43);
- abortButton.TabIndex = 22;
- abortButton.Text = "Abort";
- abortButton.UseVisualStyleBackColor = false;
- abortButton.Click += AbortButtonClick;
- //
- // label9
- //
- label9.AutoSize = true;
- label9.Location = new System.Drawing.Point(519, 70);
- label9.Name = "label9";
- label9.Size = new System.Drawing.Size(106, 25);
- label9.TabIndex = 23;
- label9.Text = "Abort code:";
- //
- // abortCodeInput
- //
- abortCodeInput.Location = new System.Drawing.Point(631, 70);
- abortCodeInput.Name = "abortCodeInput";
- abortCodeInput.Size = new System.Drawing.Size(59, 31);
- abortCodeInput.TabIndex = 24;
- abortCodeInput.Text = "1";
- //
- // ExexSessionDlg
- //
- AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F);
- AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- ClientSize = new System.Drawing.Size(800, 837);
- Controls.Add(abortCodeInput);
- Controls.Add(label9);
- Controls.Add(abortButton);
- Controls.Add(cancelButton);
- Controls.Add(lfCheckBox);
- Controls.Add(crCheckBox);
- Controls.Add(eofCheckBox);
- Controls.Add(sendStdinButton);
- Controls.Add(label8);
- Controls.Add(logInput);
- Controls.Add(label7);
- Controls.Add(stderrInput);
- Controls.Add(label6);
- Controls.Add(stdoutInput);
- Controls.Add(cancelPendingText);
- Controls.Add(label5);
- Controls.Add(label4);
- Controls.Add(stdinInput);
- Controls.Add(sessionStatusText);
- Controls.Add(label3);
- Controls.Add(sessionKindText);
- Controls.Add(sessionIdText);
- Controls.Add(label2);
- Controls.Add(label1);
- Name = "ExexSessionDlg";
- Text = "NowProto Exec Session";
- ResumeLayout(false);
- PerformLayout();
- }
-
- #endregion
-
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.Label label2;
- private System.Windows.Forms.Label sessionIdText;
- private System.Windows.Forms.Label sessionKindText;
- private System.Windows.Forms.Label label3;
- private System.Windows.Forms.Label sessionStatusText;
- private System.Windows.Forms.TextBox stdinInput;
- private System.Windows.Forms.Label label4;
- private System.Windows.Forms.Label label5;
- private System.Windows.Forms.Label cancelPendingText;
- private System.Windows.Forms.Label label6;
- private System.Windows.Forms.TextBox stdoutInput;
- private System.Windows.Forms.Label label7;
- private System.Windows.Forms.TextBox stderrInput;
- private System.Windows.Forms.TextBox logInput;
- private System.Windows.Forms.Label label8;
- private System.Windows.Forms.Button sendStdinButton;
- private System.Windows.Forms.CheckBox eofCheckBox;
- private System.Windows.Forms.CheckBox crCheckBox;
- private System.Windows.Forms.CheckBox lfCheckBox;
- private System.Windows.Forms.Button cancelButton;
- private System.Windows.Forms.Button abortButton;
- private System.Windows.Forms.Label label9;
- private System.Windows.Forms.TextBox abortCodeInput;
- }
+namespace Devolutions.NowDvcApp
+{
+ partial class ExecSessionDlg
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ label1 = new System.Windows.Forms.Label();
+ label2 = new System.Windows.Forms.Label();
+ sessionIdText = new System.Windows.Forms.Label();
+ sessionKindText = new System.Windows.Forms.Label();
+ label3 = new System.Windows.Forms.Label();
+ sessionStatusText = new System.Windows.Forms.Label();
+ stdinInput = new System.Windows.Forms.TextBox();
+ label4 = new System.Windows.Forms.Label();
+ label5 = new System.Windows.Forms.Label();
+ cancelPendingText = new System.Windows.Forms.Label();
+ label6 = new System.Windows.Forms.Label();
+ stdoutInput = new System.Windows.Forms.TextBox();
+ label7 = new System.Windows.Forms.Label();
+ stderrInput = new System.Windows.Forms.TextBox();
+ logInput = new System.Windows.Forms.TextBox();
+ label8 = new System.Windows.Forms.Label();
+ sendStdinButton = new System.Windows.Forms.Button();
+ eofCheckBox = new System.Windows.Forms.CheckBox();
+ crCheckBox = new System.Windows.Forms.CheckBox();
+ lfCheckBox = new System.Windows.Forms.CheckBox();
+ cancelButton = new System.Windows.Forms.Button();
+ abortButton = new System.Windows.Forms.Button();
+ label9 = new System.Windows.Forms.Label();
+ abortCodeInput = new System.Windows.Forms.TextBox();
+ SuspendLayout();
+ //
+ // label1
+ //
+ label1.AutoSize = true;
+ label1.Location = new System.Drawing.Point(11, 12);
+ label1.Name = "label1";
+ label1.Size = new System.Drawing.Size(99, 25);
+ label1.TabIndex = 0;
+ label1.Text = "Session ID:";
+ //
+ // label2
+ //
+ label2.AutoSize = true;
+ label2.Location = new System.Drawing.Point(12, 37);
+ label2.Name = "label2";
+ label2.Size = new System.Drawing.Size(51, 25);
+ label2.TabIndex = 1;
+ label2.Text = "Kind:";
+ //
+ // sessionIdText
+ //
+ sessionIdText.AutoSize = true;
+ sessionIdText.Location = new System.Drawing.Point(116, 12);
+ sessionIdText.Name = "sessionIdText";
+ sessionIdText.Size = new System.Drawing.Size(44, 25);
+ sessionIdText.TabIndex = 2;
+ sessionIdText.Text = ">";
+ //
+ // sessionKindText
+ //
+ sessionKindText.AutoSize = true;
+ sessionKindText.Location = new System.Drawing.Point(116, 37);
+ sessionKindText.Name = "sessionKindText";
+ sessionKindText.Size = new System.Drawing.Size(44, 25);
+ sessionKindText.TabIndex = 3;
+ sessionKindText.Text = ">";
+ //
+ // label3
+ //
+ label3.AutoSize = true;
+ label3.Location = new System.Drawing.Point(257, 12);
+ label3.Name = "label3";
+ label3.Size = new System.Drawing.Size(64, 25);
+ label3.TabIndex = 4;
+ label3.Text = "Status:";
+ //
+ // sessionStatusText
+ //
+ sessionStatusText.AutoSize = true;
+ sessionStatusText.Location = new System.Drawing.Point(401, 12);
+ sessionStatusText.Name = "sessionStatusText";
+ sessionStatusText.Size = new System.Drawing.Size(84, 25);
+ sessionStatusText.TabIndex = 5;
+ sessionStatusText.Text = "starting...";
+ //
+ // stdinInput
+ //
+ stdinInput.Enabled = false;
+ stdinInput.Location = new System.Drawing.Point(11, 117);
+ stdinInput.Multiline = true;
+ stdinInput.Name = "stdinInput";
+ stdinInput.Size = new System.Drawing.Size(777, 97);
+ stdinInput.TabIndex = 6;
+ //
+ // label4
+ //
+ label4.AutoSize = true;
+ label4.Location = new System.Drawing.Point(12, 89);
+ label4.Name = "label4";
+ label4.Size = new System.Drawing.Size(107, 25);
+ label4.TabIndex = 7;
+ label4.Text = "Input(stdin):";
+ //
+ // label5
+ //
+ label5.AutoSize = true;
+ label5.Location = new System.Drawing.Point(257, 37);
+ label5.Name = "label5";
+ label5.Size = new System.Drawing.Size(138, 25);
+ label5.TabIndex = 8;
+ label5.Text = "Cancel pending:";
+ //
+ // cancelPendingText
+ //
+ cancelPendingText.AutoSize = true;
+ cancelPendingText.Location = new System.Drawing.Point(401, 37);
+ cancelPendingText.Name = "cancelPendingText";
+ cancelPendingText.Size = new System.Drawing.Size(33, 25);
+ cancelPendingText.TabIndex = 9;
+ cancelPendingText.Text = "no";
+ //
+ // label6
+ //
+ label6.AutoSize = true;
+ label6.Location = new System.Drawing.Point(12, 268);
+ label6.Name = "label6";
+ label6.Size = new System.Drawing.Size(135, 25);
+ label6.TabIndex = 11;
+ label6.Text = "Output(stdout):";
+ //
+ // stdoutInput
+ //
+ stdoutInput.Location = new System.Drawing.Point(11, 296);
+ stdoutInput.Multiline = true;
+ stdoutInput.Name = "stdoutInput";
+ stdoutInput.ReadOnly = true;
+ stdoutInput.Size = new System.Drawing.Size(777, 146);
+ stdoutInput.TabIndex = 10;
+ //
+ // label7
+ //
+ label7.AutoSize = true;
+ label7.ForeColor = System.Drawing.Color.Brown;
+ label7.Location = new System.Drawing.Point(13, 451);
+ label7.Name = "label7";
+ label7.Size = new System.Drawing.Size(116, 25);
+ label7.TabIndex = 13;
+ label7.Text = "Error(stdout):";
+ //
+ // stderrInput
+ //
+ stderrInput.ForeColor = System.Drawing.Color.Brown;
+ stderrInput.Location = new System.Drawing.Point(12, 479);
+ stderrInput.Multiline = true;
+ stderrInput.Name = "stderrInput";
+ stderrInput.ReadOnly = true;
+ stderrInput.Size = new System.Drawing.Size(777, 146);
+ stderrInput.TabIndex = 12;
+ //
+ // logInput
+ //
+ logInput.ForeColor = System.Drawing.Color.MidnightBlue;
+ logInput.Location = new System.Drawing.Point(13, 661);
+ logInput.Multiline = true;
+ logInput.Name = "logInput";
+ logInput.ReadOnly = true;
+ logInput.Size = new System.Drawing.Size(777, 146);
+ logInput.TabIndex = 14;
+ //
+ // label8
+ //
+ label8.AutoSize = true;
+ label8.ForeColor = System.Drawing.Color.MidnightBlue;
+ label8.Location = new System.Drawing.Point(13, 628);
+ label8.Name = "label8";
+ label8.Size = new System.Drawing.Size(107, 25);
+ label8.TabIndex = 15;
+ label8.Text = "Session log:";
+ //
+ // sendStdinButton
+ //
+ sendStdinButton.Enabled = false;
+ sendStdinButton.Location = new System.Drawing.Point(678, 220);
+ sendStdinButton.Name = "sendStdinButton";
+ sendStdinButton.Size = new System.Drawing.Size(112, 34);
+ sendStdinButton.TabIndex = 16;
+ sendStdinButton.Text = "Send";
+ sendStdinButton.UseVisualStyleBackColor = true;
+ sendStdinButton.Click += SendStdinButtonClick;
+ //
+ // eofCheckBox
+ //
+ eofCheckBox.AutoSize = true;
+ eofCheckBox.ForeColor = System.Drawing.Color.Firebrick;
+ eofCheckBox.Location = new System.Drawing.Point(13, 220);
+ eofCheckBox.Name = "eofCheckBox";
+ eofCheckBox.Size = new System.Drawing.Size(70, 29);
+ eofCheckBox.TabIndex = 17;
+ eofCheckBox.Text = "EOF";
+ eofCheckBox.UseVisualStyleBackColor = true;
+ //
+ // crCheckBox
+ //
+ crCheckBox.AutoSize = true;
+ crCheckBox.Location = new System.Drawing.Point(90, 220);
+ crCheckBox.Name = "crCheckBox";
+ crCheckBox.Size = new System.Drawing.Size(60, 29);
+ crCheckBox.TabIndex = 18;
+ crCheckBox.Text = "CR";
+ crCheckBox.UseVisualStyleBackColor = true;
+ //
+ // lfCheckBox
+ //
+ lfCheckBox.AutoSize = true;
+ lfCheckBox.Location = new System.Drawing.Point(156, 220);
+ lfCheckBox.Name = "lfCheckBox";
+ lfCheckBox.Size = new System.Drawing.Size(55, 29);
+ lfCheckBox.TabIndex = 19;
+ lfCheckBox.Text = "LF";
+ lfCheckBox.UseVisualStyleBackColor = true;
+ //
+ // cancelButton
+ //
+ cancelButton.BackColor = System.Drawing.Color.PeachPuff;
+ cancelButton.Enabled = false;
+ cancelButton.Location = new System.Drawing.Point(696, 12);
+ cancelButton.Name = "cancelButton";
+ cancelButton.Size = new System.Drawing.Size(92, 46);
+ cancelButton.TabIndex = 21;
+ cancelButton.Text = "Cancel";
+ cancelButton.UseVisualStyleBackColor = false;
+ cancelButton.Click += CancelButtonClick;
+ //
+ // abortButton
+ //
+ abortButton.BackColor = System.Drawing.Color.LightCoral;
+ abortButton.Location = new System.Drawing.Point(696, 64);
+ abortButton.Name = "abortButton";
+ abortButton.Size = new System.Drawing.Size(92, 43);
+ abortButton.TabIndex = 22;
+ abortButton.Text = "Abort";
+ abortButton.UseVisualStyleBackColor = false;
+ abortButton.Click += AbortButtonClick;
+ //
+ // label9
+ //
+ label9.AutoSize = true;
+ label9.Location = new System.Drawing.Point(519, 70);
+ label9.Name = "label9";
+ label9.Size = new System.Drawing.Size(106, 25);
+ label9.TabIndex = 23;
+ label9.Text = "Abort code:";
+ //
+ // abortCodeInput
+ //
+ abortCodeInput.Location = new System.Drawing.Point(631, 70);
+ abortCodeInput.Name = "abortCodeInput";
+ abortCodeInput.Size = new System.Drawing.Size(59, 31);
+ abortCodeInput.TabIndex = 24;
+ abortCodeInput.Text = "1";
+ //
+ // ExexSessionDlg
+ //
+ AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F);
+ AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ ClientSize = new System.Drawing.Size(800, 837);
+ Controls.Add(abortCodeInput);
+ Controls.Add(label9);
+ Controls.Add(abortButton);
+ Controls.Add(cancelButton);
+ Controls.Add(lfCheckBox);
+ Controls.Add(crCheckBox);
+ Controls.Add(eofCheckBox);
+ Controls.Add(sendStdinButton);
+ Controls.Add(label8);
+ Controls.Add(logInput);
+ Controls.Add(label7);
+ Controls.Add(stderrInput);
+ Controls.Add(label6);
+ Controls.Add(stdoutInput);
+ Controls.Add(cancelPendingText);
+ Controls.Add(label5);
+ Controls.Add(label4);
+ Controls.Add(stdinInput);
+ Controls.Add(sessionStatusText);
+ Controls.Add(label3);
+ Controls.Add(sessionKindText);
+ Controls.Add(sessionIdText);
+ Controls.Add(label2);
+ Controls.Add(label1);
+ Name = "ExexSessionDlg";
+ Text = "NowProto Exec Session";
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label sessionIdText;
+ private System.Windows.Forms.Label sessionKindText;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label sessionStatusText;
+ private System.Windows.Forms.TextBox stdinInput;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.Label cancelPendingText;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.TextBox stdoutInput;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.TextBox stderrInput;
+ private System.Windows.Forms.TextBox logInput;
+ private System.Windows.Forms.Label label8;
+ private System.Windows.Forms.Button sendStdinButton;
+ private System.Windows.Forms.CheckBox eofCheckBox;
+ private System.Windows.Forms.CheckBox crCheckBox;
+ private System.Windows.Forms.CheckBox lfCheckBox;
+ private System.Windows.Forms.Button cancelButton;
+ private System.Windows.Forms.Button abortButton;
+ private System.Windows.Forms.Label label9;
+ private System.Windows.Forms.TextBox abortCodeInput;
+ }
}
\ No newline at end of file
diff --git a/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.cs b/protocols/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.cs
similarity index 100%
rename from dotnet/Devolutions.NowDvcApp/ExecSessionDlg.cs
rename to protocols/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.cs
diff --git a/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.resx b/protocols/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.resx
similarity index 97%
rename from dotnet/Devolutions.NowDvcApp/ExecSessionDlg.resx
rename to protocols/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.resx
index 4f24d55..8b2ff64 100644
--- a/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.resx
+++ b/protocols/dotnet/Devolutions.NowDvcApp/ExecSessionDlg.resx
@@ -1,120 +1,120 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
\ No newline at end of file
diff --git a/dotnet/Devolutions.NowDvcApp/Program.cs b/protocols/dotnet/Devolutions.NowDvcApp/Program.cs
similarity index 100%
rename from dotnet/Devolutions.NowDvcApp/Program.cs
rename to protocols/dotnet/Devolutions.NowDvcApp/Program.cs
diff --git a/dotnet/Devolutions.NowProto.Tests/Devolutions.NowProto.Tests.csproj b/protocols/dotnet/Devolutions.NowProto.Tests/Devolutions.NowProto.Tests.csproj
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/Devolutions.NowProto.Tests.csproj
rename to protocols/dotnet/Devolutions.NowProto.Tests/Devolutions.NowProto.Tests.csproj
diff --git a/dotnet/Devolutions.NowProto.Tests/GlobalUsings.cs b/protocols/dotnet/Devolutions.NowProto.Tests/GlobalUsings.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/GlobalUsings.cs
rename to protocols/dotnet/Devolutions.NowProto.Tests/GlobalUsings.cs
diff --git a/dotnet/Devolutions.NowProto.Tests/src/MsgChannel.cs b/protocols/dotnet/Devolutions.NowProto.Tests/src/MsgChannel.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/src/MsgChannel.cs
rename to protocols/dotnet/Devolutions.NowProto.Tests/src/MsgChannel.cs
diff --git a/dotnet/Devolutions.NowProto.Tests/src/MsgExecGeneral.cs b/protocols/dotnet/Devolutions.NowProto.Tests/src/MsgExecGeneral.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/src/MsgExecGeneral.cs
rename to protocols/dotnet/Devolutions.NowProto.Tests/src/MsgExecGeneral.cs
diff --git a/dotnet/Devolutions.NowProto.Tests/src/MsgRdm.cs b/protocols/dotnet/Devolutions.NowProto.Tests/src/MsgRdm.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/src/MsgRdm.cs
rename to protocols/dotnet/Devolutions.NowProto.Tests/src/MsgRdm.cs
diff --git a/dotnet/Devolutions.NowProto.Tests/src/MsgSession.cs b/protocols/dotnet/Devolutions.NowProto.Tests/src/MsgSession.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/src/MsgSession.cs
rename to protocols/dotnet/Devolutions.NowProto.Tests/src/MsgSession.cs
diff --git a/dotnet/Devolutions.NowProto.Tests/src/MsgSystem.cs b/protocols/dotnet/Devolutions.NowProto.Tests/src/MsgSystem.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/src/MsgSystem.cs
rename to protocols/dotnet/Devolutions.NowProto.Tests/src/MsgSystem.cs
diff --git a/dotnet/Devolutions.NowProto.Tests/src/NowExecStyles.cs b/protocols/dotnet/Devolutions.NowProto.Tests/src/NowExecStyles.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/src/NowExecStyles.cs
rename to protocols/dotnet/Devolutions.NowProto.Tests/src/NowExecStyles.cs
diff --git a/dotnet/Devolutions.NowProto.Tests/src/NowMessageApi.cs b/protocols/dotnet/Devolutions.NowProto.Tests/src/NowMessageApi.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/src/NowMessageApi.cs
rename to protocols/dotnet/Devolutions.NowProto.Tests/src/NowMessageApi.cs
diff --git a/dotnet/Devolutions.NowProto.Tests/src/NowTest.cs b/protocols/dotnet/Devolutions.NowProto.Tests/src/NowTest.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto.Tests/src/NowTest.cs
rename to protocols/dotnet/Devolutions.NowProto.Tests/src/NowTest.cs
diff --git a/dotnet/Devolutions.NowProto/Devolutions.NowProto.csproj b/protocols/dotnet/Devolutions.NowProto/Devolutions.NowProto.csproj
similarity index 86%
rename from dotnet/Devolutions.NowProto/Devolutions.NowProto.csproj
rename to protocols/dotnet/Devolutions.NowProto/Devolutions.NowProto.csproj
index fd34ddf..cdaa4bb 100644
--- a/dotnet/Devolutions.NowProto/Devolutions.NowProto.csproj
+++ b/protocols/dotnet/Devolutions.NowProto/Devolutions.NowProto.csproj
@@ -6,7 +6,7 @@
Core NOW protocol library
© Devolutions Inc. All rights reserved.
MIT OR Apache-2.0
- https://github.com/Devolutions/now-proto.git
+ https://github.com/Devolutions/now-libraries.git
git
enable
diff --git a/dotnet/Devolutions.NowProto/README.md b/protocols/dotnet/Devolutions.NowProto/README.md
similarity index 100%
rename from dotnet/Devolutions.NowProto/README.md
rename to protocols/dotnet/Devolutions.NowProto/README.md
diff --git a/dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilityExec.cs b/protocols/dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilityExec.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilityExec.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilityExec.cs
diff --git a/dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilitySession.cs b/protocols/dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilitySession.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilitySession.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilitySession.cs
diff --git a/dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilitySystem.cs b/protocols/dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilitySystem.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilitySystem.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Capabilities/NowCapabilitySystem.cs
diff --git a/dotnet/Devolutions.NowProto/src/ChannelMessageKind.cs b/protocols/dotnet/Devolutions.NowProto/src/ChannelMessageKind.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/ChannelMessageKind.cs
rename to protocols/dotnet/Devolutions.NowProto/src/ChannelMessageKind.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowDecodeException.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowDecodeException.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowDecodeException.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowDecodeException.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowEncodeException.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowEncodeException.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowEncodeException.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowEncodeException.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowErrorKind.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowErrorKind.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowErrorKind.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowErrorKind.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowException.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowException.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowException.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowException.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowGenericException.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowGenericException.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowGenericException.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowGenericException.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowProtocolErrorCode.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowProtocolErrorCode.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowProtocolErrorCode.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowProtocolErrorCode.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowProtocolException.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowProtocolException.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowProtocolException.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowProtocolException.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowStatusException.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowStatusException.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowStatusException.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowStatusException.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowUnixException.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowUnixException.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowUnixException.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowUnixException.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowUnknownException.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowUnknownException.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowUnknownException.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowUnknownException.cs
diff --git a/dotnet/Devolutions.NowProto/src/Exceptions/NowWinApiException.cs b/protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowWinApiException.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Exceptions/NowWinApiException.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Exceptions/NowWinApiException.cs
diff --git a/dotnet/Devolutions.NowProto/src/ExecMessageKind.cs b/protocols/dotnet/Devolutions.NowProto/src/ExecMessageKind.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/ExecMessageKind.cs
rename to protocols/dotnet/Devolutions.NowProto/src/ExecMessageKind.cs
diff --git a/dotnet/Devolutions.NowProto/src/INowDeserialize.cs b/protocols/dotnet/Devolutions.NowProto/src/INowDeserialize.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/INowDeserialize.cs
rename to protocols/dotnet/Devolutions.NowProto/src/INowDeserialize.cs
diff --git a/dotnet/Devolutions.NowProto/src/INowMessage.cs b/protocols/dotnet/Devolutions.NowProto/src/INowMessage.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/INowMessage.cs
rename to protocols/dotnet/Devolutions.NowProto/src/INowMessage.cs
diff --git a/dotnet/Devolutions.NowProto/src/INowSerialize.cs b/protocols/dotnet/Devolutions.NowProto/src/INowSerialize.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/INowSerialize.cs
rename to protocols/dotnet/Devolutions.NowProto/src/INowSerialize.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelCapset.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelCapset.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelCapset.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelCapset.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelClose.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelClose.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelClose.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelClose.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelHeartbeat.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelHeartbeat.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelHeartbeat.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgChannelHeartbeat.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecAbort.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecAbort.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecAbort.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecAbort.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecBatch.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecBatch.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecBatch.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecBatch.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecCancelReq.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecCancelReq.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecCancelReq.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecCancelReq.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecCancelRsp.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecCancelRsp.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecCancelRsp.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecCancelRsp.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecData.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecData.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecData.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecData.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecProcess.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecProcess.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecProcess.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecProcess.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecPwsh.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecPwsh.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecPwsh.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecPwsh.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecResult.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecResult.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecResult.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecResult.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecRun.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecRun.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecRun.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecRun.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecShell.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecShell.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecShell.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecShell.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecStarted.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecStarted.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecStarted.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecStarted.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecWinPs.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecWinPs.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgExecWinPs.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgExecWinPs.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppAction.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppAction.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppAction.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppAction.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppNotify.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppNotify.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppNotify.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppNotify.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppStart.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppStart.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppStart.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmAppStart.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmCapabilities.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmCapabilities.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmCapabilities.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmCapabilities.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionAction.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionAction.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionAction.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionAction.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionNotify.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionNotify.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionNotify.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionNotify.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionStart.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionStart.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionStart.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgRdmSessionStart.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionLock.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionLock.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionLock.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionLock.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionLogoff.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionLogoff.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionLogoff.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionLogoff.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionMessageBoxRsp.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionMessageBoxRsp.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionMessageBoxRsp.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionMessageBoxRsp.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionMsgBoxReq.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionMsgBoxReq.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionMsgBoxReq.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionMsgBoxReq.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionSetKbdLayout.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionSetKbdLayout.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionSetKbdLayout.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionSetKbdLayout.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecEvent.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecEvent.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecEvent.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecEvent.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecStart.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecStart.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecStart.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecStart.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecStop.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecStop.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecStop.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSessionWindowRecStop.cs
diff --git a/dotnet/Devolutions.NowProto/src/Messages/NowMsgSystemShutdown.cs b/protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSystemShutdown.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Messages/NowMsgSystemShutdown.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Messages/NowMsgSystemShutdown.cs
diff --git a/dotnet/Devolutions.NowProto/src/NowHeader.cs b/protocols/dotnet/Devolutions.NowProto/src/NowHeader.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/NowHeader.cs
rename to protocols/dotnet/Devolutions.NowProto/src/NowHeader.cs
diff --git a/dotnet/Devolutions.NowProto/src/NowMessage.cs b/protocols/dotnet/Devolutions.NowProto/src/NowMessage.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/NowMessage.cs
rename to protocols/dotnet/Devolutions.NowProto/src/NowMessage.cs
diff --git a/dotnet/Devolutions.NowProto/src/NowProtoVersion.cs b/protocols/dotnet/Devolutions.NowProto/src/NowProtoVersion.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/NowProtoVersion.cs
rename to protocols/dotnet/Devolutions.NowProto/src/NowProtoVersion.cs
diff --git a/dotnet/Devolutions.NowProto/src/NowReadCursor.cs b/protocols/dotnet/Devolutions.NowProto/src/NowReadCursor.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/NowReadCursor.cs
rename to protocols/dotnet/Devolutions.NowProto/src/NowReadCursor.cs
diff --git a/dotnet/Devolutions.NowProto/src/NowWriteCursor.cs b/protocols/dotnet/Devolutions.NowProto/src/NowWriteCursor.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/NowWriteCursor.cs
rename to protocols/dotnet/Devolutions.NowProto/src/NowWriteCursor.cs
diff --git a/dotnet/Devolutions.NowProto/src/RdmMessageKind.cs b/protocols/dotnet/Devolutions.NowProto/src/RdmMessageKind.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/RdmMessageKind.cs
rename to protocols/dotnet/Devolutions.NowProto/src/RdmMessageKind.cs
diff --git a/dotnet/Devolutions.NowProto/src/SessionMessageKind.cs b/protocols/dotnet/Devolutions.NowProto/src/SessionMessageKind.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/SessionMessageKind.cs
rename to protocols/dotnet/Devolutions.NowProto/src/SessionMessageKind.cs
diff --git a/dotnet/Devolutions.NowProto/src/SystemMessageKind.cs b/protocols/dotnet/Devolutions.NowProto/src/SystemMessageKind.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/SystemMessageKind.cs
rename to protocols/dotnet/Devolutions.NowProto/src/SystemMessageKind.cs
diff --git a/dotnet/Devolutions.NowProto/src/Types/NowGuid.cs b/protocols/dotnet/Devolutions.NowProto/src/Types/NowGuid.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Types/NowGuid.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Types/NowGuid.cs
diff --git a/dotnet/Devolutions.NowProto/src/Types/NowStatus.cs b/protocols/dotnet/Devolutions.NowProto/src/Types/NowStatus.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Types/NowStatus.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Types/NowStatus.cs
diff --git a/dotnet/Devolutions.NowProto/src/Types/NowVarBuf.cs b/protocols/dotnet/Devolutions.NowProto/src/Types/NowVarBuf.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Types/NowVarBuf.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Types/NowVarBuf.cs
diff --git a/dotnet/Devolutions.NowProto/src/Types/NowVarStr.cs b/protocols/dotnet/Devolutions.NowProto/src/Types/NowVarStr.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Types/NowVarStr.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Types/NowVarStr.cs
diff --git a/dotnet/Devolutions.NowProto/src/Types/NowVarU32.cs b/protocols/dotnet/Devolutions.NowProto/src/Types/NowVarU32.cs
similarity index 100%
rename from dotnet/Devolutions.NowProto/src/Types/NowVarU32.cs
rename to protocols/dotnet/Devolutions.NowProto/src/Types/NowVarU32.cs
diff --git a/rust/now-proto-fuzzing/Cargo.toml b/protocols/rust/now-proto-fuzzing/Cargo.toml
similarity index 100%
rename from rust/now-proto-fuzzing/Cargo.toml
rename to protocols/rust/now-proto-fuzzing/Cargo.toml
diff --git a/rust/now-proto-fuzzing/src/generators/mod.rs b/protocols/rust/now-proto-fuzzing/src/generators/mod.rs
similarity index 100%
rename from rust/now-proto-fuzzing/src/generators/mod.rs
rename to protocols/rust/now-proto-fuzzing/src/generators/mod.rs
diff --git a/rust/now-proto-fuzzing/src/lib.rs b/protocols/rust/now-proto-fuzzing/src/lib.rs
similarity index 100%
rename from rust/now-proto-fuzzing/src/lib.rs
rename to protocols/rust/now-proto-fuzzing/src/lib.rs
diff --git a/rust/now-proto-fuzzing/src/oracles/mod.rs b/protocols/rust/now-proto-fuzzing/src/oracles/mod.rs
similarity index 100%
rename from rust/now-proto-fuzzing/src/oracles/mod.rs
rename to protocols/rust/now-proto-fuzzing/src/oracles/mod.rs
diff --git a/rust/now-proto-pdu/CHANGELOG.md b/protocols/rust/now-proto-pdu/CHANGELOG.md
similarity index 100%
rename from rust/now-proto-pdu/CHANGELOG.md
rename to protocols/rust/now-proto-pdu/CHANGELOG.md
diff --git a/rust/now-proto-pdu/Cargo.toml b/protocols/rust/now-proto-pdu/Cargo.toml
similarity index 100%
rename from rust/now-proto-pdu/Cargo.toml
rename to protocols/rust/now-proto-pdu/Cargo.toml
diff --git a/rust/now-proto-pdu/README.md b/protocols/rust/now-proto-pdu/README.md
similarity index 100%
rename from rust/now-proto-pdu/README.md
rename to protocols/rust/now-proto-pdu/README.md
diff --git a/rust/now-proto-pdu/src/channel/capset.rs b/protocols/rust/now-proto-pdu/src/channel/capset.rs
similarity index 100%
rename from rust/now-proto-pdu/src/channel/capset.rs
rename to protocols/rust/now-proto-pdu/src/channel/capset.rs
diff --git a/rust/now-proto-pdu/src/channel/close.rs b/protocols/rust/now-proto-pdu/src/channel/close.rs
similarity index 100%
rename from rust/now-proto-pdu/src/channel/close.rs
rename to protocols/rust/now-proto-pdu/src/channel/close.rs
diff --git a/rust/now-proto-pdu/src/channel/heartbeat.rs b/protocols/rust/now-proto-pdu/src/channel/heartbeat.rs
similarity index 100%
rename from rust/now-proto-pdu/src/channel/heartbeat.rs
rename to protocols/rust/now-proto-pdu/src/channel/heartbeat.rs
diff --git a/rust/now-proto-pdu/src/channel/mod.rs b/protocols/rust/now-proto-pdu/src/channel/mod.rs
similarity index 100%
rename from rust/now-proto-pdu/src/channel/mod.rs
rename to protocols/rust/now-proto-pdu/src/channel/mod.rs
diff --git a/rust/now-proto-pdu/src/core/buffer.rs b/protocols/rust/now-proto-pdu/src/core/buffer.rs
similarity index 100%
rename from rust/now-proto-pdu/src/core/buffer.rs
rename to protocols/rust/now-proto-pdu/src/core/buffer.rs
diff --git a/rust/now-proto-pdu/src/core/guid.rs b/protocols/rust/now-proto-pdu/src/core/guid.rs
similarity index 100%
rename from rust/now-proto-pdu/src/core/guid.rs
rename to protocols/rust/now-proto-pdu/src/core/guid.rs
diff --git a/rust/now-proto-pdu/src/core/header.rs b/protocols/rust/now-proto-pdu/src/core/header.rs
similarity index 100%
rename from rust/now-proto-pdu/src/core/header.rs
rename to protocols/rust/now-proto-pdu/src/core/header.rs
diff --git a/rust/now-proto-pdu/src/core/mod.rs b/protocols/rust/now-proto-pdu/src/core/mod.rs
similarity index 100%
rename from rust/now-proto-pdu/src/core/mod.rs
rename to protocols/rust/now-proto-pdu/src/core/mod.rs
diff --git a/rust/now-proto-pdu/src/core/number.rs b/protocols/rust/now-proto-pdu/src/core/number.rs
similarity index 100%
rename from rust/now-proto-pdu/src/core/number.rs
rename to protocols/rust/now-proto-pdu/src/core/number.rs
diff --git a/rust/now-proto-pdu/src/core/status.rs b/protocols/rust/now-proto-pdu/src/core/status.rs
similarity index 100%
rename from rust/now-proto-pdu/src/core/status.rs
rename to protocols/rust/now-proto-pdu/src/core/status.rs
diff --git a/rust/now-proto-pdu/src/core/string.rs b/protocols/rust/now-proto-pdu/src/core/string.rs
similarity index 100%
rename from rust/now-proto-pdu/src/core/string.rs
rename to protocols/rust/now-proto-pdu/src/core/string.rs
diff --git a/rust/now-proto-pdu/src/exec/abort.rs b/protocols/rust/now-proto-pdu/src/exec/abort.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/abort.rs
rename to protocols/rust/now-proto-pdu/src/exec/abort.rs
diff --git a/rust/now-proto-pdu/src/exec/batch.rs b/protocols/rust/now-proto-pdu/src/exec/batch.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/batch.rs
rename to protocols/rust/now-proto-pdu/src/exec/batch.rs
diff --git a/rust/now-proto-pdu/src/exec/cancel_req.rs b/protocols/rust/now-proto-pdu/src/exec/cancel_req.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/cancel_req.rs
rename to protocols/rust/now-proto-pdu/src/exec/cancel_req.rs
diff --git a/rust/now-proto-pdu/src/exec/cancel_rsp.rs b/protocols/rust/now-proto-pdu/src/exec/cancel_rsp.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/cancel_rsp.rs
rename to protocols/rust/now-proto-pdu/src/exec/cancel_rsp.rs
diff --git a/rust/now-proto-pdu/src/exec/data.rs b/protocols/rust/now-proto-pdu/src/exec/data.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/data.rs
rename to protocols/rust/now-proto-pdu/src/exec/data.rs
diff --git a/rust/now-proto-pdu/src/exec/mod.rs b/protocols/rust/now-proto-pdu/src/exec/mod.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/mod.rs
rename to protocols/rust/now-proto-pdu/src/exec/mod.rs
diff --git a/rust/now-proto-pdu/src/exec/process.rs b/protocols/rust/now-proto-pdu/src/exec/process.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/process.rs
rename to protocols/rust/now-proto-pdu/src/exec/process.rs
diff --git a/rust/now-proto-pdu/src/exec/pwsh.rs b/protocols/rust/now-proto-pdu/src/exec/pwsh.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/pwsh.rs
rename to protocols/rust/now-proto-pdu/src/exec/pwsh.rs
diff --git a/rust/now-proto-pdu/src/exec/result.rs b/protocols/rust/now-proto-pdu/src/exec/result.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/result.rs
rename to protocols/rust/now-proto-pdu/src/exec/result.rs
diff --git a/rust/now-proto-pdu/src/exec/run.rs b/protocols/rust/now-proto-pdu/src/exec/run.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/run.rs
rename to protocols/rust/now-proto-pdu/src/exec/run.rs
diff --git a/rust/now-proto-pdu/src/exec/shell.rs b/protocols/rust/now-proto-pdu/src/exec/shell.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/shell.rs
rename to protocols/rust/now-proto-pdu/src/exec/shell.rs
diff --git a/rust/now-proto-pdu/src/exec/started.rs b/protocols/rust/now-proto-pdu/src/exec/started.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/started.rs
rename to protocols/rust/now-proto-pdu/src/exec/started.rs
diff --git a/rust/now-proto-pdu/src/exec/win_ps.rs b/protocols/rust/now-proto-pdu/src/exec/win_ps.rs
similarity index 100%
rename from rust/now-proto-pdu/src/exec/win_ps.rs
rename to protocols/rust/now-proto-pdu/src/exec/win_ps.rs
diff --git a/rust/now-proto-pdu/src/lib.rs b/protocols/rust/now-proto-pdu/src/lib.rs
similarity index 100%
rename from rust/now-proto-pdu/src/lib.rs
rename to protocols/rust/now-proto-pdu/src/lib.rs
diff --git a/rust/now-proto-pdu/src/macros.rs b/protocols/rust/now-proto-pdu/src/macros.rs
similarity index 100%
rename from rust/now-proto-pdu/src/macros.rs
rename to protocols/rust/now-proto-pdu/src/macros.rs
diff --git a/rust/now-proto-pdu/src/message.rs b/protocols/rust/now-proto-pdu/src/message.rs
similarity index 100%
rename from rust/now-proto-pdu/src/message.rs
rename to protocols/rust/now-proto-pdu/src/message.rs
diff --git a/rust/now-proto-pdu/src/rdm/app_action.rs b/protocols/rust/now-proto-pdu/src/rdm/app_action.rs
similarity index 100%
rename from rust/now-proto-pdu/src/rdm/app_action.rs
rename to protocols/rust/now-proto-pdu/src/rdm/app_action.rs
diff --git a/rust/now-proto-pdu/src/rdm/app_notify.rs b/protocols/rust/now-proto-pdu/src/rdm/app_notify.rs
similarity index 100%
rename from rust/now-proto-pdu/src/rdm/app_notify.rs
rename to protocols/rust/now-proto-pdu/src/rdm/app_notify.rs
diff --git a/rust/now-proto-pdu/src/rdm/app_start.rs b/protocols/rust/now-proto-pdu/src/rdm/app_start.rs
similarity index 100%
rename from rust/now-proto-pdu/src/rdm/app_start.rs
rename to protocols/rust/now-proto-pdu/src/rdm/app_start.rs
diff --git a/rust/now-proto-pdu/src/rdm/capabilities.rs b/protocols/rust/now-proto-pdu/src/rdm/capabilities.rs
similarity index 100%
rename from rust/now-proto-pdu/src/rdm/capabilities.rs
rename to protocols/rust/now-proto-pdu/src/rdm/capabilities.rs
diff --git a/rust/now-proto-pdu/src/rdm/mod.rs b/protocols/rust/now-proto-pdu/src/rdm/mod.rs
similarity index 100%
rename from rust/now-proto-pdu/src/rdm/mod.rs
rename to protocols/rust/now-proto-pdu/src/rdm/mod.rs
diff --git a/rust/now-proto-pdu/src/rdm/session_action.rs b/protocols/rust/now-proto-pdu/src/rdm/session_action.rs
similarity index 100%
rename from rust/now-proto-pdu/src/rdm/session_action.rs
rename to protocols/rust/now-proto-pdu/src/rdm/session_action.rs
diff --git a/rust/now-proto-pdu/src/rdm/session_notify.rs b/protocols/rust/now-proto-pdu/src/rdm/session_notify.rs
similarity index 100%
rename from rust/now-proto-pdu/src/rdm/session_notify.rs
rename to protocols/rust/now-proto-pdu/src/rdm/session_notify.rs
diff --git a/rust/now-proto-pdu/src/rdm/session_start.rs b/protocols/rust/now-proto-pdu/src/rdm/session_start.rs
similarity index 100%
rename from rust/now-proto-pdu/src/rdm/session_start.rs
rename to protocols/rust/now-proto-pdu/src/rdm/session_start.rs
diff --git a/rust/now-proto-pdu/src/session/lock.rs b/protocols/rust/now-proto-pdu/src/session/lock.rs
similarity index 100%
rename from rust/now-proto-pdu/src/session/lock.rs
rename to protocols/rust/now-proto-pdu/src/session/lock.rs
diff --git a/rust/now-proto-pdu/src/session/logoff.rs b/protocols/rust/now-proto-pdu/src/session/logoff.rs
similarity index 100%
rename from rust/now-proto-pdu/src/session/logoff.rs
rename to protocols/rust/now-proto-pdu/src/session/logoff.rs
diff --git a/rust/now-proto-pdu/src/session/mod.rs b/protocols/rust/now-proto-pdu/src/session/mod.rs
similarity index 100%
rename from rust/now-proto-pdu/src/session/mod.rs
rename to protocols/rust/now-proto-pdu/src/session/mod.rs
diff --git a/rust/now-proto-pdu/src/session/msg_box_req.rs b/protocols/rust/now-proto-pdu/src/session/msg_box_req.rs
similarity index 100%
rename from rust/now-proto-pdu/src/session/msg_box_req.rs
rename to protocols/rust/now-proto-pdu/src/session/msg_box_req.rs
diff --git a/rust/now-proto-pdu/src/session/msg_box_rsp.rs b/protocols/rust/now-proto-pdu/src/session/msg_box_rsp.rs
similarity index 100%
rename from rust/now-proto-pdu/src/session/msg_box_rsp.rs
rename to protocols/rust/now-proto-pdu/src/session/msg_box_rsp.rs
diff --git a/rust/now-proto-pdu/src/session/set_kbd_layout.rs b/protocols/rust/now-proto-pdu/src/session/set_kbd_layout.rs
similarity index 100%
rename from rust/now-proto-pdu/src/session/set_kbd_layout.rs
rename to protocols/rust/now-proto-pdu/src/session/set_kbd_layout.rs
diff --git a/rust/now-proto-pdu/src/session/window_rec_event.rs b/protocols/rust/now-proto-pdu/src/session/window_rec_event.rs
similarity index 100%
rename from rust/now-proto-pdu/src/session/window_rec_event.rs
rename to protocols/rust/now-proto-pdu/src/session/window_rec_event.rs
diff --git a/rust/now-proto-pdu/src/session/window_rec_start.rs b/protocols/rust/now-proto-pdu/src/session/window_rec_start.rs
similarity index 100%
rename from rust/now-proto-pdu/src/session/window_rec_start.rs
rename to protocols/rust/now-proto-pdu/src/session/window_rec_start.rs
diff --git a/rust/now-proto-pdu/src/session/window_rec_stop.rs b/protocols/rust/now-proto-pdu/src/session/window_rec_stop.rs
similarity index 96%
rename from rust/now-proto-pdu/src/session/window_rec_stop.rs
rename to protocols/rust/now-proto-pdu/src/session/window_rec_stop.rs
index 903bdd6..ccaeb65 100644
--- a/rust/now-proto-pdu/src/session/window_rec_stop.rs
+++ b/protocols/rust/now-proto-pdu/src/session/window_rec_stop.rs
@@ -1,54 +1,54 @@
-use ironrdp_core::{Decode, DecodeResult, Encode, EncodeResult, ReadCursor, WriteCursor};
-
-use crate::{NowHeader, NowMessage, NowMessageClass, NowSessionMessage, NowSessionMessageKind};
-
-/// The NOW_SESSION_WINDOW_REC_STOP_MSG message is used to stop window recording.
-///
-/// NOW_PROTO: NOW_SESSION_WINDOW_REC_STOP_MSG
-#[derive(Debug, Clone, PartialEq, Eq, Default)]
-#[non_exhaustive]
-pub struct NowSessionWindowRecStopMsg;
-
-impl NowSessionWindowRecStopMsg {
- const NAME: &'static str = "NOW_SESSION_WINDOW_REC_STOP_MSG";
-}
-
-impl Encode for NowSessionWindowRecStopMsg {
- fn encode(&self, dst: &mut WriteCursor<'_>) -> EncodeResult<()> {
- let header = NowHeader {
- size: 0,
- class: NowMessageClass::SESSION,
- kind: NowSessionMessageKind::WINDOW_REC_STOP.0,
- flags: 0,
- };
-
- header.encode(dst)?;
-
- Ok(())
- }
-
- fn name(&self) -> &'static str {
- Self::NAME
- }
-
- fn size(&self) -> usize {
- NowHeader::FIXED_PART_SIZE
- }
-}
-
-impl Decode<'_> for NowSessionWindowRecStopMsg {
- fn decode(src: &mut ReadCursor<'_>) -> DecodeResult {
- let header = NowHeader::decode(src)?;
-
- match (header.class, NowSessionMessageKind(header.kind)) {
- (NowMessageClass::SESSION, NowSessionMessageKind::WINDOW_REC_STOP) => Ok(Self::default()),
- _ => Err(unsupported_message_err!(class: header.class.0, kind: header.kind)),
- }
- }
-}
-
-impl From for NowMessage<'_> {
- fn from(value: NowSessionWindowRecStopMsg) -> Self {
- Self::Session(NowSessionMessage::WindowRecStop(value))
- }
-}
+use ironrdp_core::{Decode, DecodeResult, Encode, EncodeResult, ReadCursor, WriteCursor};
+
+use crate::{NowHeader, NowMessage, NowMessageClass, NowSessionMessage, NowSessionMessageKind};
+
+/// The NOW_SESSION_WINDOW_REC_STOP_MSG message is used to stop window recording.
+///
+/// NOW_PROTO: NOW_SESSION_WINDOW_REC_STOP_MSG
+#[derive(Debug, Clone, PartialEq, Eq, Default)]
+#[non_exhaustive]
+pub struct NowSessionWindowRecStopMsg;
+
+impl NowSessionWindowRecStopMsg {
+ const NAME: &'static str = "NOW_SESSION_WINDOW_REC_STOP_MSG";
+}
+
+impl Encode for NowSessionWindowRecStopMsg {
+ fn encode(&self, dst: &mut WriteCursor<'_>) -> EncodeResult<()> {
+ let header = NowHeader {
+ size: 0,
+ class: NowMessageClass::SESSION,
+ kind: NowSessionMessageKind::WINDOW_REC_STOP.0,
+ flags: 0,
+ };
+
+ header.encode(dst)?;
+
+ Ok(())
+ }
+
+ fn name(&self) -> &'static str {
+ Self::NAME
+ }
+
+ fn size(&self) -> usize {
+ NowHeader::FIXED_PART_SIZE
+ }
+}
+
+impl Decode<'_> for NowSessionWindowRecStopMsg {
+ fn decode(src: &mut ReadCursor<'_>) -> DecodeResult {
+ let header = NowHeader::decode(src)?;
+
+ match (header.class, NowSessionMessageKind(header.kind)) {
+ (NowMessageClass::SESSION, NowSessionMessageKind::WINDOW_REC_STOP) => Ok(Self::default()),
+ _ => Err(unsupported_message_err!(class: header.class.0, kind: header.kind)),
+ }
+ }
+}
+
+impl From for NowMessage<'_> {
+ fn from(value: NowSessionWindowRecStopMsg) -> Self {
+ Self::Session(NowSessionMessage::WindowRecStop(value))
+ }
+}
diff --git a/rust/now-proto-pdu/src/system/mod.rs b/protocols/rust/now-proto-pdu/src/system/mod.rs
similarity index 100%
rename from rust/now-proto-pdu/src/system/mod.rs
rename to protocols/rust/now-proto-pdu/src/system/mod.rs
diff --git a/rust/now-proto-pdu/src/system/shutdown.rs b/protocols/rust/now-proto-pdu/src/system/shutdown.rs
similarity index 100%
rename from rust/now-proto-pdu/src/system/shutdown.rs
rename to protocols/rust/now-proto-pdu/src/system/shutdown.rs
diff --git a/rust/now-proto-testsuite/Cargo.toml b/protocols/rust/now-proto-testsuite/Cargo.toml
similarity index 100%
rename from rust/now-proto-testsuite/Cargo.toml
rename to protocols/rust/now-proto-testsuite/Cargo.toml
diff --git a/rust/now-proto-testsuite/src/lib.rs b/protocols/rust/now-proto-testsuite/src/lib.rs
similarity index 100%
rename from rust/now-proto-testsuite/src/lib.rs
rename to protocols/rust/now-proto-testsuite/src/lib.rs
diff --git a/rust/now-proto-testsuite/src/proto/mod.rs b/protocols/rust/now-proto-testsuite/src/proto/mod.rs
similarity index 100%
rename from rust/now-proto-testsuite/src/proto/mod.rs
rename to protocols/rust/now-proto-testsuite/src/proto/mod.rs
diff --git a/rust/now-proto-testsuite/tests/main.rs b/protocols/rust/now-proto-testsuite/tests/main.rs
similarity index 100%
rename from rust/now-proto-testsuite/tests/main.rs
rename to protocols/rust/now-proto-testsuite/tests/main.rs
diff --git a/rust/now-proto-testsuite/tests/proto/channel.rs b/protocols/rust/now-proto-testsuite/tests/proto/channel.rs
similarity index 100%
rename from rust/now-proto-testsuite/tests/proto/channel.rs
rename to protocols/rust/now-proto-testsuite/tests/proto/channel.rs
diff --git a/rust/now-proto-testsuite/tests/proto/exec.rs b/protocols/rust/now-proto-testsuite/tests/proto/exec.rs
similarity index 100%
rename from rust/now-proto-testsuite/tests/proto/exec.rs
rename to protocols/rust/now-proto-testsuite/tests/proto/exec.rs
diff --git a/rust/now-proto-testsuite/tests/proto/mod.rs b/protocols/rust/now-proto-testsuite/tests/proto/mod.rs
similarity index 100%
rename from rust/now-proto-testsuite/tests/proto/mod.rs
rename to protocols/rust/now-proto-testsuite/tests/proto/mod.rs
diff --git a/rust/now-proto-testsuite/tests/proto/rdm.rs b/protocols/rust/now-proto-testsuite/tests/proto/rdm.rs
similarity index 100%
rename from rust/now-proto-testsuite/tests/proto/rdm.rs
rename to protocols/rust/now-proto-testsuite/tests/proto/rdm.rs
diff --git a/rust/now-proto-testsuite/tests/proto/regression.rs b/protocols/rust/now-proto-testsuite/tests/proto/regression.rs
similarity index 100%
rename from rust/now-proto-testsuite/tests/proto/regression.rs
rename to protocols/rust/now-proto-testsuite/tests/proto/regression.rs
diff --git a/rust/now-proto-testsuite/tests/proto/session.rs b/protocols/rust/now-proto-testsuite/tests/proto/session.rs
similarity index 100%
rename from rust/now-proto-testsuite/tests/proto/session.rs
rename to protocols/rust/now-proto-testsuite/tests/proto/session.rs
diff --git a/rust/now-proto-testsuite/tests/proto/system.rs b/protocols/rust/now-proto-testsuite/tests/proto/system.rs
similarity index 100%
rename from rust/now-proto-testsuite/tests/proto/system.rs
rename to protocols/rust/now-proto-testsuite/tests/proto/system.rs
diff --git a/xtask/src/dotnet.rs b/xtask/src/dotnet.rs
index 2da92de..0415b32 100644
--- a/xtask/src/dotnet.rs
+++ b/xtask/src/dotnet.rs
@@ -3,11 +3,14 @@ use std::env;
use std::path::{Path, PathBuf};
const TARGET_FRAMEWORKS: &[&str] = &["net9.0", "net10.0"];
+const SOLUTION_PATH: &str = "protocols/NowProto.sln";
pub fn fmt(sh: &Shell) -> anyhow::Result<()> {
let _s = Section::new("DOTNET-FORMATTING");
- let output = cmd!(sh, "dotnet format --verify-no-changes").ignore_status().output()?;
+ let output = cmd!(sh, "dotnet format {SOLUTION_PATH} --verify-no-changes")
+ .ignore_status()
+ .output()?;
if !output.status.success() {
anyhow::bail!("Bad formatting, please run 'dotnet format'");
@@ -30,7 +33,8 @@ pub fn get_dotnet_output_path(target_framework: &str) -> anyhow::Result
let arch_folder: &str = get_target_arch()?;
let build_config = "Debug";
- let output_path = Path::new("dotnet")
+ let output_path = Path::new("protocols")
+ .join("dotnet")
.join("Devolutions.NowProto")
.join("bin")
.join(arch_folder)
@@ -57,7 +61,7 @@ pub fn build(sh: &Shell) -> anyhow::Result<()> {
let _s = Section::new("DOTNET-BUILD");
let platform = get_target_arch()?;
- cmd!(sh, "dotnet build -p:Platform={platform}").run()?;
+ cmd!(sh, "dotnet build {SOLUTION_PATH} -p:Platform={platform}").run()?;
if is_verbose() {
for &target_framework in TARGET_FRAMEWORKS {
@@ -75,7 +79,7 @@ pub fn tests_run(sh: &Shell) -> anyhow::Result<()> {
let platform = get_target_arch()?;
- cmd!(sh, "dotnet test -p:Platform={platform}").run()?;
+ cmd!(sh, "dotnet test {SOLUTION_PATH} -p:Platform={platform}").run()?;
println!("All good!");