X-Git-Url: https://git.proxmox.com/?p=pve-client.git;a=blobdiff_plain;f=PVE%2FAPIClient%2FCommands%2Flxc.pm;h=df7262571744323fb71eb6640bb1e823351e26bd;hp=23f33b2a68ee3a7285218b17a341c9749b5e3c2d;hb=1334102e03c47615e683479ce2eb1ede4bf5864b;hpb=3226300c1bdd86a31d5efd7b81a4b02ed543d02e diff --git a/PVE/APIClient/Commands/lxc.pm b/PVE/APIClient/Commands/lxc.pm index 23f33b2..df72625 100644 --- a/PVE/APIClient/Commands/lxc.pm +++ b/PVE/APIClient/Commands/lxc.pm @@ -71,15 +71,13 @@ my $create_websockt_frame = sub { my $parse_web_socket_frame = sub { my ($wsbuf_ref) = @_; - my $wsbuf = $$wsbuf_ref; - my $payload; my $req_close = 0; - while (my $len = length($wsbuf)) { + while (my $len = length($$wsbuf_ref)) { last if $len < 2; - my $hdr = unpack('C', substr($wsbuf, 0, 1)); + my $hdr = unpack('C', substr($$wsbuf_ref, 0, 1)); my $opcode = $hdr & 0b00001111; my $fin = $hdr & 0b10000000; @@ -88,7 +86,7 @@ my $parse_web_socket_frame = sub { my $rsv = $hdr & 0b01110000; die "received websocket frame with RSV flags\n" if $rsv; - my $payload_len = unpack 'C', substr($wsbuf, 1, 1); + my $payload_len = unpack 'C', substr($$wsbuf_ref, 1, 1); my $masked = $payload_len & 0b10000000; die "received masked websocket frame from server\n" if $masked; @@ -97,11 +95,11 @@ my $parse_web_socket_frame = sub { $payload_len = $payload_len & 0b01111111; if ($payload_len == 126) { last if $len < 4; - $payload_len = unpack('n', substr($wsbuf, $offset, 2)); + $payload_len = unpack('n', substr($$wsbuf_ref, $offset, 2)); $offset += 2; } elsif ($payload_len == 127) { last if $len < 10; - $payload_len = unpack('Q>', substr($wsbuf, $offset, 8)); + $payload_len = unpack('Q>', substr($$wsbuf_ref, $offset, 8)); $offset += 8; } @@ -110,7 +108,7 @@ my $parse_web_socket_frame = sub { last if $len < ($offset + $payload_len); - my $data = substr($wsbuf, 0, $offset + $payload_len, ''); # now consume data + my $data = substr($$wsbuf_ref, 0, $offset + $payload_len, ''); # now consume data my $frame_data = substr($data, $offset, $payload_len); @@ -150,7 +148,7 @@ my $client_exit = sub { } # switch back to blocking mode (else later shell commands will fail). - STDIN->blocking(0); + STDIN->blocking(1); # # Reset the terminal parameters.