Hi,

I'm sending this patch on behalf of Nalin, who attached it to
https://bugzilla.redhat.com/show_bug.cgi?id=1063278#c9
>From 82653c44bd67dbae24330e3b7c841153f930a17c Mon Sep 17 00:00:00 2001
From: Nalin Dahyabhai <na...@redhat.com>
Date: Thu, 18 Aug 2016 14:23:19 -0400
Subject: [PATCH] knownhostsproxy: use all of the getaddrinfo()

In sss_ssh_knownhostsproxy, use all of the data returned by
getaddrinfo() when we're connecting to the remote host.  Should fix
ticket #1498.

Signed-off-by: Nalin Dahyabhai <na...@redhat.com>
---
 src/sss_client/ssh/sss_ssh_knownhostsproxy.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/sss_client/ssh/sss_ssh_knownhostsproxy.c 
b/src/sss_client/ssh/sss_ssh_knownhostsproxy.c
index 
adb82288d435cefccf7e23e6ed2b2c551798a7f8..26de8c7e787f2df0e7c40411ebf4efdb45742f03
 100644
--- a/src/sss_client/ssh/sss_ssh_knownhostsproxy.c
+++ b/src/sss_client/ssh/sss_ssh_knownhostsproxy.c
@@ -40,7 +40,7 @@
 
 /* connect to server using socket */
 static int
-connect_socket(int family, struct sockaddr *addr, size_t addr_len)
+connect_socket(int family, int socktype, int protocol, struct sockaddr *addr, 
size_t addr_len)
 {
     int flags;
     int sock = -1;
@@ -68,7 +68,7 @@ connect_socket(int family, struct sockaddr *addr, size_t 
addr_len)
     }
 
     /* create socket */
-    sock = socket(family, SOCK_STREAM, IPPROTO_TCP);
+    sock = socket(family, socktype, protocol);
     if (sock == -1) {
         ret = errno;
         DEBUG(SSSDBG_OP_FAILURE, "socket() failed (%d): %s\n",
@@ -295,7 +295,13 @@ int main(int argc, const char **argv)
     if (pc_args) {
         ret = connect_proxy_command(discard_const(pc_args));
     } else if (ai) {
-        ret = connect_socket(ai[0].ai_family, ai[0].ai_addr, ai[0].ai_addrlen);
+        while (ai != NULL) {
+            ret = connect_socket(ai->ai_family, ai->ai_socktype, 
ai->ai_protocol, ai->ai_addr, ai->ai_addrlen);
+            if (ret == 0) {
+                break;
+            }
+            ai = ai->ai_next;
+        }
     } else {
         ret = EFAULT;
     }
-- 
2.4.11

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org

Reply via email to