Global (non _KERNEL) place for sockaddr_union?

From: Max Laier (max_at_love2party.net)
Date: 09/20/04

  • Next message: Brooks Davis: "Re: Global (non _KERNEL) place for sockaddr_union?"
    To: freebsd-arch@freebsd.org
    Date: Mon, 20 Sep 2004 02:50:40 +0200
    
    
    

    Hi,

    http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/71836 is the symptom. Now I am
    looking for a clean solution to it. What is needed is an include file that
    defines union sockaddr_union in a way that is useable from kernel and
    userland. Historically it seems that this union first apeared in context of
    ipsec within the kernel. pf has adopted it, but uses it in the userland as
    well. I am sure that it can be usefull in a lot of places that have to deal
    with/store different address formats.

    My question now is, what would be a good place to define this? Are there any
    fromal standarts that might define it already? (Couldn't find anything) Is
    there anything else that I must consider?

    At some point I though netinet/in.h might be a good place, but that'd require
    inclusion of sys/socket.h, which certainly is not a good solution.

    Opinions? Ideas?

    > #include <sys/socket.h>
    > #include <netinet/in.h>
    >
    > union sockaddr_union {
    > struct sockaddr sa;
    > struct sockaddr_in sin;
    > struct sockaddr_in6 sin6;
    > struct sockaddr_storage __su_pad; /* maybe not a bad idea */
    > };

    FreeBSD:
     netipsec/keydb.h, line 43 (_KERNEL)
    NetBSD:
     netipsec/keydb.h, line 46 (_KERNEL)
    OpenBSD:
     netinet/ip_ipsp.h, line 50 (non _KERNEL)
    KAME:
     net/pfvar.h, line 699 (non _KERNEL, ! __OpenBSD__)
    Linux:
     Doesn't seem to have it. Or has it under a different name?

    -- 
    /"\  Best regards,                      | mlaier@freebsd.org
    \ /  Max Laier                          | ICQ #67774661
     X   http://pf4freebsd.love2party.net/  | mlaier@EFnet
    / \  ASCII Ribbon Campaign              | Against HTML Mail and News
    
    



  • Next message: Brooks Davis: "Re: Global (non _KERNEL) place for sockaddr_union?"

    Relevant Pages

    • Global (non _KERNEL) place for sockaddr_union?
      ... looking for a clean solution to it. ... Historically it seems that this union first apeared in context of ... ipsec within the kernel. ... but uses it in the userland as ...
      (freebsd-arch)
    • Global (non _KERNEL) place for sockaddr_union?
      ... looking for a clean solution to it. ... Historically it seems that this union first apeared in context of ... ipsec within the kernel. ... but uses it in the userland as ...
      (freebsd-hackers)
    • Re: Global (non _KERNEL) place for sockaddr_union?
      ... > looking for a clean solution to it. ... Historically it seems that this union first apeared in context of ... > ipsec within the kernel. ... but uses it in the userland as ...
      (freebsd-arch)
    • Re: Global (non _KERNEL) place for sockaddr_union?
      ... > looking for a clean solution to it. ... Historically it seems that this union first apeared in context of ... > ipsec within the kernel. ... but uses it in the userland as ...
      (freebsd-hackers)
    • Re: Global (non _KERNEL) place for sockaddr_union?
      ... > looking for a clean solution to it. ... Historically it seems that this union first apeared in context of ... > ipsec within the kernel. ... but uses it in the userland as ...
      (freebsd-net)