tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

nsINetAddr.idl (2545B)


      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/. */
      6 
      7 #include "nsISupports.idl"
      8 
      9 %{ C++
     10 namespace mozilla {
     11 namespace net {
     12 union NetAddr;
     13 }
     14 }
     15 %}
     16 native NetAddr(mozilla::net::NetAddr);
     17 
     18 /**
     19 * nsINetAddr
     20 *
     21 * This interface represents a native NetAddr struct in a readonly
     22 * interface.
     23 */
     24 [scriptable, builtinclass, 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;
     32 
     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::NetAddr::ToStringBuffer.
     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;
     42 
     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;
     50 
     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;
     59 
     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;
     68 
     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;
     75 
     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;
     83 
     84    /**
     85     * @return the underlying NetAddr struct.
     86     */
     87    [noscript] NetAddr getNetAddr();
     88 };