]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9603 fix IPv6 addrs with tcpd
authorHoward Chu <hyc@openldap.org>
Thu, 1 Jul 2021 15:16:19 +0000 (16:16 +0100)
committerHoward Chu <hyc@openldap.org>
Thu, 1 Jul 2021 15:16:19 +0000 (16:16 +0100)
servers/slapd/daemon.c

index 2f6a244ca0f77f9dcfc5dccae6afd19afe96011f..9048d25fe13a25c3d8599bbd26c842ed00a3a9ad 100644 (file)
@@ -2317,7 +2317,12 @@ slap_listener(
                        int rc;
                        char *peeraddr, *paend;
                        peeraddr = peerbv.bv_val + 3;
-                       paend = strrchr( peeraddr, ':' );
+                       if ( *peeraddr == '[' ) {
+                               peeraddr++;
+                               paend = strrchr( peeraddr, ']' );
+                       } else {
+                               paend = strrchr( peeraddr, ':' );
+                       }
                        if ( paend )
                                *paend = '\0';
                        ldap_pvt_thread_mutex_lock( &sd_tcpd_mutex );
@@ -2336,8 +2341,12 @@ slap_listener(
                                slapd_close(sfd);
                                return 0;
                        }
-                       if ( paend )
-                               *paend = ':';
+                       if ( paend ) {
+                               if ( peeraddr[-1] == '[' )
+                                       *paend = ']';
+                               else
+                                       *paend = ':';
+                       }
                }
 #endif /* HAVE_TCPD */
        }