(mini) [~/curlwebsocketplayground] telnet localhost 22 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. SSH-2.0-OpenSSH_9.0p1 Debian-1+b2 test Invalid SSH identification string. Connection closed by foreign host. (mini) [~/curlwebsocketplayground] strace -o dbg ./wsconnect 2> log SSH-2.0-OpenSSH_9.0p1 Debian-1+b2 test continuation after FIN (mini) [~/curlwebsocketplayground] (mini) [~/curlwebsocketplayground] cat log * Trying 127.0.0.1:12345... * Connected to 127.0.0.1 (127.0.0.1) port 12345 (#0) > GET /rdp HTTP/1.1 Host: 127.0.0.1:12345 Accept: */* Upgrade: websocket Connection: Upgrade Sec-WebSocket-Version: 13 Sec-WebSocket-Key: C5CVwPi0JCS8U8xIge1yLA== * Mark bundle as not supporting multiuse < HTTP/1.1 101 Switching Protocols < Upgrade: websocket < Connection: Upgrade < Sec-WebSocket-Accept: GODreIujivE1vp87CJ5ktuLDIK4= * Received 101, switch to WebSocket; mask 420ca68e < * Connection #0 to host 127.0.0.1 left intact FD_ZERO STDIN_FILENO: ready to receive remotefd: ready to receive remotefd: trying to read * WS: got 37 websocket bytes to decode * WS:237 received FIN bit 1 * WS: received OPCODE BINARY * WS: received 35 bytes payload (0 left) remotefd: 35 bytes read FD_ZERO STDIN_FILENO: ready to receive remotefd: ready to receive STDOUT_FILENO: ready to send STDOUT_FILENO: trying to send 35 bytes STDOUT_FILENO: 35 bytes (ALL) sent. from empty. FD_ZERO STDIN_FILENO: ready to receive remotefd: ready to receive STDIN_FILENO: trying to read STDIN_FILENO: 5 bytes read FD_ZERO STDIN_FILENO: ready to receive remotefd: ready to receive remotefd: ready to send remotefd: trying to send 5 bytes * WS: send OPCODE BINARY * WS: send FIN bit 0 (byte 00) * WS: send payload len 5 * WS: wanted to send 11 bytes, sent 11 bytes remotefd: 5 bytes (ALL) sent. to empty. FD_ZERO STDIN_FILENO: ready to receive remotefd: ready to receive remotefd: trying to read * WS: got 26 websocket bytes to decode * WS:237 received FIN bit 1 * WS: received OPCODE CLOSE * WS: received 24 bytes payload (0 left) remotefd: 24 bytes read FD_ZERO STDIN_FILENO: ready to receive remotefd: ready to receive STDOUT_FILENO: ready to send STDOUT_FILENO: trying to send 24 bytes STDOUT_FILENO: 24 bytes (ALL) sent. from empty. FD_ZERO STDIN_FILENO: ready to receive remotefd: ready to receive STDIN_FILENO: trying to read STDIN_FILENO: 1 bytes read FD_ZERO STDIN_FILENO: ready to receive remotefd: ready to receive remotefd: ready to send remotefd: trying to send 1 bytes * WS: send OPCODE BINARY * WS: send FIN bit 0 (byte 00) * WS: send payload len 1 * WS: wanted to send 7 bytes, sent 7 bytes remotefd: 1 bytes (ALL) sent. to empty. FD_ZERO STDIN_FILENO: ready to receive remotefd: ready to receive STDIN_FILENO: trying to read 0 = read(STDIN_FILENO, toiptr, &to[BUFFER_SIZE] - toiptr, 0); errno = 115 Connection terminated (mini) [~/curlwebsocketplayground] cat dbg execve("./wsconnect", ["./wsconnect"], 0xffffdf182010 /* 79 vars */) = 0 brk(NULL) = 0xaaabb1114000 faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=84530, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 84530, PROT_READ, MAP_PRIVATE, 3, 0) = 0xffff1293c000 close(3) = 0 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libidn2.so.0", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=198664, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 327784, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff128e8000 mmap(0xffff128f0000, 262248, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff128f0000 munmap(0xffff128e8000, 32768) = 0 munmap(0xffff12934000, 16488) = 0 mprotect(0xffff12920000, 49152, PROT_NONE) = 0 mmap(0xffff1292c000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2c000) = 0xffff1292c000 close(3) = 0 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libssl.so.1.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=573080, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 702640, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff12844000 mmap(0xffff12850000, 637104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff12850000 munmap(0xffff12844000, 49152) = 0 munmap(0xffff128ec000, 14512) = 0 mprotect(0xffff128d0000, 49152, PROT_NONE) = 0 mmap(0xffff128dc000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7c000) = 0xffff128dc000 close(3) = 0 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libcrypto.so.1.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=2727664, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 2874504, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff12590000 mmap(0xffff12590000, 2808968, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff12590000 munmap(0xffff12840000, 56456) = 0 mprotect(0xffff127fc000, 49152, PROT_NONE) = 0 mmap(0xffff12808000, 212992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x268000) = 0xffff12808000 mmap(0xffff1283c000, 7304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff1283c000 close(3) = 0 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libbrotlidec.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=67688, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 196728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff1255c000 mmap(0xffff12560000, 131192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff12560000 munmap(0xffff1255c000, 16384) = 0 munmap(0xffff12584000, 32888) = 0 mprotect(0xffff1256c000, 65536, PROT_NONE) = 0 mmap(0xffff1257c000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0xffff1257c000 close(3) = 0 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\340u\2\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1651496, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 1826784, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff123a0000 mmap(0xffff123a0000, 1761248, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff123a0000 munmap(0xffff12550000, 57312) = 0 mprotect(0xffff12528000, 81920, PROT_NONE) = 0 mmap(0xffff1253c000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18c000) = 0xffff1253c000 mmap(0xffff12544000, 40928, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffff12544000 close(3) = 0 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libunistring.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=1771448, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff12934000 mmap(NULL, 1902760, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff121cc000 mmap(0xffff121d0000, 1837224, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff121d0000 munmap(0xffff121cc000, 16384) = 0 munmap(0xffff12394000, 34984) = 0 mprotect(0xffff1237c000, 65536, PROT_NONE) = 0 mmap(0xffff1238c000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ac000) = 0xffff1238c000 close(3) = 0 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=67592, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 196640, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff1219c000 mmap(0xffff121a0000, 131104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff121a0000 munmap(0xffff1219c000, 16384) = 0 munmap(0xffff121c4000, 32800) = 0 mprotect(0xffff121a4000, 98304, PROT_NONE) = 0 mmap(0xffff121bc000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0xffff121bc000 close(3) = 0 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=67592, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 196640, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff1216c000 mmap(0xffff12170000, 131104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff12170000 munmap(0xffff1216c000, 16384) = 0 munmap(0xffff12194000, 32800) = 0 mprotect(0xffff12174000, 98304, PROT_NONE) = 0 mmap(0xffff1218c000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0xffff1218c000 close(3) = 0 openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libbrotlicommon.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=133232, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 262192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xffff1212c000 mmap(0xffff12130000, 196656, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0xffff12130000 munmap(0xffff1212c000, 16384) = 0 munmap(0xffff12164000, 32816) = 0 mprotect(0xffff12150000, 49152, PROT_NONE) = 0 mmap(0xffff1215c000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0xffff1215c000 close(3) = 0 set_tid_address(0xffff12936730) = 135740 set_robust_list(0xffff12936740, 24) = 0 rseq(0xffff12936e00, 0x20, 0, 0xd428bc00) = 0 mprotect(0xffff1253c000, 16384, PROT_READ) = 0 mprotect(0xffff1215c000, 16384, PROT_READ) = 0 mprotect(0xffff1218c000, 16384, PROT_READ) = 0 mprotect(0xffff121bc000, 16384, PROT_READ) = 0 mprotect(0xffff1238c000, 16384, PROT_READ) = 0 mprotect(0xffff1257c000, 16384, PROT_READ) = 0 mprotect(0xffff12808000, 196608, PROT_READ) = 0 mprotect(0xffff128dc000, 49152, PROT_READ) = 0 mprotect(0xffff1292c000, 16384, PROT_READ) = 0 mprotect(0xaaaba660c000, 16384, PROT_READ) = 0 mprotect(0xffff12990000, 16384, PROT_READ) = 0 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 munmap(0xffff1293c000, 84530) = 0 rt_sigprocmask(SIG_SETMASK, ~[ILL TRAP BUS FPE SEGV RTMIN RT_1], [], 8) = 0 rt_sigaction(SIGILL, {sa_handler=0xffff126234d0, sa_mask=~[ILL TRAP BUS FPE SEGV RTMIN RT_1], sa_flags=0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, ~[ILL TRAP BUS FPE KILL SEGV STOP RTMIN RT_1], 8) = 0 rt_sigaction(SIGILL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 fcntl(0, F_GETFL) = 0x402 (flags O_RDWR|O_APPEND) fcntl(0, F_SETFL, O_RDWR|O_APPEND|O_NONBLOCK) = 0 fcntl(1, F_GETFL) = 0xc02 (flags O_RDWR|O_APPEND|O_NONBLOCK) fcntl(1, F_SETFL, O_RDWR|O_APPEND|O_NONBLOCK) = 0 getrandom("\x61\x89\x58\x34\xda\x60\x21\x90", 8, GRND_NONBLOCK) = 8 brk(NULL) = 0xaaabb1114000 brk(0xaaabb1138000) = 0xaaabb1138000 futex(0xffff1283c568, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283c56c, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283c570, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283c644, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283c578, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283c57c, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283c58c, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff128399e8, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283c438, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283a3d0, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283a2c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283c574, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff1283c590, FUTEX_WAKE_PRIVATE, 2147483647) = 0 openat(AT_FDCWD, "/usr/lib/ssl/openssl.cnf", O_RDONLY) = 3 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=12300, ...}, AT_EMPTY_PATH) = 0 read(3, "#\n# OpenSSL example configuratio"..., 4096) = 4096 read(3, "he listed attributes must be the"..., 4096) = 4096 read(3, "R hex encoding of an extension: "..., 4096) = 4096 brk(0xaaabb115c000) = 0xaaabb115c000 read(3, "ta.cert.pem\n", 4096) = 12 read(3, "", 4096) = 0 close(3) = 0 futex(0xffff1283c580, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0xffff128eb888, FUTEX_WAKE_PRIVATE, 2147483647) = 0 sysinfo({uptime=12944, loads=[53088, 28608, 26688], totalram=16515153920, freeram=539115520, sharedram=50937856, bufferram=211943424, totalswap=0, freeswap=0, procs=867, totalhigh=0, freehigh=0, mem_unit=1}) = 0 futex(0xffff128eb8a0, FUTEX_WAKE_PRIVATE, 2147483647) = 0 socketpair(AF_UNIX, SOCK_STREAM, 0, [3, 4]) = 0 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 fcntl(4, F_GETFL) = 0x2 (flags O_RDWR) fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 ppoll([{fd=3, events=POLLIN}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 0 (Timeout) rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 5 write(2, "* ", 2) = 2 write(2, " Trying 127.0.0.1:12345...\n", 28) = 28 setsockopt(5, SOL_TCP, TCP_NODELAY, [1], 4) = 0 fcntl(5, F_GETFL) = 0x2 (flags O_RDWR) fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0 connect(5, {sa_family=AF_INET, sin_port=htons(12345), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress) ppoll([{fd=5, events=POLLPRI|POLLOUT|POLLWRNORM}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 ([{fd=5, revents=POLLOUT|POLLWRNORM}], left {tv_sec=0, tv_nsec=0}) getsockopt(5, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 getpeername(5, {sa_family=AF_INET, sin_port=htons(12345), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0 getsockname(5, {sa_family=AF_INET, sin_port=htons(40678), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0 write(2, "* ", 2) = 2 write(2, "Connected to 127.0.0.1 (127.0.0."..., 51) = 51 futex(0xffff1283c6a8, FUTEX_WAKE_PRIVATE, 2147483647) = 0 getpid() = 135740 getrandom("\x9c\xeb\xa8\xd3\x4b\x8b\x23\x69\xed\xfe\xd6\xc3\x94\x04\x44\xd1\x0c\xd9\xd2\xdb\xee\x14\x58\xba\x16\x83\x54\xa6\x5a\xec\x00\xfe", 32, 0) = 32 getpid() = 135740 futex(0xffff1283c684, FUTEX_WAKE_PRIVATE, 2147483647) = 0 getpid() = 135740 getpid() = 135740 getpid() = 135740 getpid() = 135740 getpid() = 135740 getpid() = 135740 getpid() = 135740 getpid() = 135740 getpid() = 135740 getpid() = 135740 sendto(5, "GET /rdp HTTP/1.1\r\nHost: 127.0.0"..., 170, MSG_NOSIGNAL, NULL, 0) = 170 write(2, "> ", 2) = 2 write(2, "GET /rdp HTTP/1.1\r\nHost: 127.0.0"..., 170) = 170 ppoll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 0 (Timeout) rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 ppoll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, {tv_sec=0, tv_nsec=199000000}, NULL, 0) = 1 ([{fd=5, revents=POLLIN}], left {tv_sec=0, tv_nsec=198998625}) rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 ppoll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 ([{fd=5, revents=POLLIN|POLLRDNORM}], left {tv_sec=0, tv_nsec=0}) recvfrom(5, "HTTP/1.1 101 Switching Protocols"..., 16384, 0, NULL, NULL) = 129 write(2, "* ", 2) = 2 write(2, "Mark bundle as not supporting mu"..., 39) = 39 write(2, "< ", 2) = 2 write(2, "HTTP/1.1 101 Switching Protocols"..., 34) = 34 write(2, "< ", 2) = 2 write(2, "Upgrade: websocket\r\n", 20) = 20 write(2, "< ", 2) = 2 write(2, "Connection: Upgrade\r\n", 21) = 21 write(2, "< ", 2) = 2 write(2, "Sec-WebSocket-Accept: GODreIujiv"..., 52) = 52 getpid() = 135740 getpid() = 135740 write(2, "* ", 2) = 2 write(2, "Received 101, switch to WebSocke"..., 49) = 49 fcntl(5, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) fcntl(5, F_SETFL, O_RDWR) = 0 write(2, "< ", 2) = 2 write(2, "\r\n", 2) = 2 write(2, "* ", 2) = 2 write(2, "Connection #0 to host 127.0.0.1 "..., 44) = 44 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 8) = 0 write(2, "FD_ZERO\n", 8) = 8 write(2, "STDIN_FILENO: ready to receive\n", 31) = 31 write(2, "remotefd: ready to receive\n", 27) = 27 pselect6(6, [0 5], [], [], NULL, NULL) = 1 (in [5]) write(2, "remotefd: trying to read\n", 26) = 26 recvfrom(5, "\202#SSH-2.0-OpenSSH_9.0p1 Debian-1"..., 16384, 0, NULL, NULL) = 37 write(2, "* ", 2) = 2 write(2, "WS: got 37 websocket bytes to de"..., 37) = 37 write(2, "* ", 2) = 2 write(2, "WS:237 received FIN bit 1\n", 26) = 26 write(2, "* ", 2) = 2 write(2, "WS: received OPCODE BINARY\n", 27) = 27 write(2, "* ", 2) = 2 write(2, "WS: received 35 bytes payload (0"..., 39) = 39 write(2, "remotefd: 35 bytes read\n", 24) = 24 write(2, "FD_ZERO\n", 8) = 8 write(2, "STDIN_FILENO: ready to receive\n", 31) = 31 write(2, "remotefd: ready to receive\n", 27) = 27 write(2, "STDOUT_FILENO: ready to send\n", 29) = 29 pselect6(6, [0 5], [1], [], NULL, NULL) = 1 (out [1]) write(2, "STDOUT_FILENO: trying to send 35"..., 39) = 39 write(1, "SSH-2.0-OpenSSH_9.0p1 Debian-1+b"..., 35) = 35 write(2, "STDOUT_FILENO: 35 bytes (ALL) se"..., 48) = 48 write(2, "FD_ZERO\n", 8) = 8 write(2, "STDIN_FILENO: ready to receive\n", 31) = 31 write(2, "remotefd: ready to receive\n", 27) = 27 pselect6(6, [0 5], [], [], NULL, NULL) = 1 (in [0]) write(2, "STDIN_FILENO: trying to read\n", 29) = 29 read(0, "test\n", 8192) = 5 write(2, "STDIN_FILENO: 5 bytes read\n", 27) = 27 write(2, "FD_ZERO\n", 8) = 8 write(2, "STDIN_FILENO: ready to receive\n", 31) = 31 write(2, "remotefd: ready to receive\n", 27) = 27 write(2, "remotefd: ready to send\n", 24) = 24 pselect6(6, [0 5], [5], [], NULL, NULL) = 1 (out [5]) write(2, "remotefd: trying to send 5 bytes"..., 33) = 33 write(2, "* ", 2) = 2 write(2, "WS: send OPCODE BINARY\n", 23) = 23 write(2, "* ", 2) = 2 write(2, "WS: send FIN bit 0 (byte 00)\n", 29) = 29 write(2, "* ", 2) = 2 write(2, "WS: send payload len 5\n", 23) = 23 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 sendto(5, "\0\205B\f\246\2166i\325\372H", 11, MSG_NOSIGNAL, NULL, 0) = 11 rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 8) = 0 write(2, "* ", 2) = 2 write(2, "WS: wanted to send 11 bytes, sen"..., 43) = 43 write(2, "remotefd: 5 bytes (ALL) sent. to"..., 40) = 40 write(2, "FD_ZERO\n", 8) = 8 write(2, "STDIN_FILENO: ready to receive\n", 31) = 31 write(2, "remotefd: ready to receive\n", 27) = 27 pselect6(6, [0 5], [], [], NULL, NULL) = 1 (in [5]) write(2, "remotefd: trying to read\n", 26) = 26 recvfrom(5, "\210\30\3\352continuation after FIN", 16384, 0, NULL, NULL) = 26 write(2, "* ", 2) = 2 write(2, "WS: got 26 websocket bytes to de"..., 37) = 37 write(2, "* ", 2) = 2 write(2, "WS:237 received FIN bit 1\n", 26) = 26 write(2, "* ", 2) = 2 write(2, "WS: received OPCODE CLOSE\n", 26) = 26 write(2, "* ", 2) = 2 write(2, "WS: received 24 bytes payload (0"..., 39) = 39 write(2, "remotefd: 24 bytes read\n", 24) = 24 write(2, "FD_ZERO\n", 8) = 8 write(2, "STDIN_FILENO: ready to receive\n", 31) = 31 write(2, "remotefd: ready to receive\n", 27) = 27 write(2, "STDOUT_FILENO: ready to send\n", 29) = 29 pselect6(6, [0 5], [1], [], NULL, NULL) = 1 (out [1]) write(2, "STDOUT_FILENO: trying to send 24"..., 39) = 39 write(1, "\3\352continuation after FIN", 24) = 24 write(2, "STDOUT_FILENO: 24 bytes (ALL) se"..., 48) = 48 write(2, "FD_ZERO\n", 8) = 8 write(2, "STDIN_FILENO: ready to receive\n", 31) = 31 write(2, "remotefd: ready to receive\n", 27) = 27 pselect6(6, [0 5], [], [], NULL, NULL) = 1 (in [0]) write(2, "STDIN_FILENO: trying to read\n", 29) = 29 read(0, "\n", 8192) = 1 write(2, "STDIN_FILENO: 1 bytes read\n", 27) = 27 write(2, "FD_ZERO\n", 8) = 8 write(2, "STDIN_FILENO: ready to receive\n", 31) = 31 write(2, "remotefd: ready to receive\n", 27) = 27 write(2, "remotefd: ready to send\n", 24) = 24 pselect6(6, [0 5], [5], [], NULL, NULL) = 1 (out [5]) write(2, "remotefd: trying to send 1 bytes"..., 33) = 33 write(2, "* ", 2) = 2 write(2, "WS: send OPCODE BINARY\n", 23) = 23 write(2, "* ", 2) = 2 write(2, "WS: send FIN bit 0 (byte 00)\n", 29) = 29 write(2, "* ", 2) = 2 write(2, "WS: send payload len 1\n", 23) = 23 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 sendto(5, "\0\201B\f\246\216H", 7, MSG_NOSIGNAL, NULL, 0) = 7 rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 8) = 0 write(2, "* ", 2) = 2 write(2, "WS: wanted to send 7 bytes, sent"..., 41) = 41 write(2, "remotefd: 1 bytes (ALL) sent. to"..., 40) = 40 write(2, "FD_ZERO\n", 8) = 8 write(2, "STDIN_FILENO: ready to receive\n", 31) = 31 write(2, "remotefd: ready to receive\n", 27) = 27 pselect6(6, [0 5], [], [], NULL, NULL) = 1 (in [0]) write(2, "STDIN_FILENO: trying to read\n", 29) = 29 read(0, "", 8192) = 0 write(2, "0 = read(STDIN_FILENO, toiptr, &"..., 74) = 74 write(2, "Connection terminated\n", 22) = 22 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 close(5) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=0}, NULL, 8) = 0 close(3) = 0 close(4) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 8) = 0 exit_group(0) = ? +++ exited with 0 +++ (mini) [~/curlwebsocketplayground]