[pve-devel] [PATCH http-server 3/4] websocket_proxy: implement ping/pong support

Fabian Grünbichler f.gruenbichler at proxmox.com
Fri Mar 6 11:20:29 CET 2020


needed to keep tunnel connections alive.

Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
---
 PVE/APIServer/AnyEvent.pm | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/PVE/APIServer/AnyEvent.pm b/PVE/APIServer/AnyEvent.pm
index 7147d81..bc2ec4d 100644
--- a/PVE/APIServer/AnyEvent.pm
+++ b/PVE/APIServer/AnyEvent.pm
@@ -511,6 +511,11 @@ sub websocket_proxy {
 				$reqstate->{proxyhdl}->push_shutdown();
 		    }
 			$hdl->push_shutdown();
+		    } elsif ($opcode == 9) {
+			# ping received, schedule pong
+			$reqstate->{hdl}->push_write($encode->(\$payload, "\x8A")) if $reqstate->{hdl};
+		    } elsif ($opcode == 0xA) {
+			# pong received, continue
 		    } else {
 			die "received unhandled websocket opcode $opcode\n";
 		    }
-- 
2.20.1





More information about the pve-devel mailing list