[pbs-devel] applied: [PATCH] api: RPC environment: add client IP getter/setter to trait

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Oct 14 17:33:15 CEST 2020


This is similar to what we have in PVE and PMG now. Will be used to
set the real client IP for proxied connections.

with a dummy implementation, which avoids the need to implement it
for the CLI or Backup environments, which do not have or care for a
client IP

Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---

preparatory to a proxmox-backup patch set I'm working on

 proxmox/src/api/rpc_environment.rs | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/proxmox/src/api/rpc_environment.rs b/proxmox/src/api/rpc_environment.rs
index 1b68928..430f3a6 100644
--- a/proxmox/src/api/rpc_environment.rs
+++ b/proxmox/src/api/rpc_environment.rs
@@ -19,6 +19,16 @@ pub trait RpcEnvironment: std::any::Any + AsAny + Send {
 
     /// Get user name
     fn get_user(&self) -> Option<String>;
+
+    /// Set the client IP, should be re-set if a proxied connection was detected
+    fn set_client_ip(&mut self, _client_ip: Option<std::net::SocketAddr>) {
+        // dummy no-op implementation, as most environments don't need this
+    }
+
+    /// Get the (real) client IP
+    fn get_client_ip(&self) -> Option<std::net::SocketAddr> {
+        None // dummy no-op implementation, as most environments don't need this
+    }
 }
 
 /// Environment Type
-- 
2.27.0






More information about the pbs-devel mailing list