git: ed48632461bd - main - emulators/virtualbox-ose{,-nox11}{,-legacy}: Fix listen VNC on TCP port on IPv6 address
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 05 Jan 2025 01:54:10 UTC
The branch main has been updated by vvd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=ed48632461bd9b3c095333c34040fe921673ab48
commit ed48632461bd9b3c095333c34040fe921673ab48
Author: Vladimir Druzenko <vvd@FreeBSD.org>
AuthorDate: 2025-01-05 01:43:43 +0000
Commit: Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-01-05 01:43:43 +0000
emulators/virtualbox-ose{,-nox11}{,-legacy}: Fix listen VNC on TCP port on IPv6 address
Four new options are available:
- "VNCAddress4" -> IPv4 address to use
- "VNCPort4" -> IPv4 Port to use
- "VNCAddress6" -> IPv6 address to use
- "VNCPort6" -> IPv6 port to use
"TCP/Ports" is used for backward compatibility as IPv4 and IPv6 ports if
"VNCPort4" or "VNCPort6" is not defined.
Detailed description is here:
https://www.virtualbox.org/browser/vbox/trunk/src/VBox/ExtPacks/VNC/VBoxVNC.cpp#L361
PR: 193778
---
emulators/virtualbox-ose-legacy/Makefile | 2 +-
.../files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp | 67 ++++++++++++++++++++++
emulators/virtualbox-ose-nox11-legacy/Makefile | 2 +-
emulators/virtualbox-ose-nox11/Makefile | 2 +-
emulators/virtualbox-ose/Makefile | 2 +-
.../files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp | 58 +++++++++++++++++++
6 files changed, 129 insertions(+), 4 deletions(-)
diff --git a/emulators/virtualbox-ose-legacy/Makefile b/emulators/virtualbox-ose-legacy/Makefile
index eb9e45783125..6c0563b2759c 100644
--- a/emulators/virtualbox-ose-legacy/Makefile
+++ b/emulators/virtualbox-ose-legacy/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
DISTVERSION= 5.2.44
-PORTREVISION?= 23
+PORTREVISION?= 24
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/bofh/emulators/virtualbox-ose-legacy:docs
diff --git a/emulators/virtualbox-ose-legacy/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp
new file mode 100644
index 000000000000..2039707a7fec
--- /dev/null
+++ b/emulators/virtualbox-ose-legacy/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp
@@ -0,0 +1,67 @@
+--- src/VBox/ExtPacks/VNC/VBoxVNC.cpp.orig 2020-07-09 16:56:32 UTC
++++ src/VBox/ExtPacks/VNC/VBoxVNC.cpp
+@@ -45,7 +45,7 @@
+
+ #ifdef LIBVNCSERVER_IPv6
+ // enable manually!
+-// #define VBOX_USE_IPV6
++#define VBOX_USE_IPV6
+ #endif
+
+
+@@ -312,7 +312,7 @@ DECLCALLBACK(int) VNCServerImpl::VRDEEnableConnections
+ else
+ {
+ const char szFeatName[] = "Property/TCP/Ports";
+- const uint32_t featLen = sizeof(VRDEFEATURE) + RT_MAX(sizeof(VNC_PORTSSIZE), sizeof(szFeatName)) - 1;
++ const uint32_t featLen = sizeof(VRDEFEATURE) + RT_MAX(VNC_PORTSSIZE, sizeof(szFeatName)) - 1;
+ VRDEFEATURE *feature = (VRDEFEATURE *)RTMemTmpAlloc(featLen);
+ feature->u32ClientId = 0;
+ RTStrCopy(feature->achInfo, featLen - sizeof(VRDEFEATURE) + 1, szFeatName);
+@@ -421,7 +421,7 @@ DECLCALLBACK(int) VNCServerImpl::VRDEEnableConnections
+
+ // get address
+ char *pszTCPAddress = (char *)RTMemTmpAllocZ(VNC_ADDRESS_OPTION_MAX);
+- rc = instance->mCallbacks->VRDECallbackProperty(instance->mCallback,
++ int rc = instance->mCallbacks->VRDECallbackProperty(instance->mCallback,
+ VRDE_QP_NETWORK_ADDRESS,
+ pszTCPAddress,
+ VNC_ADDRESS_OPTION_MAX,
+@@ -582,19 +582,35 @@ DECLCALLBACK(int) VNCServerImpl::VRDEEnableConnections
+ pszServerAddress6 = szIPv6ListenAll;
+ }
+
+- if (pszVNCPort4 && uServerPort4 == 0)
++ if (strlen(pszVNCPort4) > 0 && uServerPort4 == 0)
+ {
+ rc = RTStrToUInt32Ex(pszVNCPort4, NULL, 10, &uServerPort4);
+ if (!RT_SUCCESS(rc) || uServerPort4 > 65535)
+ uServerPort4 = 0;
+ }
+
+- if (pszVNCPort6 && uServerPort6 == 0)
++ if (strlen(pszVNCPort6) > 0 && uServerPort6 == 0)
+ {
+ rc = RTStrToUInt32Ex(pszVNCPort6, NULL, 10, &uServerPort6);
+ if (!RT_SUCCESS(rc) || uServerPort6 > 65535)
+ uServerPort6 = 0;
+ }
++
++/* Backward compatibility with set port in "TCP/Ports" only { */
++ if (uServerPort4 == 0 && strlen(pszTCPPort) > 0)
++ {
++ rc = RTStrToUInt32Ex(pszTCPPort, NULL, 10, &uServerPort4);
++ if (!RT_SUCCESS(rc) || uServerPort4 > 65535)
++ uServerPort4 = 0;
++ }
++
++ if (uServerPort6 == 0 && strlen(pszTCPPort) > 0)
++ {
++ rc = RTStrToUInt32Ex(pszTCPPort, NULL, 10, &uServerPort6);
++ if (!RT_SUCCESS(rc) || uServerPort6 > 65535)
++ uServerPort6 = 0;
++ }
++/* } */
+
+ if (uServerPort4 == 0 || uServerPort6 == 0)
+ vncServer->autoPort = 1;
diff --git a/emulators/virtualbox-ose-nox11-legacy/Makefile b/emulators/virtualbox-ose-nox11-legacy/Makefile
index 5cc4fc68f34a..21b9fee09903 100644
--- a/emulators/virtualbox-ose-nox11-legacy/Makefile
+++ b/emulators/virtualbox-ose-nox11-legacy/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 19
+PORTREVISION= 24
PKGNAMESUFFIX= -nox11-legacy
MASTERDIR= ${.CURDIR}/../virtualbox-ose-legacy
diff --git a/emulators/virtualbox-ose-nox11/Makefile b/emulators/virtualbox-ose-nox11/Makefile
index d4a66aac1642..c396083ebf7c 100644
--- a/emulators/virtualbox-ose-nox11/Makefile
+++ b/emulators/virtualbox-ose-nox11/Makefile
@@ -1,4 +1,4 @@
-PORTREVISION= 2
+PORTREVISION= 8
PKGNAMESUFFIX= -nox11
MASTERDIR= ${.CURDIR}/../virtualbox-ose
diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile
index a7c9299b7351..77500e1e992a 100644
--- a/emulators/virtualbox-ose/Makefile
+++ b/emulators/virtualbox-ose/Makefile
@@ -1,6 +1,6 @@
PORTNAME= virtualbox-ose
DISTVERSION= 6.1.50
-PORTREVISION?= 7
+PORTREVISION?= 8
CATEGORIES= emulators
MASTER_SITES= https://download.virtualbox.org/virtualbox/${DISTVERSION}/:src \
LOCAL/bofh/emulators/virtualbox-ose:docs
diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp b/emulators/virtualbox-ose/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp
new file mode 100644
index 000000000000..f364e261f40b
--- /dev/null
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_ExtPacks_VNC_VBoxVNC.cpp
@@ -0,0 +1,58 @@
+--- src/VBox/ExtPacks/VNC/VBoxVNC.cpp.orig 2024-01-11 12:24:04 UTC
++++ src/VBox/ExtPacks/VNC/VBoxVNC.cpp
+@@ -45,7 +45,7 @@
+
+ #ifdef LIBVNCSERVER_IPv6
+ // enable manually!
+-// #define VBOX_USE_IPV6
++#define VBOX_USE_IPV6
+ #endif
+
+
+@@ -421,7 +421,7 @@ DECLCALLBACK(int) VNCServerImpl::VRDEEnableConnections
+
+ // get address
+ char *pszTCPAddress = (char *)RTMemTmpAllocZ(VNC_ADDRESS_OPTION_MAX);
+- rc = instance->mCallbacks->VRDECallbackProperty(instance->mCallback,
++ int rc = instance->mCallbacks->VRDECallbackProperty(instance->mCallback,
+ VRDE_QP_NETWORK_ADDRESS,
+ pszTCPAddress,
+ VNC_ADDRESS_OPTION_MAX,
+@@ -582,19 +582,35 @@ DECLCALLBACK(int) VNCServerImpl::VRDEEnableConnections
+ pszServerAddress6 = szIPv6ListenAll;
+ }
+
+- if (pszVNCPort4 && uServerPort4 == 0)
++ if (strlen(pszVNCPort4) > 0 && uServerPort4 == 0)
+ {
+ rc = RTStrToUInt32Ex(pszVNCPort4, NULL, 10, &uServerPort4);
+ if (!RT_SUCCESS(rc) || uServerPort4 > 65535)
+ uServerPort4 = 0;
+ }
+
+- if (pszVNCPort6 && uServerPort6 == 0)
++ if (strlen(pszVNCPort6) > 0 && uServerPort6 == 0)
+ {
+ rc = RTStrToUInt32Ex(pszVNCPort6, NULL, 10, &uServerPort6);
+ if (!RT_SUCCESS(rc) || uServerPort6 > 65535)
+ uServerPort6 = 0;
+ }
++
++/* Backward compatibility with set port in "TCP/Ports" only { */
++ if (uServerPort4 == 0 && strlen(pszTCPPort) > 0)
++ {
++ rc = RTStrToUInt32Ex(pszTCPPort, NULL, 10, &uServerPort4);
++ if (!RT_SUCCESS(rc) || uServerPort4 > 65535)
++ uServerPort4 = 0;
++ }
++
++ if (uServerPort6 == 0 && strlen(pszTCPPort) > 0)
++ {
++ rc = RTStrToUInt32Ex(pszTCPPort, NULL, 10, &uServerPort6);
++ if (!RT_SUCCESS(rc) || uServerPort6 > 65535)
++ uServerPort6 = 0;
++ }
++/* } */
+
+ if (uServerPort4 == 0 || uServerPort6 == 0)
+ vncServer->autoPort = 1;