]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
libssh: when using IPv6 numerical address, add brackets
authorDaniel Stenberg <daniel@haxx.se>
Fri, 8 Nov 2024 15:31:41 +0000 (16:31 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 9 Nov 2024 09:34:45 +0000 (10:34 +0100)
Reported-by: henrikjehgmti on github
Fixes #15522
Closes #15524

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;