]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#8847 move lutil_sockaddrstr() to ldap_pvt_sockaddrstr()
authorHoward Chu <hyc@openldap.org>
Fri, 26 Mar 2021 13:45:26 +0000 (13:45 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 26 Mar 2021 13:45:26 +0000 (13:45 +0000)
clients/tools/ldapurl.c
include/ldap_pvt.h
include/lutil.h
libraries/libldap/request.c
libraries/libldap/util-int.c
libraries/liblutil/utils.c
servers/lloadd/daemon.c
servers/slapd/back-asyncmeta/bind.c
servers/slapd/daemon.c
servers/slapd/proxyp.c
servers/slapd/syncrepl.c

index 6c5642c87bb4b3e8692d14b5b86e8c11a1c39337..cb6c8a0d2b4c83a7855f862c4a43436dcd8bf6d2 100644 (file)
@@ -34,6 +34,7 @@
 #include <ac/stdlib.h>
 #include <stdio.h>
 #include <ac/unistd.h>
+#include <ac/socket.h>
 
 #include "ldap.h"
 #include "ldap_pvt.h"
index b05d452bcca7e3286996c0caa0ddded9a8e072f8..adee63c84ad85c6582e0a0c0c6cda7913d2fe2c6 100644 (file)
@@ -170,6 +170,36 @@ ldap_pvt_get_hname LDAP_P((
        int namelen,
        char **herr ));
 
+#ifdef LDAP_PF_LOCAL
+#define LDAP_IPADDRLEN (MAXPATHLEN + sizeof("PATH="))
+#elif defined(LDAP_PF_INET6)
+#define LDAP_IPADDRLEN sizeof("IP=[ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535")
+#else
+#define LDAP_IPADDRLEN sizeof("IP=255.255.255.255:65336")
+#endif
+
+struct sockaddr_in;
+struct sockaddr_in6;
+struct sockaddr_storage;
+struct sockaddr_un;
+
+typedef union Sockaddr {
+       struct sockaddr sa_addr;
+       struct sockaddr_in sa_in_addr;
+#ifdef LDAP_PF_INET6
+       struct sockaddr_storage sa_storage;
+       struct sockaddr_in6 sa_in6_addr;
+#endif
+#ifdef LDAP_PF_LOCAL
+       struct sockaddr_un sa_un_addr;
+#endif
+} Sockaddr;
+
+LDAP_F (void)
+ldap_pvt_sockaddrstr LDAP_P((
+       Sockaddr *sa,
+       struct berval * ));
+
 
 /* charray.c */
 
index c990d4bb6d8f1468fb4730348c2ce7646a4c1659..8d6406bd83ee577c5a393b76d8e2e9bf8cc233e9 100644 (file)
@@ -344,29 +344,6 @@ lutil_parse_time( const char *in, unsigned long *tp );
 LDAP_LUTIL_F (int)
 lutil_unparse_time( char *buf, size_t buflen, unsigned long t );
 
-#ifdef LDAP_PF_LOCAL
-#define LUTIL_ADDRLEN  (MAXPATHLEN + sizeof("PATH="))
-#elif defined(LDAP_PF_INET6)
-#define LUTIL_ADDRLEN  sizeof("IP=[ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535")
-#else
-#define LUTIL_ADDRLEN  sizeof("IP=255.255.255.255:65336")
-#endif
-
-typedef union Sockaddr {
-       struct sockaddr sa_addr;
-       struct sockaddr_in sa_in_addr;
-#ifdef LDAP_PF_INET6
-       struct sockaddr_storage sa_storage;
-       struct sockaddr_in6 sa_in6_addr;
-#endif
-#ifdef LDAP_PF_LOCAL
-       struct sockaddr_un sa_un_addr;
-#endif
-} Sockaddr;
-
-LDAP_LUTIL_F (void)
-lutil_sockaddrstr(Sockaddr *sa, struct berval *);
-
 #ifdef timerdiv
 #define lutil_timerdiv timerdiv
 #else /* ! timerdiv */
index 216516d718eba49587a06bd59a9bad1af4c92379..e60139e8e06e5555bdb5349634e8e8411dea825d 100644 (file)
@@ -864,14 +864,14 @@ ldap_dump_connection( LDAP *ld, LDAPConn *lconns, int all )
                                ld->ld_sb ) ? "  (default)" : "" );
                }
                if ( lc->lconn_sb != NULL ) {
-                       char                    from[LUTIL_ADDRLEN];
+                       char                    from[LDAP_IPADDRLEN];
                        struct berval   frombv = BER_BVC(from);
                        ber_socket_t    sb;
                        if ( ber_sockbuf_ctrl( lc->lconn_sb, LBER_SB_OPT_GET_FD, &sb ) == 1 ) {
                                struct sockaddr_in sin;
                                socklen_t len = sizeof( sin );
                                if ( getsockname( sb, (struct sockaddr *)&sin, &len ) == 0 ) {
-                                       lutil_sockaddrstr( (Sockaddr *) &sin, &frombv );
+                                       ldap_pvt_sockaddrstr( (Sockaddr *) &sin, &frombv );
                                        Debug1( LDAP_DEBUG_TRACE, "* from: %s\n",
                                                ( from == NULL ) ? "(null)" : from );
                                }
index 1b56fcc8f692a23866aa5265bed793e50448c341..7161a769484ae3228b94edcc2369316093c0f293 100644 (file)
@@ -917,3 +917,84 @@ char *ldap_pvt_gai_strerror (int code) {
        return _("Unknown error");
 }
 #endif
+
+/* format a socket address as a string */
+
+#ifdef HAVE_TCPD
+# include <tcpd.h>
+# define SOCKADDR_STRING_UNKNOWN       STRING_UNKNOWN
+#else /* ! TCP Wrappers */
+# define SOCKADDR_STRING_UNKNOWN       "unknown"
+#endif /* ! TCP Wrappers */
+
+void
+ldap_pvt_sockaddrstr( Sockaddr *sa, struct berval *addrbuf )
+{
+       char *addr;
+       switch( sa->sa_addr.sa_family ) {
+#ifdef LDAP_PF_LOCAL
+       case AF_LOCAL:
+               addrbuf->bv_len = snprintf( addrbuf->bv_val, addrbuf->bv_len,
+                       "PATH=%s", sa->sa_un_addr.sun_path );
+               break;
+#endif
+#ifdef LDAP_PF_INET6
+       case AF_INET6:
+               strcpy(addrbuf->bv_val, "IP=");
+               if ( IN6_IS_ADDR_V4MAPPED(&sa->sa_in6_addr.sin6_addr) ) {
+#if defined( HAVE_GETADDRINFO ) && defined( HAVE_INET_NTOP )
+                       addr = (char *)inet_ntop( AF_INET,
+                          ((struct in_addr *)&sa->sa_in6_addr.sin6_addr.s6_addr[12]),
+                          addrbuf->bv_val+3, addrbuf->bv_len-3 );
+#else /* ! HAVE_GETADDRINFO || ! HAVE_INET_NTOP */
+                       addr = inet_ntoa( *((struct in_addr *)
+                                       &sa->sa_in6_addr.sin6_addr.s6_addr[12]) );
+#endif /* ! HAVE_GETADDRINFO || ! HAVE_INET_NTOP */
+                       if ( !addr ) addr = SOCKADDR_STRING_UNKNOWN;
+                       if ( addr != addrbuf->bv_val+3 ) {
+                               addrbuf->bv_len = sprintf( addrbuf->bv_val+3, "%s:%d", addr,
+                                (unsigned) ntohs( sa->sa_in6_addr.sin6_port ) ) + 3;
+                       } else {
+                               int len = strlen( addr );
+                               addrbuf->bv_len = sprintf( addr+len, ":%d",
+                                (unsigned) ntohs( sa->sa_in6_addr.sin6_port ) ) + len + 3;
+                       }
+               } else {
+                       addr = (char *)inet_ntop( AF_INET6,
+                                     &sa->sa_in6_addr.sin6_addr,
+                                     addrbuf->bv_val+4, addrbuf->bv_len-4 );
+                       if ( !addr ) addr = SOCKADDR_STRING_UNKNOWN;
+                       if ( addr != addrbuf->bv_val+4 ) {
+                               addrbuf->bv_len = sprintf( addrbuf->bv_val+3, "[%s]:%d", addr,
+                                (unsigned) ntohs( sa->sa_in6_addr.sin6_port ) ) + 3;
+                       } else {
+                               int len = strlen( addr );
+                               addrbuf->bv_val[3] = '[';
+                               addrbuf->bv_len = sprintf( addr+len, "]:%d",
+                                (unsigned) ntohs( sa->sa_in6_addr.sin6_port ) ) + len + 4;
+                       }
+               }
+               break;
+#endif /* LDAP_PF_INET6 */
+       case AF_INET:
+               strcpy(addrbuf->bv_val, "IP=");
+#if defined( HAVE_GETADDRINFO ) && defined( HAVE_INET_NTOP )
+               addr = (char *)inet_ntop( AF_INET, &sa->sa_in_addr.sin_addr,
+                          addrbuf->bv_val+3, addrbuf->bv_len-3 );
+#else /* ! HAVE_GETADDRINFO || ! HAVE_INET_NTOP */
+               addr = inet_ntoa( sa->sa_in_addr.sin_addr );
+#endif /* ! HAVE_GETADDRINFO || ! HAVE_INET_NTOP */
+               if ( !addr ) addr = SOCKADDR_STRING_UNKNOWN;
+               if ( addr != addrbuf->bv_val+3 ) {
+                       addrbuf->bv_len = sprintf( addrbuf->bv_val+3, "%s:%d", addr,
+                        (unsigned) ntohs( sa->sa_in_addr.sin_port ) ) + 3;
+               } else {
+                       int len = strlen( addr );
+                       addrbuf->bv_len = sprintf( addr+len, ":%d",
+                        (unsigned) ntohs( sa->sa_in_addr.sin_port ) ) + len + 3;
+               }
+               break;
+       default:
+               addrbuf->bv_val[0] = '\0';
+       }
+}
index 960ea8fbf4548a4afeab6ae70b2c34275b14c34e..df9f7a2e914beca6b8f818ab0225e96e740e07fc 100644 (file)
@@ -1069,75 +1069,3 @@ lutil_snprintf( char *buf, ber_len_t bufsize, char **next, ber_len_t *len, LDAP_
 
        return 0;
 }
-
-void
-lutil_sockaddrstr( Sockaddr *sa, struct berval *addrbuf )
-{
-       char *addr;
-       switch( sa->sa_addr.sa_family ) {
-#ifdef LDAP_PF_LOCAL
-       case AF_LOCAL:
-               addrbuf->bv_len = snprintf( addrbuf->bv_val, addrbuf->bv_len,
-                       "PATH=%s", sa->sa_un_addr.sun_path );
-               break;
-#endif
-#ifdef LDAP_PF_INET6
-       case AF_INET6:
-               strcpy(addrbuf->bv_val, "IP=");
-               if ( IN6_IS_ADDR_V4MAPPED(&sa->sa_in6_addr.sin6_addr) ) {
-#if defined( HAVE_GETADDRINFO ) && defined( HAVE_INET_NTOP )
-                       addr = (char *)inet_ntop( AF_INET,
-                          ((struct in_addr *)&sa->sa_in6_addr.sin6_addr.s6_addr[12]),
-                          addrbuf->bv_val+3, addrbuf->bv_len-3 );
-#else /* ! HAVE_GETADDRINFO || ! HAVE_INET_NTOP */
-                       addr = inet_ntoa( *((struct in_addr *)
-                                       &sa->sa_in6_addr.sin6_addr.s6_addr[12]) );
-#endif /* ! HAVE_GETADDRINFO || ! HAVE_INET_NTOP */
-                       if ( !addr ) addr = LUTIL_STRING_UNKNOWN;
-                       if ( addr != addrbuf->bv_val+3 ) {
-                               addrbuf->bv_len = sprintf( addrbuf->bv_val+3, "%s:%d", addr,
-                                (unsigned) ntohs( sa->sa_in6_addr.sin6_port ) ) + 3;
-                       } else {
-                               int len = strlen( addr );
-                               addrbuf->bv_len = sprintf( addr+len, ":%d",
-                                (unsigned) ntohs( sa->sa_in6_addr.sin6_port ) ) + len + 3;
-                       }
-               } else {
-                       addr = (char *)inet_ntop( AF_INET6,
-                                     &sa->sa_in6_addr.sin6_addr,
-                                     addrbuf->bv_val+4, addrbuf->bv_len-4 );
-                       if ( !addr ) addr = LUTIL_STRING_UNKNOWN;
-                       if ( addr != addrbuf->bv_val+4 ) {
-                               addrbuf->bv_len = sprintf( addrbuf->bv_val+3, "[%s]:%d", addr,
-                                (unsigned) ntohs( sa->sa_in6_addr.sin6_port ) ) + 3;
-                       } else {
-                               int len = strlen( addr );
-                               addrbuf->bv_val[3] = '[';
-                               addrbuf->bv_len = sprintf( addr+len, "]:%d",
-                                (unsigned) ntohs( sa->sa_in6_addr.sin6_port ) ) + len + 4;
-                       }
-               }
-               break;
-#endif /* LDAP_PF_INET6 */
-       case AF_INET:
-               strcpy(addrbuf->bv_val, "IP=");
-#if defined( HAVE_GETADDRINFO ) && defined( HAVE_INET_NTOP )
-               addr = (char *)inet_ntop( AF_INET, &sa->sa_in_addr.sin_addr,
-                          addrbuf->bv_val+3, addrbuf->bv_len-3 );
-#else /* ! HAVE_GETADDRINFO || ! HAVE_INET_NTOP */
-               addr = inet_ntoa( sa->sa_in_addr.sin_addr );
-#endif /* ! HAVE_GETADDRINFO || ! HAVE_INET_NTOP */
-               if ( !addr ) addr = LUTIL_STRING_UNKNOWN;
-               if ( addr != addrbuf->bv_val+3 ) {
-                       addrbuf->bv_len = sprintf( addrbuf->bv_val+3, "%s:%d", addr,
-                        (unsigned) ntohs( sa->sa_in_addr.sin_port ) ) + 3;
-               } else {
-                       int len = strlen( addr );
-                       addrbuf->bv_len = sprintf( addr+len, ":%d",
-                        (unsigned) ntohs( sa->sa_in_addr.sin_port ) ) + len + 3;
-               }
-               break;
-       default:
-               addrbuf->bv_val[0] = '\0';
-       }
-}
index 110b9c08f5601ef60f7281a80f45b4846616cc2b..20993b0637aa0efd8e912b69153ab407ff8c1d93 100644 (file)
@@ -835,7 +835,7 @@ lload_listener(
     LloadListener *sl = arg;
     LloadConnection *c;
     Sockaddr *from = (Sockaddr *)a;
-    char peername[LUTIL_ADDRLEN];
+    char peername[LDAP_IPADDRLEN];
     struct berval peerbv = BER_BVC(peername);
     int cflag;
     int tid;
@@ -916,7 +916,7 @@ lload_listener(
         case AF_INET6:
 #endif /* LDAP_PF_INET6 */
         case AF_INET:
-            lutil_sockaddrstr( from, &peerbv );
+            ldap_pvt_sockaddrstr( from, &peerbv );
             break;
 
         default:
index e268ce5b5022c6e06609158de0b27aee37e2d69f..739fbf7b6313184b2a2ac869ab37bcbac7147377 100644 (file)
@@ -1575,14 +1575,14 @@ retry_bind:
        }
        if ( LogTest( LDAP_DEBUG_TRACE )) {
                ber_socket_t s;
-               char sockname[LUTIL_ADDRLEN];
+               char sockname[LDAP_IPADDRLEN];
                struct berval sockbv = BER_BVC( sockname );
                Sockaddr addr;
                socklen_t len = sizeof( addr );
 
                ldap_get_option( msc->msc_ld, LDAP_OPT_DESC, &s );
                getsockname( s, &addr.sa_addr, &len );
-               lutil_sockaddrstr( &addr, &sockbv );
+               ldap_pvt_sockaddrstr( &addr, &sockbv );
                Debug( LDAP_DEBUG_TRACE, "%s asyncmeta_dobind_init msc %p ld %p ldr %p fd %d addr %s\n",
                        op->o_log_prefix, msc, msc->msc_ld, msc->msc_ldr, s, sockname );
        }
index 4180b81727af68e9abafd24365a29ce3b8fdb0d3..ab60d35be3304a54011f0501f0fb724f07158662 100644 (file)
@@ -2098,7 +2098,7 @@ slap_listener(
 
        char    *dnsname = NULL;
        /* we assume INET6_ADDRSTRLEN > INET_ADDRSTRLEN */
-       char peername[LUTIL_ADDRLEN];
+       char peername[LDAP_IPADDRLEN];
        struct berval peerbv = BER_BVC(peername);
 #ifdef LDAP_PF_LOCAL_SENDMSG
        char peerbuf[8];
@@ -2278,7 +2278,7 @@ slap_listener(
                                return 0;
                        }
                }
-               lutil_sockaddrstr( &from, &peerbv );
+               ldap_pvt_sockaddrstr( &from, &peerbv );
                break;
 
        default:
index e0342e802b11c225b7e54ae796ac197b6d66d4c4..66ddf7189dee92cf495388e2f411e3f168016293 100644 (file)
@@ -61,7 +61,7 @@ int
 proxyp( ber_socket_t sfd, Sockaddr *from ) {
        proxyp_header pph;
        proxyp_addr ppa;
-       char peername[LUTIL_ADDRLEN];
+       char peername[LDAP_IPADDRLEN];
        struct berval peerbv = BER_BVC(peername);
        /* Maximum size of header minus static component size is max option size */
        uint8_t proxyp_options[536 - 16];
@@ -152,7 +152,7 @@ proxyp( ber_socket_t sfd, Sockaddr *from ) {
        case 0x01: /* PROXY command */
                switch ( pph.fam ) {
                case 0x11: /* TCPv4 */
-                       lutil_sockaddrstr( from, &peerbv );
+                       ldap_pvt_sockaddrstr( from, &peerbv );
                        Debug( LDAP_DEBUG_STATS, "proxyp(%ld): via %s\n",
                                        (long)sfd, peername );
 
@@ -163,7 +163,7 @@ proxyp( ber_socket_t sfd, Sockaddr *from ) {
 
                case 0x21: /* TCPv6 */
 #ifdef LDAP_PF_INET6
-                       lutil_sockaddrstr( from, &peerbv );
+                       ldap_pvt_sockaddrstr( from, &peerbv );
                        Debug( LDAP_DEBUG_STATS, "proxyp(%ld): via %s\n",
                                        (long)sfd, peername );
                        from->sa_in6_addr.sin6_family = AF_INET6;
index abf24f581c607f9cfdff4cdd10f25d9360bbaafe..40401bcbf5fa85cea3490139668f3b6f2f7e25b7 100644 (file)
@@ -167,7 +167,7 @@ typedef struct syncinfo_s {
        struct berval   si_lastCookieRcvd;
        struct berval   si_lastCookieSent;
        struct berval   si_monitor_ndn;
-       char    si_connaddrbuf[LUTIL_ADDRLEN];
+       char    si_connaddrbuf[LDAP_IPADDRLEN];
 
        ldap_pvt_thread_mutex_t si_monitor_mutex;
        ldap_pvt_thread_mutex_t si_mutex;
@@ -2055,7 +2055,7 @@ do_syncrepl(
                        if ( !getsockname( s, &addr.sa_addr, &len )) {
                                si->si_connaddr.bv_val = si->si_connaddrbuf;
                                si->si_connaddr.bv_len = sizeof( si->si_connaddrbuf );
-                               lutil_sockaddrstr( &addr, &si->si_connaddr );
+                               ldap_pvt_sockaddrstr( &addr, &si->si_connaddr );
                        }
                }