Translated using Weblate (French)
[oweals/luci.git] / docs / jsapi / rpc.js.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4     <meta charset="utf-8">
5     <title>Source: rpc.js</title>
6     
7     
8     <script src="scripts/prettify/prettify.js"></script>
9     <script src="scripts/prettify/lang-css.js"></script>
10     <script src="scripts/jquery.min.js"></script>
11     <!--[if lt IE 9]>
12       <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
13     <![endif]-->
14     <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
15     <link type="text/css" rel="stylesheet" href="styles/bootstrap.min.css">
16     <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
17     
18     
19     <script>
20     var config = {"monospaceLinks":true,"cleverLinks":true,"default":{"outputSourceFiles":true}};
21     </script>
22     
23
24     
25 </head>
26 <body>
27 <div id="wrap" class="clearfix">
28     
29 <div class="navigation">
30     <h3 class="applicationName"><a href="index.html"></a></h3>
31
32     <div class="search">
33         <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
34     </div>
35     <ul class="list">
36     
37         <li class="item" data-name="LuCI">
38             <span class="title">
39                 <a href="LuCI.html">LuCI</a>
40                 
41             </span>
42             <ul class="members itemMembers">
43             
44             <span class="subtitle">Members</span>
45             
46                 <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
47             
48             </ul>
49             <ul class="typedefs itemMembers">
50             
51             <span class="subtitle">Typedefs</span>
52             
53                 <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
54             
55             </ul>
56             <ul class="typedefs itemMembers">
57             
58             </ul>
59             <ul class="methods itemMembers">
60             
61             <span class="subtitle">Methods</span>
62             
63                 <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
64             
65                 <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
66             
67                 <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
68             
69                 <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
70             
71                 <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
72             
73                 <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
74             
75                 <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
76             
77                 <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
78             
79                 <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
80             
81                 <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
82             
83                 <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
84             
85                 <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
86             
87                 <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
88             
89                 <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
90             
91                 <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
92             
93                 <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
94             
95                 <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
96             
97                 <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
98             
99                 <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
100             
101             </ul>
102             <ul class="events itemMembers">
103             
104             </ul>
105         </li>
106     
107         <li class="item" data-name="LuCI.Class">
108             <span class="title">
109                 <a href="LuCI.Class.html">LuCI.Class</a>
110                 
111             </span>
112             <ul class="members itemMembers">
113             
114             </ul>
115             <ul class="typedefs itemMembers">
116             
117             </ul>
118             <ul class="typedefs itemMembers">
119             
120             </ul>
121             <ul class="methods itemMembers">
122             
123             <span class="subtitle">Methods</span>
124             
125                 <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
126             
127                 <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
128             
129                 <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
130             
131                 <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
132             
133                 <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
134             
135                 <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
136             
137             </ul>
138             <ul class="events itemMembers">
139             
140             </ul>
141         </li>
142     
143         <li class="item" data-name="LuCI.dom">
144             <span class="title">
145                 <a href="LuCI.dom.html">LuCI.dom</a>
146                 
147             </span>
148             <ul class="members itemMembers">
149             
150             </ul>
151             <ul class="typedefs itemMembers">
152             
153             <span class="subtitle">Typedefs</span>
154             
155                 <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
156             
157             </ul>
158             <ul class="typedefs itemMembers">
159             
160             </ul>
161             <ul class="methods itemMembers">
162             
163             <span class="subtitle">Methods</span>
164             
165                 <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
166             
167                 <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
168             
169                 <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
170             
171                 <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
172             
173                 <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
174             
175                 <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
176             
177                 <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
178             
179                 <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
180             
181                 <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
182             
183                 <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
184             
185                 <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
186             
187                 <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
188             
189                 <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
190             
191             </ul>
192             <ul class="events itemMembers">
193             
194             </ul>
195         </li>
196     
197         <li class="item" data-name="LuCI.fs">
198             <span class="title">
199                 <a href="LuCI.fs.html">LuCI.fs</a>
200                 
201             </span>
202             <ul class="members itemMembers">
203             
204             </ul>
205             <ul class="typedefs itemMembers">
206             
207             <span class="subtitle">Typedefs</span>
208             
209                 <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
210             
211                 <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
212             
213             </ul>
214             <ul class="typedefs itemMembers">
215             
216             </ul>
217             <ul class="methods itemMembers">
218             
219             <span class="subtitle">Methods</span>
220             
221                 <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
222             
223                 <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
224             
225                 <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
226             
227                 <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
228             
229                 <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
230             
231                 <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
232             
233                 <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
234             
235                 <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
236             
237             </ul>
238             <ul class="events itemMembers">
239             
240             </ul>
241         </li>
242     
243         <li class="item" data-name="LuCI.Headers">
244             <span class="title">
245                 <a href="LuCI.Headers.html">LuCI.Headers</a>
246                 
247             </span>
248             <ul class="members itemMembers">
249             
250             </ul>
251             <ul class="typedefs itemMembers">
252             
253             </ul>
254             <ul class="typedefs itemMembers">
255             
256             </ul>
257             <ul class="methods itemMembers">
258             
259             <span class="subtitle">Methods</span>
260             
261                 <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
262             
263                 <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
264             
265             </ul>
266             <ul class="events itemMembers">
267             
268             </ul>
269         </li>
270     
271         <li class="item" data-name="LuCI.Network">
272             <span class="title">
273                 <a href="LuCI.Network.html">LuCI.Network</a>
274                 
275             </span>
276             <ul class="members itemMembers">
277             
278             </ul>
279             <ul class="typedefs itemMembers">
280             
281             <span class="subtitle">Typedefs</span>
282             
283                 <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
284             
285                 <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
286             
287                 <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
288             
289                 <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
290             
291                 <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
292             
293             </ul>
294             <ul class="typedefs itemMembers">
295             
296             </ul>
297             <ul class="methods itemMembers">
298             
299             <span class="subtitle">Methods</span>
300             
301                 <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
302             
303                 <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
304             
305                 <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
306             
307                 <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
308             
309                 <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
310             
311                 <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
312             
313                 <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
314             
315                 <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
316             
317                 <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
318             
319                 <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
320             
321                 <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
322             
323                 <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
324             
325                 <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
326             
327                 <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
328             
329                 <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
330             
331                 <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
332             
333                 <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
334             
335                 <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
336             
337                 <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
338             
339                 <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
340             
341                 <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
342             
343                 <li data-name="LuCI.Network#getWifiNetworks"><a href="LuCI.Network.html#getWifiNetworks">getWifiNetworks</a></li>
344             
345                 <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
346             
347                 <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
348             
349                 <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
350             
351                 <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
352             
353                 <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
354             
355                 <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
356             
357                 <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
358             
359             </ul>
360             <ul class="events itemMembers">
361             
362             </ul>
363         </li>
364     
365         <li class="item" data-name="LuCI.Network.Device">
366             <span class="title">
367                 <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
368                 
369             </span>
370             <ul class="members itemMembers">
371             
372             </ul>
373             <ul class="typedefs itemMembers">
374             
375             </ul>
376             <ul class="typedefs itemMembers">
377             
378             </ul>
379             <ul class="methods itemMembers">
380             
381             <span class="subtitle">Methods</span>
382             
383                 <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
384             
385                 <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
386             
387                 <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
388             
389                 <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
390             
391                 <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
392             
393                 <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
394             
395                 <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
396             
397                 <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
398             
399                 <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
400             
401                 <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
402             
403                 <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
404             
405                 <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
406             
407                 <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
408             
409                 <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
410             
411                 <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
412             
413                 <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
414             
415                 <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
416             
417                 <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
418             
419                 <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
420             
421                 <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
422             
423                 <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
424             
425                 <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
426             
427             </ul>
428             <ul class="events itemMembers">
429             
430             </ul>
431         </li>
432     
433         <li class="item" data-name="LuCI.Network.Hosts">
434             <span class="title">
435                 <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
436                 
437             </span>
438             <ul class="members itemMembers">
439             
440             </ul>
441             <ul class="typedefs itemMembers">
442             
443             </ul>
444             <ul class="typedefs itemMembers">
445             
446             </ul>
447             <ul class="methods itemMembers">
448             
449             <span class="subtitle">Methods</span>
450             
451                 <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
452             
453                 <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
454             
455                 <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
456             
457                 <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
458             
459                 <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
460             
461                 <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
462             
463                 <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
464             
465                 <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
466             
467             </ul>
468             <ul class="events itemMembers">
469             
470             </ul>
471         </li>
472     
473         <li class="item" data-name="LuCI.Network.Protocol">
474             <span class="title">
475                 <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
476                 
477             </span>
478             <ul class="members itemMembers">
479             
480             </ul>
481             <ul class="typedefs itemMembers">
482             
483             </ul>
484             <ul class="typedefs itemMembers">
485             
486             </ul>
487             <ul class="methods itemMembers">
488             
489             <span class="subtitle">Methods</span>
490             
491                 <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
492             
493                 <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
494             
495                 <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
496             
497                 <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
498             
499                 <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
500             
501                 <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
502             
503                 <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
504             
505                 <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
506             
507                 <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
508             
509                 <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
510             
511                 <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
512             
513                 <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
514             
515                 <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
516             
517                 <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
518             
519                 <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
520             
521                 <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
522             
523                 <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
524             
525                 <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
526             
527                 <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
528             
529                 <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
530             
531                 <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
532             
533                 <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
534             
535                 <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
536             
537                 <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
538             
539                 <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
540             
541                 <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
542             
543                 <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
544             
545                 <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
546             
547                 <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
548             
549                 <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
550             
551                 <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
552             
553                 <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
554             
555                 <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
556             
557                 <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
558             
559                 <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
560             
561                 <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
562             
563                 <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
564             
565                 <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
566             
567             </ul>
568             <ul class="events itemMembers">
569             
570             </ul>
571         </li>
572     
573         <li class="item" data-name="LuCI.Network.WifiDevice">
574             <span class="title">
575                 <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
576                 
577             </span>
578             <ul class="members itemMembers">
579             
580             </ul>
581             <ul class="typedefs itemMembers">
582             
583             </ul>
584             <ul class="typedefs itemMembers">
585             
586             </ul>
587             <ul class="methods itemMembers">
588             
589             <span class="subtitle">Methods</span>
590             
591                 <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
592             
593                 <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
594             
595                 <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
596             
597                 <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
598             
599                 <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
600             
601                 <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
602             
603                 <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
604             
605                 <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
606             
607                 <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
608             
609                 <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
610             
611                 <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
612             
613                 <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
614             
615                 <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
616             
617             </ul>
618             <ul class="events itemMembers">
619             
620             </ul>
621         </li>
622     
623         <li class="item" data-name="LuCI.Network.WifiNetwork">
624             <span class="title">
625                 <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
626                 
627             </span>
628             <ul class="members itemMembers">
629             
630             </ul>
631             <ul class="typedefs itemMembers">
632             
633             </ul>
634             <ul class="typedefs itemMembers">
635             
636             </ul>
637             <ul class="methods itemMembers">
638             
639             <span class="subtitle">Methods</span>
640             
641                 <li data-name="LuCI.Network.WifiNetwork#disconnectClient"><a href="LuCI.Network.WifiNetwork.html#disconnectClient">disconnectClient</a></li>
642             
643                 <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
644             
645                 <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
646             
647                 <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
648             
649                 <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
650             
651                 <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
652             
653                 <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
654             
655                 <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
656             
657                 <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
658             
659                 <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
660             
661                 <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
662             
663                 <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
664             
665                 <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
666             
667                 <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
668             
669                 <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
670             
671                 <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
672             
673                 <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
674             
675                 <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
676             
677                 <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
678             
679                 <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
680             
681                 <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
682             
683                 <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
684             
685                 <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
686             
687                 <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
688             
689                 <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
690             
691                 <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
692             
693                 <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
694             
695                 <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
696             
697                 <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
698             
699                 <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
700             
701                 <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
702             
703                 <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
704             
705                 <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
706             
707                 <li data-name="LuCI.Network.WifiNetwork#isClientDisconnectSupported"><a href="LuCI.Network.WifiNetwork.html#isClientDisconnectSupported">isClientDisconnectSupported</a></li>
708             
709                 <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
710             
711                 <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
712             
713                 <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
714             
715             </ul>
716             <ul class="events itemMembers">
717             
718             </ul>
719         </li>
720     
721         <li class="item" data-name="LuCI.Poll">
722             <span class="title">
723                 <a href="LuCI.Poll.html">LuCI.Poll</a>
724                 
725             </span>
726             <ul class="members itemMembers">
727             
728             </ul>
729             <ul class="typedefs itemMembers">
730             
731             </ul>
732             <ul class="typedefs itemMembers">
733             
734             </ul>
735             <ul class="methods itemMembers">
736             
737             <span class="subtitle">Methods</span>
738             
739                 <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
740             
741                 <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
742             
743                 <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
744             
745                 <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
746             
747                 <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
748             
749             </ul>
750             <ul class="events itemMembers">
751             
752             </ul>
753         </li>
754     
755         <li class="item" data-name="LuCI.Request">
756             <span class="title">
757                 <a href="LuCI.Request.html">LuCI.Request</a>
758                 
759             </span>
760             <ul class="members itemMembers">
761             
762             </ul>
763             <ul class="typedefs itemMembers">
764             
765             <span class="subtitle">Typedefs</span>
766             
767                 <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
768             
769                 <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
770             
771             </ul>
772             <ul class="typedefs itemMembers">
773             
774             </ul>
775             <ul class="methods itemMembers">
776             
777             <span class="subtitle">Methods</span>
778             
779                 <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
780             
781                 <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
782             
783                 <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
784             
785                 <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
786             
787                 <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
788             
789                 <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
790             
791             </ul>
792             <ul class="events itemMembers">
793             
794             </ul>
795         </li>
796     
797         <li class="item" data-name="LuCI.Request.poll">
798             <span class="title">
799                 <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
800                 
801             </span>
802             <ul class="members itemMembers">
803             
804             </ul>
805             <ul class="typedefs itemMembers">
806             
807             <span class="subtitle">Typedefs</span>
808             
809                 <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
810             
811             </ul>
812             <ul class="typedefs itemMembers">
813             
814             </ul>
815             <ul class="methods itemMembers">
816             
817             <span class="subtitle">Methods</span>
818             
819                 <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
820             
821                 <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
822             
823                 <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
824             
825                 <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
826             
827                 <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
828             
829             </ul>
830             <ul class="events itemMembers">
831             
832             </ul>
833         </li>
834     
835         <li class="item" data-name="LuCI.Response">
836             <span class="title">
837                 <a href="LuCI.Response.html">LuCI.Response</a>
838                 
839             </span>
840             <ul class="members itemMembers">
841             
842             <span class="subtitle">Members</span>
843             
844                 <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
845             
846                 <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
847             
848                 <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
849             
850                 <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
851             
852                 <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
853             
854                 <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
855             
856             </ul>
857             <ul class="typedefs itemMembers">
858             
859             </ul>
860             <ul class="typedefs itemMembers">
861             
862             </ul>
863             <ul class="methods itemMembers">
864             
865             <span class="subtitle">Methods</span>
866             
867                 <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
868             
869                 <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
870             
871                 <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
872             
873             </ul>
874             <ul class="events itemMembers">
875             
876             </ul>
877         </li>
878     
879         <li class="item" data-name="LuCI.rpc">
880             <span class="title">
881                 <a href="LuCI.rpc.html">LuCI.rpc</a>
882                 
883             </span>
884             <ul class="members itemMembers">
885             
886             </ul>
887             <ul class="typedefs itemMembers">
888             
889             <span class="subtitle">Typedefs</span>
890             
891                 <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
892             
893                 <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
894             
895                 <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
896             
897                 <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
898             
899             </ul>
900             <ul class="typedefs itemMembers">
901             
902             </ul>
903             <ul class="methods itemMembers">
904             
905             <span class="subtitle">Methods</span>
906             
907                 <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
908             
909                 <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
910             
911                 <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
912             
913                 <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
914             
915                 <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
916             
917                 <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
918             
919                 <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
920             
921                 <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
922             
923                 <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
924             
925             </ul>
926             <ul class="events itemMembers">
927             
928             </ul>
929         </li>
930     
931         <li class="item" data-name="LuCI.uci">
932             <span class="title">
933                 <a href="LuCI.uci.html">LuCI.uci</a>
934                 
935             </span>
936             <ul class="members itemMembers">
937             
938             </ul>
939             <ul class="typedefs itemMembers">
940             
941             <span class="subtitle">Typedefs</span>
942             
943                 <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
944             
945                 <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
946             
947                 <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
948             
949             </ul>
950             <ul class="typedefs itemMembers">
951             
952             </ul>
953             <ul class="methods itemMembers">
954             
955             <span class="subtitle">Methods</span>
956             
957                 <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
958             
959                 <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
960             
961                 <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
962             
963                 <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
964             
965                 <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
966             
967                 <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
968             
969                 <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
970             
971                 <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
972             
973                 <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
974             
975                 <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
976             
977                 <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
978             
979                 <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
980             
981                 <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
982             
983                 <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
984             
985                 <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
986             
987                 <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
988             
989                 <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
990             
991             </ul>
992             <ul class="events itemMembers">
993             
994             </ul>
995         </li>
996     
997         <li class="item" data-name="LuCI.view">
998             <span class="title">
999                 <a href="LuCI.view.html">LuCI.view</a>
1000                 
1001             </span>
1002             <ul class="members itemMembers">
1003             
1004             </ul>
1005             <ul class="typedefs itemMembers">
1006             
1007             </ul>
1008             <ul class="typedefs itemMembers">
1009             
1010             </ul>
1011             <ul class="methods itemMembers">
1012             
1013             <span class="subtitle">Methods</span>
1014             
1015                 <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
1016             
1017                 <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
1018             
1019                 <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
1020             
1021                 <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
1022             
1023                 <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
1024             
1025                 <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
1026             
1027             </ul>
1028             <ul class="events itemMembers">
1029             
1030             </ul>
1031         </li>
1032     
1033         <li class="item" data-name="LuCI.XHR">
1034             <span class="title">
1035                 <a href="LuCI.XHR.html">LuCI.XHR</a>
1036                 
1037             </span>
1038             <ul class="members itemMembers">
1039             
1040             </ul>
1041             <ul class="typedefs itemMembers">
1042             
1043             </ul>
1044             <ul class="typedefs itemMembers">
1045             
1046             </ul>
1047             <ul class="methods itemMembers">
1048             
1049             <span class="subtitle">Methods</span>
1050             
1051                 <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
1052             
1053                 <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
1054             
1055                 <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
1056             
1057                 <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
1058             
1059                 <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
1060             
1061                 <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
1062             
1063             </ul>
1064             <ul class="events itemMembers">
1065             
1066             </ul>
1067         </li>
1068     
1069     </ul>
1070 </div>
1071     <div class="main">
1072         <h1 class="page-title" data-filename="rpc.js.html">Source: rpc.js</h1>
1073         
1074
1075
1076     
1077     <section>
1078         <article>
1079             <pre id="source-code" class="prettyprint source "><code>'use strict';
1080
1081 var rpcRequestID = 1,
1082     rpcSessionID = L.env.sessionid || '00000000000000000000000000000000',
1083     rpcBaseURL = L.url('admin/ubus'),
1084     rpcInterceptorFns = [];
1085
1086 /**
1087  * @class rpc
1088  * @memberof LuCI
1089  * @hideconstructor
1090  * @classdesc
1091  *
1092  * The `LuCI.rpc` class provides high level ubus JSON-RPC abstractions
1093  * and means for listing and invoking remove RPC methods.
1094  */
1095 return L.Class.extend(/** @lends LuCI.rpc.prototype */ {
1096         /* privates */
1097         call: function(req, cb, nobatch) {
1098                 var q = '';
1099
1100                 if (Array.isArray(req)) {
1101                         if (req.length == 0)
1102                                 return Promise.resolve([]);
1103
1104                         for (var i = 0; i &lt; req.length; i++)
1105                                 if (req[i].params)
1106                                         q += '%s%s.%s'.format(
1107                                                 q ? ';' : '/',
1108                                                 req[i].params[1],
1109                                                 req[i].params[2]
1110                                         );
1111                 }
1112                 else if (req.params) {
1113                         q += '/%s.%s'.format(req.params[1], req.params[2]);
1114                 }
1115
1116                 return L.Request.post(rpcBaseURL + q, req, {
1117                         timeout: (L.env.rpctimeout || 20) * 1000,
1118                         nobatch: nobatch,
1119                         credentials: true
1120                 }).then(cb, cb);
1121         },
1122
1123         parseCallReply: function(req, res) {
1124                 var msg = null;
1125
1126                 if (res instanceof Error)
1127                         return req.reject(res);
1128
1129                 try {
1130                         if (!res.ok)
1131                                 L.raise('RPCError', 'RPC call to %s/%s failed with HTTP error %d: %s',
1132                                         req.object, req.method, res.status, res.statusText || '?');
1133
1134                         msg = res.json();
1135                 }
1136                 catch (e) {
1137                         return req.reject(e);
1138                 }
1139
1140                 /*
1141                  * The interceptor args are intentionally swapped.
1142                  * Response is passed as first arg to align with Request class interceptors
1143                  */
1144                 Promise.all(rpcInterceptorFns.map(function(fn) { return fn(msg, req) }))
1145                         .then(this.handleCallReply.bind(this, req, msg))
1146                         .catch(req.reject);
1147         },
1148
1149         handleCallReply: function(req, msg) {
1150                 var type = Object.prototype.toString,
1151                     ret = null;
1152
1153                 try {
1154                         /* verify message frame */
1155                         if (!L.isObject(msg) || msg.jsonrpc != '2.0')
1156                                 L.raise('RPCError', 'RPC call to %s/%s returned invalid message frame',
1157                                         req.object, req.method);
1158
1159                         /* check error condition */
1160                         if (L.isObject(msg.error) &amp;&amp; msg.error.code &amp;&amp; msg.error.message)
1161                                 L.raise('RPCError', 'RPC call to %s/%s failed with error %d: %s',
1162                                         req.object, req.method, msg.error.code, msg.error.message || '?');
1163                 }
1164                 catch (e) {
1165                         return req.reject(e);
1166                 }
1167
1168                 if (!req.object &amp;&amp; !req.method) {
1169                         ret = msg.result;
1170                 }
1171                 else if (Array.isArray(msg.result)) {
1172                         ret = (msg.result.length > 1) ? msg.result[1] : msg.result[0];
1173                 }
1174
1175                 if (req.expect) {
1176                         for (var key in req.expect) {
1177                                 if (ret != null &amp;&amp; key != '')
1178                                         ret = ret[key];
1179
1180                                 if (ret == null || type.call(ret) != type.call(req.expect[key]))
1181                                         ret = req.expect[key];
1182
1183                                 break;
1184                         }
1185                 }
1186
1187                 /* apply filter */
1188                 if (typeof(req.filter) == 'function') {
1189                         req.priv[0] = ret;
1190                         req.priv[1] = req.params;
1191                         ret = req.filter.apply(this, req.priv);
1192                 }
1193
1194                 req.resolve(ret);
1195         },
1196
1197         /**
1198          * Lists available remote ubus objects or the method signatures of
1199          * specific objects.
1200          *
1201          * This function has two signatures and is sensitive to the number of
1202          * arguments passed to it:
1203          *  - `list()` -
1204          *    Returns an array containing the names of all remote `ubus` objects
1205          *  - `list("objname", ...)`
1206          *    Returns method signatures for each given `ubus` object name.
1207          *
1208          * @param {...string} [objectNames]
1209          * If any object names are given, this function will return the method
1210          * signatures of each given object.
1211          *
1212          * @returns {Promise&lt;Array&lt;string>|Object&lt;string, Object&lt;string, Object&lt;string, string>>>>}
1213          * When invoked without arguments, this function will return a promise
1214          * resolving to an array of `ubus` object names. When invoked with one or
1215          * more arguments, a promise resolving to an object describing the method
1216          * signatures of each requested `ubus` object name will be returned.
1217          */
1218         list: function() {
1219                 var msg = {
1220                         jsonrpc: '2.0',
1221                         id:      rpcRequestID++,
1222                         method:  'list',
1223                         params:  arguments.length ? this.varargs(arguments) : undefined
1224                 };
1225
1226                 return new Promise(L.bind(function(resolveFn, rejectFn) {
1227                         /* store request info */
1228                         var req = {
1229                                 resolve: resolveFn,
1230                                 reject:  rejectFn
1231                         };
1232
1233                         /* call rpc */
1234                         this.call(msg, this.parseCallReply.bind(this, req));
1235                 }, this));
1236         },
1237
1238         /**
1239          * @typedef {Object} DeclareOptions
1240          * @memberof LuCI.rpc
1241          *
1242          * @property {string} object
1243          * The name of the remote `ubus` object to invoke.
1244          *
1245          * @property {string} method
1246          * The name of the remote `ubus` method to invoke.
1247          *
1248          * @property {string[]} [params]
1249          * Lists the named parameters expected by the remote `ubus` RPC method.
1250          * The arguments passed to the resulting generated method call function
1251          * will be mapped to named parameters in the order they appear in this
1252          * array.
1253          *
1254          * Extraneous parameters passed to the generated function will not be
1255          * sent to the remote procedure but are passed to the
1256          * {@link LuCI.rpc~filterFn filter function} if one is specified.
1257          *
1258          * Examples:
1259          *  - `params: [ "foo", "bar" ]` -
1260          *    When the resulting call function is invoked with `fn(true, false)`,
1261          *    the corresponding args object sent to the remote procedure will be
1262          *    `{ foo: true, bar: false }`.
1263          *  - `params: [ "test" ], filter: function(reply, args, extra) { ... }` -
1264          *    When the resultung generated function is invoked with
1265          *    `fn("foo", "bar", "baz")` then `{ "test": "foo" }` will be sent as
1266          *    argument to the remote procedure and the filter function will be
1267          *    invoked with `filterFn(reply, [ "foo" ], "bar", "baz")`
1268          *
1269          * @property {Object&lt;string,*>} [expect]
1270          * Describes the expected return data structure. The given object is
1271          * supposed to contain a single key selecting the value to use from
1272          * the returned `ubus` reply object. The value of the sole key within
1273          * the `expect` object is used to infer the expected type of the received
1274          * `ubus` reply data.
1275          *
1276          * If the received data does not contain `expect`'s key, or if the
1277          * type of the data differs from the type of the value in the expect
1278          * object, the expect object's value is returned as default instead.
1279          *
1280          * The key in the `expect` object may be an empty string (`''`) in which
1281          * case the entire reply object is selected instead of one of its subkeys.
1282          *
1283          * If the `expect` option is omitted, the received reply will be returned
1284          * as-is, regardless of its format or type.
1285          *
1286          * Examples:
1287          *  - `expect: { '': { error: 'Invalid response' } }` -
1288          *    This requires the entire `ubus` reply to be a plain JavaScript
1289          *    object. If the reply isn't an object but e.g. an array or a numeric
1290          *    error code instead, it will get replaced with
1291          *    `{ error: 'Invalid response' }` instead.
1292          *  - `expect: { results: [] }` -
1293          *    This requires the received `ubus` reply to be an object containing
1294          *    a key `results` with an array as value. If the received reply does
1295          *    not contain such a key, or if `reply.results` points to a non-array
1296          *    value, the empty array (`[]`) will be used instead.
1297          *  - `expect: { success: false }` -
1298          *    This requires the received `ubus` reply to be an object containing
1299          *    a key `success` with a boolean value. If the reply does not contain
1300          *    `success` or if `reply.success` is not a boolean value, `false` will
1301          *    be returned as default instead.
1302          *
1303          * @property {LuCI.rpc~filterFn} [filter]
1304          * Specfies an optional filter function which is invoked to transform the
1305          * received reply data before it is returned to the caller.
1306          *
1307          */
1308
1309         /**
1310          * The filter function is invoked to transform a received `ubus` RPC call
1311          * reply before returning it to the caller.
1312          *
1313          * @callback LuCI.rpc~filterFn
1314          *
1315          * @param {*} data
1316          * The received `ubus` reply data or a subset of it as described in the
1317          * `expect` option of the RPC call declaration. In case of remote call
1318          * errors, `data` is numeric `ubus` error code instead.
1319          *
1320          * @param {Array&lt;*>} args
1321          * The arguments the RPC method has been invoked with.
1322          *
1323          * @param {...*} extraArgs
1324          * All extraneous arguments passed to the RPC method exceeding the number
1325          * of arguments describes in the RPC call declaration.
1326          *
1327          * @return {*}
1328          * The return value of the filter function will be returned to the caller
1329          * of the RPC method as-is.
1330          */
1331
1332         /**
1333          * The generated invocation function is returned by
1334          * {@link LuCI.rpc#declare rpc.declare()} and encapsulates a single
1335          * RPC method call.
1336          *
1337          * Calling this function will execute a remote `ubus` HTTP call request
1338          * using the arguments passed to it as arguments and return a promise
1339          * resolving to the received reply values.
1340          *
1341          * @callback LuCI.rpc~invokeFn
1342          *
1343          * @param {...*} params
1344          * The parameters to pass to the remote procedure call. The given
1345          * positional arguments will be named to named RPC parameters according
1346          * to the names specified in the `params` array of the method declaration.
1347          *
1348          * Any additional parameters exceeding the amount of arguments in the
1349          * `params` declaration are passed as private extra arguments to the
1350          * declared filter function.
1351          *
1352          * @return {Promise&lt;*>}
1353          * Returns a promise resolving to the result data of the remote `ubus`
1354          * RPC method invocation, optionally substituted and filtered according
1355          * to the `expect` and `filter` declarations.
1356          */
1357
1358         /**
1359          * Describes a remote RPC call procedure and returns a function
1360          * implementing it.
1361          *
1362          * @param {LuCI.rpc.DeclareOptions} options
1363          * If any object names are given, this function will return the method
1364          * signatures of each given object.
1365          *
1366          * @returns {LuCI.rpc~invokeFn}
1367          * Returns a new function implementing the method call described in
1368          * `options`.
1369          */
1370         declare: function(options) {
1371                 return Function.prototype.bind.call(function(rpc, options) {
1372                         var args = this.varargs(arguments, 2);
1373                         return new Promise(function(resolveFn, rejectFn) {
1374                                 /* build parameter object */
1375                                 var p_off = 0;
1376                                 var params = { };
1377                                 if (Array.isArray(options.params))
1378                                         for (p_off = 0; p_off &lt; options.params.length; p_off++)
1379                                                 params[options.params[p_off]] = args[p_off];
1380
1381                                 /* all remaining arguments are private args */
1382                                 var priv = [ undefined, undefined ];
1383                                 for (; p_off &lt; args.length; p_off++)
1384                                         priv.push(args[p_off]);
1385
1386                                 /* store request info */
1387                                 var req = {
1388                                         expect:  options.expect,
1389                                         filter:  options.filter,
1390                                         resolve: resolveFn,
1391                                         reject:  rejectFn,
1392                                         params:  params,
1393                                         priv:    priv,
1394                                         object:  options.object,
1395                                         method:  options.method
1396                                 };
1397
1398                                 /* build message object */
1399                                 var msg = {
1400                                         jsonrpc: '2.0',
1401                                         id:      rpcRequestID++,
1402                                         method:  'call',
1403                                         params:  [
1404                                                 rpcSessionID,
1405                                                 options.object,
1406                                                 options.method,
1407                                                 params
1408                                         ]
1409                                 };
1410
1411                                 /* call rpc */
1412                                 rpc.call(msg, rpc.parseCallReply.bind(rpc, req), options.nobatch);
1413                         });
1414                 }, this, this, options);
1415         },
1416
1417         /**
1418          * Returns the current RPC session id.
1419          *
1420          * @returns {string}
1421          * Returns the 32 byte session ID string used for authenticating remote
1422          * requests.
1423          */
1424         getSessionID: function() {
1425                 return rpcSessionID;
1426         },
1427
1428         /**
1429          * Set the RPC session id to use.
1430          *
1431          * @param {string} sid
1432          * Sets the 32 byte session ID string used for authenticating remote
1433          * requests.
1434          */
1435         setSessionID: function(sid) {
1436                 rpcSessionID = sid;
1437         },
1438
1439         /**
1440          * Returns the current RPC base URL.
1441          *
1442          * @returns {string}
1443          * Returns the RPC URL endpoint to issue requests against.
1444          */
1445         getBaseURL: function() {
1446                 return rpcBaseURL;
1447         },
1448
1449         /**
1450          * Set the RPC base URL to use.
1451          *
1452          * @param {string} sid
1453          * Sets the RPC URL endpoint to issue requests against.
1454          */
1455         setBaseURL: function(url) {
1456                 rpcBaseURL = url;
1457         },
1458
1459         /**
1460          * Translates a numeric `ubus` error code into a human readable
1461          * description.
1462          *
1463          * @param {number} statusCode
1464          * The numeric status code.
1465          *
1466          * @returns {string}
1467          * Returns the textual description of the code.
1468          */
1469         getStatusText: function(statusCode) {
1470                 switch (statusCode) {
1471                 case 0: return _('Command OK');
1472                 case 1: return _('Invalid command');
1473                 case 2: return _('Invalid argument');
1474                 case 3: return _('Method not found');
1475                 case 4: return _('Resource not found');
1476                 case 5: return _('No data received');
1477                 case 6: return _('Permission denied');
1478                 case 7: return _('Request timeout');
1479                 case 8: return _('Not supported');
1480                 case 9: return _('Unspecified error');
1481                 case 10: return _('Connection lost');
1482                 default: return _('Unknown error code');
1483                 }
1484         },
1485
1486         /**
1487          * Registered interceptor functions are invoked before the standard reply
1488          * parsing and handling logic.
1489          *
1490          * By returning rejected promises, interceptor functions can cause the
1491          * invocation function to fail, regardless of the received reply.
1492          *
1493          * Interceptors may also modify their message argument in-place to
1494          * rewrite received replies before they're processed by the standard
1495          * response handling code.
1496          *
1497          * A common use case for such functions is to detect failing RPC replies
1498          * due to expired authentication in order to trigger a new login.
1499          *
1500          * @callback LuCI.rpc~interceptorFn
1501          *
1502          * @param {*} msg
1503          * The unprocessed, JSON decoded remote RPC method call reply.
1504          *
1505          * Since interceptors run before the standard parsing logic, the reply
1506          * data is not verified for correctness or filtered according to
1507          * `expect` and `filter` specifications in the declarations.
1508          *
1509          * @param {Object} req
1510          * The related request object which is an extended variant of the
1511          * declaration object, allowing access to internals of the invocation
1512          * function such as `filter`, `expect` or `params` values.
1513          *
1514          * @return {Promise&lt;*>|*}
1515          * Interceptor functions may return a promise to defer response
1516          * processing until some delayed work completed. Any values the returned
1517          * promise resolves to are ignored.
1518          *
1519          * When the returned promise rejects with an error, the invocation
1520          * function will fail too, forwarding the error to the caller.
1521          */
1522
1523         /**
1524          * Registers a new interceptor function.
1525          *
1526          * @param {LuCI.rpc~interceptorFn} interceptorFn
1527          * The inteceptor function to register.
1528          *
1529          * @returns {LuCI.rpc~interceptorFn}
1530          * Returns the given function value.
1531          */
1532         addInterceptor: function(interceptorFn) {
1533                 if (typeof(interceptorFn) == 'function')
1534                         rpcInterceptorFns.push(interceptorFn);
1535                 return interceptorFn;
1536         },
1537
1538         /**
1539          * Removes a registered interceptor function.
1540          *
1541          * @param {LuCI.rpc~interceptorFn} interceptorFn
1542          * The inteceptor function to remove.
1543          *
1544          * @returns {boolean}
1545          * Returns `true` if the given function has been removed or `false`
1546          * if it has not been found.
1547          */
1548         removeInterceptor: function(interceptorFn) {
1549                 var oldlen = rpcInterceptorFns.length, i = oldlen;
1550                 while (i--)
1551                         if (rpcInterceptorFns[i] === interceptorFn)
1552                                 rpcInterceptorFns.splice(i, 1);
1553                 return (rpcInterceptorFns.length &lt; oldlen);
1554         }
1555 });
1556 </code></pre>
1557         </article>
1558     </section>
1559
1560
1561
1562
1563
1564
1565         
1566
1567         <footer>
1568             Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Thu Nov 07 2019 12:36:05 GMT+0100 (Central European Standard Time)
1569         </footer>
1570     </div>
1571 </div>
1572 <script>prettyPrint();</script>
1573 <script src="scripts/jaguar.js"></script>
1574 </body>
1575 </html>