[PATCH] libssh: when using IPv6 numerical address, add brackets
authorDaniel Stenberg <daniel@haxx.se>
Fri, 8 Nov 2024 15:31:41 +0000 (16:31 +0100)
committerSamuel Henrique <samueloph@debian.org>
Sat, 9 Nov 2024 17:34:22 +0000 (17:34 +0000)
Reported-by: henrikjehgmti on github
Fixes #15522
Closes #15524

Gbp-Pq: Name libssh_when_using_IPv6_numerical_address_add_brackets.patch

lib/vssh/libssh.c

index 2781365bf481e9121d9b7adc590fea407fe9ccdb..eeef5ca01d6e3016a962432c9c6c34d12ef4a6d3 100644 (file)
@@ -2191,7 +2191,14 @@ static CURLcode myssh_connect(struct Curl_easy *data, bool *done)
     return CURLE_FAILED_INIT;
   }
 
-  rc = ssh_options_set(ssh->ssh_session, SSH_OPTIONS_HOST, conn->host.name);
+  if(conn->bits.ipv6_ip) {
+    char ipv6[MAX_IPADR_LEN];
+    msnprintf(ipv6, sizeof(ipv6), "[%s]", conn->host.name);
+    rc = ssh_options_set(ssh->ssh_session, SSH_OPTIONS_HOST, ipv6);
+  }
+  else
+    rc = ssh_options_set(ssh->ssh_session, SSH_OPTIONS_HOST, conn->host.name);
+
   if(rc != SSH_OK) {
     failf(data, "Could not set remote host");
     return CURLE_FAILED_INIT;