Make ssh data start request transmission more robust

This commit is contained in:
Kovid Goyal 2022-02-26 15:20:48 +05:30
parent 37c185462a
commit 12658c4756
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 8 additions and 3 deletions

View File

@ -10,6 +10,7 @@ import sys
import tarfile
import tempfile
import time
from base64 import standard_b64decode
from contextlib import suppress
from typing import (
Any, Dict, Iterator, List, NoReturn, Optional, Set, Tuple, Union
@ -62,7 +63,11 @@ def get_ssh_data(msg: str, shell_integration_dest: str = DEFAULT_SHELL_INTEGRATI
return f'\036{msg}:'.encode('ascii')
try:
hostname, pwfilename, pw = msg.split(':', 2)
msg = standard_b64decode(msg).decode('utf-8')
md = dict(x.split('=', 1) for x in msg.split(':'))
hostname = md['hostname']
pw = md['pw']
pwfilename = md['pwfile']
except Exception:
yield fmt_prefix('!invalid ssh data request message')
try:

View File

@ -8,7 +8,7 @@ cleanup_on_bootstrap_exit() {
}
die() { printf "\033[31m%s\033[m\n" "$*" > /dev/stderr; cleanup_on_bootstrap_exit; exit 1; }
dsc_to_kitty() { printf "\033P@kitty-$1|%s\033\\" "$(printf "%s" "$2" | base64)" > /dev/tty; }
dsc_to_kitty() { printf "\033P@kitty-$1|%s\033\\" "$(printf "%s" "$2" | base64 | tr -d \\n)" > /dev/tty; }
debug() { dsc_to_kitty "print" "debug $1"; }
echo_via_kitty() { dsc_to_kitty "echo" "$1"; }
saved_tty_settings=$(command stty -g)
@ -34,7 +34,7 @@ password_filename="PASSWORD_FILENAME"
data_complete="n"
leading_data=""
printf "\033P@kitty-ssh|%s:%s:%s\033\\" "$hostname" "$password_filename" "$data_password"
dsc_to_kitty "ssh" "hostname=$hostname:pwfile=$password_filename:pw=$data_password"
size=""
untar() {