From 544a9fc5928d0082f0527bf10a1970cfd37493d2 Mon Sep 17 00:00:00 2001 From: matt Date: Thu, 5 Aug 2021 11:12:03 -0400 Subject: [PATCH 1/6] KASM-1512 api stats KASM-1790 cursor --- .gitmodules | 2 +- kasmweb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index a57ba67..e43a13a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "kasmweb"] path = kasmweb url = https://github.com/kasmtech/noVNC.git - branch = apistats + branch = master diff --git a/kasmweb b/kasmweb index f9f5b01..519a402 160000 --- a/kasmweb +++ b/kasmweb @@ -1 +1 @@ -Subproject commit f9f5b01cc23f3084f83ccf15c144de130b8b3222 +Subproject commit 519a40213b6e2baec94464c8e65d5b4be07c0536 From ec6bd697a8785e2f3ed82cafd3b6a4c47fa43491 Mon Sep 17 00:00:00 2001 From: matt Date: Thu, 5 Aug 2021 14:48:41 -0400 Subject: [PATCH 2/6] update novnc ref --- kasmweb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kasmweb b/kasmweb index 519a402..ba40cac 160000 --- a/kasmweb +++ b/kasmweb @@ -1 +1 @@ -Subproject commit 519a40213b6e2baec94464c8e65d5b4be07c0536 +Subproject commit ba40cacce068fa35fc706c41605db14c04348170 From 9ca850a108cab215a72e579271dcfccad7df075b Mon Sep 17 00:00:00 2001 From: Lauri Kasanen Date: Fri, 13 Aug 2021 12:15:17 +0300 Subject: [PATCH 3/6] Add pid to the internal socket name, clarify websocketport bind error --- common/network/TcpSocket.cxx | 11 ++++++++--- common/network/websockify.c | 8 ++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/common/network/TcpSocket.cxx b/common/network/TcpSocket.cxx index 141bdf7..f6f4a5a 100644 --- a/common/network/TcpSocket.cxx +++ b/common/network/TcpSocket.cxx @@ -40,6 +40,8 @@ #include #include #include +#include +#include #include "websocket.h" #include @@ -564,7 +566,7 @@ WebsocketListener::WebsocketListener(const struct sockaddr *listenaddr, if (bind(sock, &sa.u.sa, listenaddrlen) == -1) { int e = errorNumber; closesocket(sock); - throw SocketException("failed to bind socket", e); + throw SocketException("failed to bind socket, is someone else on our -websocketPort?", e); } listen(sock); // sets the internal fd @@ -574,13 +576,16 @@ WebsocketListener::WebsocketListener(const struct sockaddr *listenaddr, // internalSocket = socket(AF_UNIX, SOCK_STREAM, 0); + char sockname[32]; + sprintf(sockname, ".KasmVNCSock%u", getpid()); + struct sockaddr_un addr; addr.sun_family = AF_UNIX; - strcpy(addr.sun_path, ".KasmVNCSock"); + strcpy(addr.sun_path, sockname); addr.sun_path[0] = '\0'; if (bind(internalSocket, (struct sockaddr *) &addr, - sizeof(sa_family_t) + sizeof(".KasmVNCSock"))) { + sizeof(sa_family_t) + strlen(sockname))) { throw SocketException("failed to bind socket", errorNumber); } diff --git a/common/network/websockify.c b/common/network/websockify.c index 08491c9..a97c189 100644 --- a/common/network/websockify.c +++ b/common/network/websockify.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "websocket.h" /* @@ -223,9 +224,12 @@ static void do_proxy(ws_ctx_t *ws_ctx, int target) { void proxy_handler(ws_ctx_t *ws_ctx) { + char sockname[32]; + sprintf(sockname, ".KasmVNCSock%u", getpid()); + struct sockaddr_un addr; addr.sun_family = AF_UNIX; - strcpy(addr.sun_path, ".KasmVNCSock"); + strcpy(addr.sun_path, sockname); addr.sun_path[0] = '\0'; struct timeval tv; @@ -243,7 +247,7 @@ void proxy_handler(ws_ctx_t *ws_ctx) { handler_msg("connecting to VNC target\n"); if (connect(tsock, (struct sockaddr *) &addr, - sizeof(sa_family_t) + sizeof(".KasmVNCSock")) < 0) { + sizeof(sa_family_t) + strlen(sockname)) < 0) { handler_emsg("Could not connect to target: %s\n", strerror(errno)); From 9ec4cba1847b50bba094e24533cef96925ef5d8b Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Tue, 17 Aug 2021 00:00:55 +1200 Subject: [PATCH 4/6] Slash a minute off tarball build --- builder/dockerfile.centos_core.build | 3 +-- builder/dockerfile.debian_bullseye.build | 3 +-- builder/dockerfile.debian_buster.build | 3 +-- builder/dockerfile.fedora_thirtythree.build | 3 +-- builder/dockerfile.kali_kali-rolling.build | 3 +-- builder/dockerfile.ubuntu1604.build | 3 +-- builder/dockerfile.ubuntu_bionic.build | 3 +-- builder/dockerfile.ubuntu_focal.build | 3 +-- 8 files changed, 8 insertions(+), 16 deletions(-) diff --git a/builder/dockerfile.centos_core.build b/builder/dockerfile.centos_core.build index 06dad21..4574075 100644 --- a/builder/dockerfile.centos_core.build +++ b/builder/dockerfile.centos_core.build @@ -22,8 +22,7 @@ RUN cd /tmp/libwebp-1.0.2 && \ RUN useradd -m docker && echo "docker:docker" | chpasswd -COPY . /src -RUN chown -R docker:docker /src +COPY --chown=docker:docker . /src/ USER docker ENTRYPOINT ["/src/builder/build.sh"] diff --git a/builder/dockerfile.debian_bullseye.build b/builder/dockerfile.debian_bullseye.build index 3c19f4c..0a8428e 100644 --- a/builder/dockerfile.debian_bullseye.build +++ b/builder/dockerfile.debian_bullseye.build @@ -24,8 +24,7 @@ RUN cd /tmp/libwebp-1.0.2 && \ RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo -COPY . /src -RUN chown -R docker:docker /src +COPY --chown=docker:docker . /src/ USER docker ENTRYPOINT ["/src/builder/build.sh"] diff --git a/builder/dockerfile.debian_buster.build b/builder/dockerfile.debian_buster.build index 721b1a6..a47b6fe 100644 --- a/builder/dockerfile.debian_buster.build +++ b/builder/dockerfile.debian_buster.build @@ -24,8 +24,7 @@ RUN cd /tmp/libwebp-1.0.2 && \ RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo -COPY . /src -RUN chown -R docker:docker /src +COPY --chown=docker:docker . /src/ USER docker ENTRYPOINT ["/src/builder/build.sh"] diff --git a/builder/dockerfile.fedora_thirtythree.build b/builder/dockerfile.fedora_thirtythree.build index be70715..8dc4b29 100644 --- a/builder/dockerfile.fedora_thirtythree.build +++ b/builder/dockerfile.fedora_thirtythree.build @@ -31,8 +31,7 @@ RUN cd /tmp/libwebp-1.0.2 && \ RUN useradd -m docker && echo "docker:docker" | chpasswd -COPY . /src -RUN chown -R docker:docker /src +COPY --chown=docker:docker . /src/ USER docker ENTRYPOINT ["/src/builder/build.sh"] diff --git a/builder/dockerfile.kali_kali-rolling.build b/builder/dockerfile.kali_kali-rolling.build index 6087895..9705e42 100644 --- a/builder/dockerfile.kali_kali-rolling.build +++ b/builder/dockerfile.kali_kali-rolling.build @@ -24,8 +24,7 @@ RUN cd /tmp/libwebp-1.0.2 && \ RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo -COPY . /src -RUN chown -R docker:docker /src +COPY --chown=docker:docker . /src/ USER docker ENTRYPOINT ["/src/builder/build.sh"] diff --git a/builder/dockerfile.ubuntu1604.build b/builder/dockerfile.ubuntu1604.build index a938ff8..8ca3260 100644 --- a/builder/dockerfile.ubuntu1604.build +++ b/builder/dockerfile.ubuntu1604.build @@ -14,8 +14,7 @@ RUN cd /tmp/libwebp-1.0.2 && ./configure && make && make install RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo -COPY . /src -RUN chown -R docker:docker /src +COPY --chown=docker:docker . /src/ USER docker diff --git a/builder/dockerfile.ubuntu_bionic.build b/builder/dockerfile.ubuntu_bionic.build index cee01e1..d95bd02 100644 --- a/builder/dockerfile.ubuntu_bionic.build +++ b/builder/dockerfile.ubuntu_bionic.build @@ -28,8 +28,7 @@ RUN cd /tmp/libwebp-1.0.2 && \ RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo -COPY . /src -RUN chown -R docker:docker /src +COPY --chown=docker:docker . /src/ USER docker ENTRYPOINT ["/src/builder/build.sh"] diff --git a/builder/dockerfile.ubuntu_focal.build b/builder/dockerfile.ubuntu_focal.build index 9c52a77..d0562d1 100644 --- a/builder/dockerfile.ubuntu_focal.build +++ b/builder/dockerfile.ubuntu_focal.build @@ -24,8 +24,7 @@ RUN cd /tmp/libwebp-1.0.2 && \ RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo -COPY . /src -RUN chown -R docker:docker /src +COPY --chown=docker:docker . /src/ USER docker ENTRYPOINT ["/src/builder/build.sh"] From 4b28667e90cff336ea39c085f74075ff21c25eff Mon Sep 17 00:00:00 2001 From: Lauri Kasanen Date: Tue, 17 Aug 2021 13:13:51 +0300 Subject: [PATCH 5/6] Fix possible missing clipboard deinit --- common/rfb/VNCServerST.cxx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/common/rfb/VNCServerST.cxx b/common/rfb/VNCServerST.cxx index fd13cf3..a564021 100644 --- a/common/rfb/VNCServerST.cxx +++ b/common/rfb/VNCServerST.cxx @@ -273,6 +273,11 @@ void VNCServerST::removeSocket(network::Socket* sock) { std::list::iterator ci; for (ci = clients.begin(); ci != clients.end(); ci++) { if ((*ci)->getSock() == sock) { + + if (clipboardClient == *ci) + handleClipboardAnnounce(*ci, false); + clipboardRequestors.remove(*ci); + // - Delete the per-Socket resources delete *ci; From d80eb39686ee394b6061072e62aed1f8c1e73727 Mon Sep 17 00:00:00 2001 From: Lauri Kasanen Date: Tue, 17 Aug 2021 13:30:33 +0300 Subject: [PATCH 6/6] Fix DigitalOcean load balancer websocket connection (they too used wrong case in a header) --- common/network/websocket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/network/websocket.c b/common/network/websocket.c index 3d3111d..47ac11d 100644 --- a/common/network/websocket.c +++ b/common/network/websocket.c @@ -583,7 +583,7 @@ int parse_handshake(ws_ctx_t *ws_ctx, char *handshake) { headers->host[end-start] = '\0'; headers->origin[0] = '\0'; - start = strstr(handshake, "\r\nOrigin: "); + start = strcasestr(handshake, "\r\nOrigin: "); if (start) { start += 10; } else {