/* vim: et ts=4 sw=4 tw=80 */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code * * The Initial Developer of the Original Code is * Derrick Rice * * Contributor(s): * * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" native PRNetAddr(union PRNetAddr); /** * nsINetAddr * * This interface represents a (native) PRNetAddr struct in a readonly * interface. */ [scriptable, uuid(c407ab6c-c3ca-4cb2-a99b-a7dfbb88af33)] interface nsINetAddr : nsISupports { /** * @return the address family of the network address, which corresponds to * one of the FAMILY_ constants. */ readonly attribute unsigned short family; /** * @return Either the IP address (FAMILY_INET, FAMILY_INET6) or the path * (FAMILY_LOCAL) in string form. IP addresses are in the format produced by * PR_NetAddrToString. * * Note: Paths for FAMILY_LOCAL may have length limitations which are * implementation dependent and not documented as part of this interface. */ readonly attribute AUTF8String address; /** * @return the port number for a FAMILY_INET or FAMILY_INET6 address. * * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET or * FAMILY_INET6. */ readonly attribute unsigned short port; /** * @return the flow label for a FAMILY_INET6 address. * * @see http://www.ietf.org/rfc/rfc3697.txt * * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET6 */ readonly attribute unsigned long flow; /** * @return the address scope of a FAMILY_INET6 address. * * @see http://tools.ietf.org/html/rfc4007 * * @throws NS_ERROR_NOT_AVAILABLE if the address family is not FAMILY_INET6 */ readonly attribute unsigned long scope; /** * Network address families. These correspond to all the network address * families supported by the PRNetAddr struct. */ const unsigned long FAMILY_INET = 1; const unsigned long FAMILY_INET6 = 2; const unsigned long FAMILY_LOCAL = 3; };