apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Reid" <dr...@jetnet.co.uk>
Subject Re: [PATCH] socket family fetching
Date Mon, 30 Apr 2001 17:56:38 GMT
Jeff and I talked about this when we added the IPv6 stuff (which included
the sockaddr types) and Jeff's feeling was to leave these functions and let
people access the details directly.  I don't mind either approach...

david
----- Original Message -----
From: "Jon Travis" <jtravis@p00p.org>
To: <dev@apr.apache.org>
Sent: Monday, April 30, 2001 6:39 PM
Subject: [PATCH] socket family fetching


> I need a routine to fetch the socket family.  I could just refer
> to the information in the sockaddr_t address length, but that is
> rather hackish.  Anyway, here tis.  We should also probably be
> moving towards making the sockaddr_t an opaque type, or at least
> some of the members.
>
>
> Index: include/apr_network_io.h
> ===================================================================
> RCS file: /home/cvspublic/apr/include/apr_network_io.h,v
> retrieving revision 1.101
> diff -u -u -r1.101 apr_network_io.h
> --- include/apr_network_io.h 2001/04/03 01:09:51 1.101
> +++ include/apr_network_io.h 2001/04/30 16:31:30
> @@ -596,6 +596,16 @@
>                                         apr_sockaddr_t *sockaddr);
>
>  /**
> + * Return the family in an APR socket address.
> + * @param family The family from the socket address.
> + * @param sockaddr The socket address to reference.
> + * @deffunc apr_status_t apr_sockaddr_family_get(apr_int32_t *family,
apr_sockaddr_t *sockaddr)
> + */
> +APR_DECLARE(apr_status_t) apr_sockaddr_family_get(apr_int32_t *family,
> +   apr_sockaddr_t *sockaddr);
> +
> +
> +/**
>   * Set the IP address in an APR socket address.
>   * @param sockaddr The socket address to use
>   * @param addr The IP address to attach to the socket.
> Index: network_io/unix/sa_common.c
> ===================================================================
> RCS file: /home/cvspublic/apr/network_io/unix/sa_common.c,v
> retrieving revision 1.32
> diff -u -u -r1.32 sa_common.c
> --- network_io/unix/sa_common.c 2001/03/15 21:54:59 1.32
> +++ network_io/unix/sa_common.c 2001/04/30 16:32:07
> @@ -114,6 +114,21 @@
>      return APR_SUCCESS;
>  }
>
> +APR_DECLARE(apr_status_t) apr_sockaddr_family_get(apr_int32_t *family,
> +   apr_sockaddr_t *sockaddr)
> +{
> +    if(sockaddr->salen == sizeof(struct sockaddr_in))
> +        *family = APR_INET;
> +#if APR_HAVE_IPV6
> +    else if(sockaddr->salen == sizeof(struct sockaddr_in6))
> +        *family = APR_INET6;
> +#endif
> +    else
> +        *family = APR_UNSPEC;
> +
> +    return APR_SUCCESS;
> +}
> +
>  APR_DECLARE(apr_status_t) apr_sockaddr_ip_get(char **addr,
>                                           apr_sockaddr_t *sockaddr)
>  {


Mime
View raw message