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