Commit 29620124 authored by Richard Levitte's avatar Richard Levitte
Browse files

On solaris, the variable name sun clashes, use s_un instead



For orthogonality, we change sin -> s_in and sin6 -> s_in6 as well.

Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
parent 432c7a50
Loading
Loading
Loading
Loading
+29 −29
Original line number Diff line number Diff line
@@ -100,18 +100,18 @@ void BIO_ADDR_clear(BIO_ADDR *ap)
int BIO_ADDR_make(BIO_ADDR *ap, const struct sockaddr *sa)
{
    if (sa->sa_family == AF_INET) {
        ap->sin = *(const struct sockaddr_in *)sa;
        ap->s_in = *(const struct sockaddr_in *)sa;
        return 1;
    }
#ifdef AF_INET6
    if (sa->sa_family == AF_INET6) {
        ap->sin6 = *(const struct sockaddr_in6 *)sa;
        ap->s_in6 = *(const struct sockaddr_in6 *)sa;
        return 1;
    }
#endif
#ifdef AF_UNIX
    if (ap->sa.sa_family == AF_UNIX) {
        ap->sun = *(const struct sockaddr_un *)sa;
        ap->s_un = *(const struct sockaddr_un *)sa;
        return 1;
    }
#endif
@@ -125,31 +125,31 @@ int BIO_ADDR_rawmake(BIO_ADDR *ap, int family,
{
#ifdef AF_UNIX
    if (family == AF_UNIX) {
        if (wherelen + 1 > sizeof(ap->sun.sun_path))
        if (wherelen + 1 > sizeof(ap->s_un.sun_path))
            return 0;
        memset(&ap->sun, 0, sizeof(ap->sun));
        ap->sun.sun_family = family;
        strncpy(ap->sun.sun_path, where, sizeof(ap->sun.sun_path) - 1);
        memset(&ap->s_un, 0, sizeof(ap->s_un));
        ap->s_un.sun_family = family;
        strncpy(ap->s_un.sun_path, where, sizeof(ap->s_un.sun_path) - 1);
        return 1;
    }
#endif
    if (family == AF_INET) {
        if (wherelen != sizeof(struct in_addr))
            return 0;
        memset(&ap->sin, 0, sizeof(ap->sin));
        ap->sin.sin_family = family;
        ap->sin.sin_port = port;
        ap->sin.sin_addr = *(struct in_addr *)where;
        memset(&ap->s_in, 0, sizeof(ap->s_in));
        ap->s_in.sin_family = family;
        ap->s_in.sin_port = port;
        ap->s_in.sin_addr = *(struct in_addr *)where;
        return 1;
    }
#ifdef AF_INET6
    if (family == AF_INET6) {
        if (wherelen != sizeof(struct in6_addr))
            return 0;
        memset(&ap->sin6, 0, sizeof(ap->sin6));
        ap->sin6.sin6_family = family;
        ap->sin6.sin6_port = port;
        ap->sin6.sin6_addr = *(struct in6_addr *)where;
        memset(&ap->s_in6, 0, sizeof(ap->s_in6));
        ap->s_in6.sin6_family = family;
        ap->s_in6.sin6_port = port;
        ap->s_in6.sin6_addr = *(struct in6_addr *)where;
        return 1;
    }
#endif
@@ -168,19 +168,19 @@ int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l)
    const void *addrptr = NULL;

    if (ap->sa.sa_family == AF_INET) {
        len = sizeof(ap->sin.sin_addr);
        addrptr = &ap->sin.sin_addr;
        len = sizeof(ap->s_in.sin_addr);
        addrptr = &ap->s_in.sin_addr;
    }
#ifdef AF_INET6
    else if (ap->sa.sa_family == AF_INET6) {
        len = sizeof(ap->sin6.sin6_addr);
        addrptr = &ap->sin6.sin6_addr;
        len = sizeof(ap->s_in6.sin6_addr);
        addrptr = &ap->s_in6.sin6_addr;
    }
#endif
#ifdef AF_UNIX
    else if (ap->sa.sa_family == AF_UNIX) {
        len = strlen(ap->sun.sun_path);
        addrptr = &ap->sun.sun_path;
        len = strlen(ap->s_un.sun_path);
        addrptr = &ap->s_un.sun_path;
    }
#endif

@@ -199,10 +199,10 @@ int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l)
unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap)
{
    if (ap->sa.sa_family == AF_INET)
        return ap->sin.sin_port;
        return ap->s_in.sin_port;
#ifdef AF_INET6
    if (ap->sa.sa_family == AF_INET6)
        return ap->sin6.sin6_port;
        return ap->s_in6.sin6_port;
#endif
    return 0;
}
@@ -270,10 +270,10 @@ static int addr_strings(const BIO_ADDR *ap, int numeric,
    } else {
#endif
        if (hostname)
            *hostname = OPENSSL_strdup(inet_ntoa(ap->sin.sin_addr));
            *hostname = OPENSSL_strdup(inet_ntoa(ap->s_in.sin_addr));
        if (service) {
            char serv[6];        /* port is 16 bits => max 5 decimal digits */
            BIO_snprintf(serv, sizeof(serv), "%d", ntohs(ap->sin.sin_port));
            BIO_snprintf(serv, sizeof(serv), "%d", ntohs(ap->s_in.sin_port));
            *service = OPENSSL_strdup(serv);
        }
    }
@@ -305,7 +305,7 @@ char *BIO_ADDR_path_string(const BIO_ADDR *ap)
{
#ifdef AF_UNIX
    if (ap->sa.sa_family == AF_UNIX)
        return OPENSSL_strdup(ap->sun.sun_path);
        return OPENSSL_strdup(ap->s_un.sun_path);
#endif
    return NULL;
}
@@ -340,14 +340,14 @@ struct sockaddr *BIO_ADDR_sockaddr_noconst(BIO_ADDR *ap)
socklen_t BIO_ADDR_sockaddr_size(const BIO_ADDR *ap)
{
    if (ap->sa.sa_family == AF_INET)
        return sizeof(ap->sin);
        return sizeof(ap->s_in);
#ifdef AF_INET6
    if (ap->sa.sa_family == AF_INET6)
        return sizeof(ap->sin6);
        return sizeof(ap->s_in6);
#endif
#ifdef AF_UNIX
    if (ap->sa.sa_family == AF_UNIX)
        return sizeof(ap->sun);
        return sizeof(ap->s_un);
#endif
    return sizeof(*ap);
}
+3 −3
Original line number Diff line number Diff line
@@ -53,11 +53,11 @@ struct bio_addrinfo_st {
union bio_addr_st {
    struct sockaddr sa;
# ifdef AF_INET6
    struct sockaddr_in6 sin6;
    struct sockaddr_in6 s_in6;
# endif
    struct sockaddr_in sin;
    struct sockaddr_in s_in;
# ifdef AF_UNIX
    struct sockaddr_un sun;
    struct sockaddr_un s_un;
# endif
};
#endif