netwerk/base/public/nsINetAddr.idl

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* vim: et ts=4 sw=4 tw=80 
     2  */
     3 /* This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this
     5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 #include "nsISupports.idl"
     9 %{ C++
    10 namespace mozilla {
    11 namespace net {
    12 union NetAddr;
    13 }
    14 }
    15 %}
    16 native NetAddr(mozilla::net::NetAddr);
    18 /**
    19  * nsINetAddr
    20  *
    21  * This interface represents a native NetAddr struct in a readonly
    22  * interface.
    23  */
    24 [scriptable, uuid(652B9EC5-D159-45D7-9127-50BB559486CD)]
    25 interface nsINetAddr : nsISupports
    26 {
    27     /**
    28      * @return the address family of the network address, which corresponds to
    29      * one of the FAMILY_ constants.
    30      */
    31     readonly attribute unsigned short family;
    33     /**
    34      * @return Either the IP address (FAMILY_INET, FAMILY_INET6) or the path
    35      * (FAMILY_LOCAL) in string form. IP addresses are in the format produced by
    36      * mozilla::net::NetAddrToString.
    37      *
    38      * Note: Paths for FAMILY_LOCAL may have length limitations which are
    39      * implementation dependent and not documented as part of this interface.
    40      */
    41     readonly attribute AUTF8String address;
    43     /**
    44      * @return the port number for a FAMILY_INET or FAMILY_INET6 address.
    45      *
    46      * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET or
    47      * FAMILY_INET6.
    48      */
    49     readonly attribute unsigned short port;
    51     /**
    52      * @return the flow label for a FAMILY_INET6 address. 
    53      * 
    54      * @see http://www.ietf.org/rfc/rfc3697.txt
    55      *
    56      * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET6
    57      */
    58     readonly attribute unsigned long flow;
    60     /**
    61      * @return the address scope of a FAMILY_INET6 address.  
    62      *
    63      * @see http://tools.ietf.org/html/rfc4007
    64      *
    65      * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET6
    66      */
    67     readonly attribute unsigned long scope;
    69     /**
    70      * @return whether a FAMILY_INET6 address is mapped from FAMILY_INET.
    71      *
    72      * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET6
    73      */
    74     readonly attribute boolean isV4Mapped;
    76     /**
    77      * Network address families. These correspond to all the network address
    78      * families supported by the NetAddr struct.
    79      */
    80     const unsigned long FAMILY_INET = 1;
    81     const unsigned long FAMILY_INET6 = 2;
    82     const unsigned long FAMILY_LOCAL = 3;
    84     /**
    85      * @return the underlying NetAddr struct.
    86      */
    87     [noscript] NetAddr getNetAddr();
    88 };

mercurial