/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" [scriptable, function, uuid(2a3ad56c-edc0-439f-8aae-900b331ddf49)] interface nsIEthernetManagerCallback : nsISupports { /** * Callback function used to report the success of different operations. * * @param success * Boolean value indicates the success of an operation. * @prarm message * Message reported in the end of operation. */ void notify(in boolean success, in DOMString message); }; [scriptable, function, uuid(1746e7dd-92d4-43fa-8ef4-bc13d0b60353)] interface nsIEthernetManagerScanCallback : nsISupports { /** * Callback function used to report the result of scan function. * * @param list * List of available ethernet interfaces. */ void notify(in jsval list); }; /** * An internal idl provides control to ethernet interfaces. */ [scriptable, uuid(81750c87-bb3b-4724-b955-834eafa53fd1)] interface nsIEthernetManager : nsISupports { /** * List of exisiting interface name. */ readonly attribute jsval interfaceList; /** * Scan available ethernet interfaces on device. * * @param callback * Callback function. */ void scan(in nsIEthernetManagerScanCallback callback); /** * Add a new interface to the interface list. * * @param ifname * Interface name. Should be the form of "eth*". * @param callback * Callback function. */ void addInterface(in DOMString ifname, in nsIEthernetManagerCallback callback); /** * Remove an existing interface from the interface list. * * @param ifname * Interface name. * @param Callback * Callback function. */ void removeInterface(in DOMString ifname, in nsIEthernetManagerCallback callback); /** * Update a conifg of an existing interface in the interface list. * * @param ifname * Interface name. * @param config * .ip: IP address. * .prefixLength: Mask length. * .gateway: Gateway. * .dnses: DNS addresses. * .httpProxyHost: HTTP proxy host. * .httpProxyPort: HTTP proxy port. * .ipMode: IP mode, can be 'dhcp' or 'static'. * @param callback * Callback function. */ void updateInterfaceConfig(in DOMString ifname, in jsval config, in nsIEthernetManagerCallback callback); /** * Enable networking of an existing interface in the interface list. * * @param ifname * Interface name. * @param callback * Callback function. */ void enable(in DOMString ifname, in nsIEthernetManagerCallback callback); /** * Disable networking of an existing interface in the interface list. * * @param ifname * Interface name. * @param callback * Callback function. */ void disable(in DOMString ifname, in nsIEthernetManagerCallback callback); /** * Make an existing interface connect to network. * * @param ifname * Interface name. * @param callback * Callback function. */ void connect(in DOMString ifname, in nsIEthernetManagerCallback callback); /** * Disconnect a connected interface in the interface list. * * @param ifname * Interface name. * @param callback * Callback function. */ void disconnect(in DOMString ifname, in nsIEthernetManagerCallback callback); };