rpc.js.html 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Source: rpc.js</title>
  6. <script src="scripts/prettify/prettify.js"></script>
  7. <script src="scripts/prettify/lang-css.js"></script>
  8. <script src="scripts/jquery.min.js"></script>
  9. <!--[if lt IE 9]>
  10. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  11. <![endif]-->
  12. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  13. <link type="text/css" rel="stylesheet" href="styles/bootstrap.min.css">
  14. <link type="text/css" rel="stylesheet" href="styles/jaguar.css">
  15. <script>
  16. var config = {"monospaceLinks":true,"cleverLinks":true,"default":{"outputSourceFiles":true}};
  17. </script>
  18. </head>
  19. <body>
  20. <div id="wrap" class="clearfix">
  21. <div class="navigation">
  22. <h3 class="applicationName"><a href="index.html"></a></h3>
  23. <div class="search">
  24. <input id="search" type="text" class="form-control input-sm" placeholder="Search Documentations">
  25. </div>
  26. <ul class="list">
  27. <li class="item" data-name="LuCI">
  28. <span class="title">
  29. <a href="LuCI.html">LuCI</a>
  30. </span>
  31. <ul class="members itemMembers">
  32. <span class="subtitle">Members</span>
  33. <li data-name="LuCI#env"><a href="LuCI.html#env">env</a></li>
  34. </ul>
  35. <ul class="typedefs itemMembers">
  36. <span class="subtitle">Typedefs</span>
  37. <li data-name="LuCI.requestCallbackFn"><a href="LuCI.html#.requestCallbackFn">requestCallbackFn</a></li>
  38. </ul>
  39. <ul class="typedefs itemMembers">
  40. </ul>
  41. <ul class="methods itemMembers">
  42. <span class="subtitle">Methods</span>
  43. <li data-name="LuCI#bind"><a href="LuCI.html#bind">bind</a></li>
  44. <li data-name="LuCI#error"><a href="LuCI.html#error">error</a></li>
  45. <li data-name="LuCI#get"><a href="LuCI.html#get">get</a></li>
  46. <li data-name="LuCI#halt"><a href="LuCI.html#halt">halt</a></li>
  47. <li data-name="LuCI#hasSystemFeature"><a href="LuCI.html#hasSystemFeature">hasSystemFeature</a></li>
  48. <li data-name="LuCI#isObject"><a href="LuCI.html#isObject">isObject</a></li>
  49. <li data-name="LuCI#location"><a href="LuCI.html#location">location</a></li>
  50. <li data-name="LuCI#path"><a href="LuCI.html#path">path</a></li>
  51. <li data-name="LuCI#poll"><a href="LuCI.html#poll">poll</a></li>
  52. <li data-name="LuCI#post"><a href="LuCI.html#post">post</a></li>
  53. <li data-name="LuCI#raise"><a href="LuCI.html#raise">raise</a></li>
  54. <li data-name="LuCI#require"><a href="LuCI.html#require">require</a></li>
  55. <li data-name="LuCI#resolveDefault"><a href="LuCI.html#resolveDefault">resolveDefault</a></li>
  56. <li data-name="LuCI#resource"><a href="LuCI.html#resource">resource</a></li>
  57. <li data-name="LuCI#run"><a href="LuCI.html#run">run</a></li>
  58. <li data-name="LuCI#sortedKeys"><a href="LuCI.html#sortedKeys">sortedKeys</a></li>
  59. <li data-name="LuCI#stop"><a href="LuCI.html#stop">stop</a></li>
  60. <li data-name="LuCI#toArray"><a href="LuCI.html#toArray">toArray</a></li>
  61. <li data-name="LuCI#url"><a href="LuCI.html#url">url</a></li>
  62. </ul>
  63. <ul class="events itemMembers">
  64. </ul>
  65. </li>
  66. <li class="item" data-name="LuCI.Class">
  67. <span class="title">
  68. <a href="LuCI.Class.html">LuCI.Class</a>
  69. </span>
  70. <ul class="members itemMembers">
  71. </ul>
  72. <ul class="typedefs itemMembers">
  73. </ul>
  74. <ul class="typedefs itemMembers">
  75. </ul>
  76. <ul class="methods itemMembers">
  77. <span class="subtitle">Methods</span>
  78. <li data-name="LuCI.Class.extend"><a href="LuCI.Class.html#.extend">extend</a></li>
  79. <li data-name="LuCI.Class.instantiate"><a href="LuCI.Class.html#.instantiate">instantiate</a></li>
  80. <li data-name="LuCI.Class.isSubclass"><a href="LuCI.Class.html#.isSubclass">isSubclass</a></li>
  81. <li data-name="LuCI.Class.singleton"><a href="LuCI.Class.html#.singleton">singleton</a></li>
  82. <li data-name="LuCI.Class#super"><a href="LuCI.Class.html#super">super</a></li>
  83. <li data-name="LuCI.Class#varargs"><a href="LuCI.Class.html#varargs">varargs</a></li>
  84. </ul>
  85. <ul class="events itemMembers">
  86. </ul>
  87. </li>
  88. <li class="item" data-name="LuCI.dom">
  89. <span class="title">
  90. <a href="LuCI.dom.html">LuCI.dom</a>
  91. </span>
  92. <ul class="members itemMembers">
  93. </ul>
  94. <ul class="typedefs itemMembers">
  95. <span class="subtitle">Typedefs</span>
  96. <li data-name="LuCI.dom~ignoreCallbackFn"><a href="LuCI.dom.html#~ignoreCallbackFn">ignoreCallbackFn</a></li>
  97. </ul>
  98. <ul class="typedefs itemMembers">
  99. </ul>
  100. <ul class="methods itemMembers">
  101. <span class="subtitle">Methods</span>
  102. <li data-name="LuCI.dom#append"><a href="LuCI.dom.html#append">append</a></li>
  103. <li data-name="LuCI.dom#attr"><a href="LuCI.dom.html#attr">attr</a></li>
  104. <li data-name="LuCI.dom#bindClassInstance"><a href="LuCI.dom.html#bindClassInstance">bindClassInstance</a></li>
  105. <li data-name="LuCI.dom#callClassMethod"><a href="LuCI.dom.html#callClassMethod">callClassMethod</a></li>
  106. <li data-name="LuCI.dom#content"><a href="LuCI.dom.html#content">content</a></li>
  107. <li data-name="LuCI.dom#create"><a href="LuCI.dom.html#create">create</a></li>
  108. <li data-name="LuCI.dom#data"><a href="LuCI.dom.html#data">data</a></li>
  109. <li data-name="LuCI.dom#elem"><a href="LuCI.dom.html#elem">elem</a></li>
  110. <li data-name="LuCI.dom#findClassInstance"><a href="LuCI.dom.html#findClassInstance">findClassInstance</a></li>
  111. <li data-name="LuCI.dom#isEmpty"><a href="LuCI.dom.html#isEmpty">isEmpty</a></li>
  112. <li data-name="LuCI.dom#matches"><a href="LuCI.dom.html#matches">matches</a></li>
  113. <li data-name="LuCI.dom#parent"><a href="LuCI.dom.html#parent">parent</a></li>
  114. <li data-name="LuCI.dom#parse"><a href="LuCI.dom.html#parse">parse</a></li>
  115. </ul>
  116. <ul class="events itemMembers">
  117. </ul>
  118. </li>
  119. <li class="item" data-name="LuCI.fs">
  120. <span class="title">
  121. <a href="LuCI.fs.html">LuCI.fs</a>
  122. </span>
  123. <ul class="members itemMembers">
  124. </ul>
  125. <ul class="typedefs itemMembers">
  126. <span class="subtitle">Typedefs</span>
  127. <li data-name="LuCI.fs.FileExecResult"><a href="LuCI.fs.html#.FileExecResult">FileExecResult</a></li>
  128. <li data-name="LuCI.fs.FileStatEntry"><a href="LuCI.fs.html#.FileStatEntry">FileStatEntry</a></li>
  129. </ul>
  130. <ul class="typedefs itemMembers">
  131. </ul>
  132. <ul class="methods itemMembers">
  133. <span class="subtitle">Methods</span>
  134. <li data-name="LuCI.fs#exec"><a href="LuCI.fs.html#exec">exec</a></li>
  135. <li data-name="LuCI.fs#lines"><a href="LuCI.fs.html#lines">lines</a></li>
  136. <li data-name="LuCI.fs#list"><a href="LuCI.fs.html#list">list</a></li>
  137. <li data-name="LuCI.fs#read"><a href="LuCI.fs.html#read">read</a></li>
  138. <li data-name="LuCI.fs#remove"><a href="LuCI.fs.html#remove">remove</a></li>
  139. <li data-name="LuCI.fs#stat"><a href="LuCI.fs.html#stat">stat</a></li>
  140. <li data-name="LuCI.fs#trimmed"><a href="LuCI.fs.html#trimmed">trimmed</a></li>
  141. <li data-name="LuCI.fs#write"><a href="LuCI.fs.html#write">write</a></li>
  142. </ul>
  143. <ul class="events itemMembers">
  144. </ul>
  145. </li>
  146. <li class="item" data-name="LuCI.Headers">
  147. <span class="title">
  148. <a href="LuCI.Headers.html">LuCI.Headers</a>
  149. </span>
  150. <ul class="members itemMembers">
  151. </ul>
  152. <ul class="typedefs itemMembers">
  153. </ul>
  154. <ul class="typedefs itemMembers">
  155. </ul>
  156. <ul class="methods itemMembers">
  157. <span class="subtitle">Methods</span>
  158. <li data-name="LuCI.Headers#get"><a href="LuCI.Headers.html#get">get</a></li>
  159. <li data-name="LuCI.Headers#has"><a href="LuCI.Headers.html#has">has</a></li>
  160. </ul>
  161. <ul class="events itemMembers">
  162. </ul>
  163. </li>
  164. <li class="item" data-name="LuCI.Network">
  165. <span class="title">
  166. <a href="LuCI.Network.html">LuCI.Network</a>
  167. </span>
  168. <ul class="members itemMembers">
  169. </ul>
  170. <ul class="typedefs itemMembers">
  171. <span class="subtitle">Typedefs</span>
  172. <li data-name="LuCI.Network.SwitchTopology"><a href="LuCI.Network.html#.SwitchTopology">SwitchTopology</a></li>
  173. <li data-name="LuCI.Network.WifiEncryption"><a href="LuCI.Network.html#.WifiEncryption">WifiEncryption</a></li>
  174. <li data-name="LuCI.Network.WifiPeerEntry"><a href="LuCI.Network.html#.WifiPeerEntry">WifiPeerEntry</a></li>
  175. <li data-name="LuCI.Network.WifiRateEntry"><a href="LuCI.Network.html#.WifiRateEntry">WifiRateEntry</a></li>
  176. <li data-name="LuCI.Network.WifiScanResult"><a href="LuCI.Network.html#.WifiScanResult">WifiScanResult</a></li>
  177. </ul>
  178. <ul class="typedefs itemMembers">
  179. </ul>
  180. <ul class="methods itemMembers">
  181. <span class="subtitle">Methods</span>
  182. <li data-name="LuCI.Network#addNetwork"><a href="LuCI.Network.html#addNetwork">addNetwork</a></li>
  183. <li data-name="LuCI.Network#addWifiNetwork"><a href="LuCI.Network.html#addWifiNetwork">addWifiNetwork</a></li>
  184. <li data-name="LuCI.Network#deleteNetwork"><a href="LuCI.Network.html#deleteNetwork">deleteNetwork</a></li>
  185. <li data-name="LuCI.Network#deleteWifiNetwork"><a href="LuCI.Network.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
  186. <li data-name="LuCI.Network#flushCache"><a href="LuCI.Network.html#flushCache">flushCache</a></li>
  187. <li data-name="LuCI.Network#formatWifiEncryption"><a href="LuCI.Network.html#formatWifiEncryption">formatWifiEncryption</a></li>
  188. <li data-name="LuCI.Network#getDevice"><a href="LuCI.Network.html#getDevice">getDevice</a></li>
  189. <li data-name="LuCI.Network#getDevices"><a href="LuCI.Network.html#getDevices">getDevices</a></li>
  190. <li data-name="LuCI.Network#getDSLModemType"><a href="LuCI.Network.html#getDSLModemType">getDSLModemType</a></li>
  191. <li data-name="LuCI.Network#getHostHints"><a href="LuCI.Network.html#getHostHints">getHostHints</a></li>
  192. <li data-name="LuCI.Network#getIfnameOf"><a href="LuCI.Network.html#getIfnameOf">getIfnameOf</a></li>
  193. <li data-name="LuCI.Network#getNetwork"><a href="LuCI.Network.html#getNetwork">getNetwork</a></li>
  194. <li data-name="LuCI.Network#getNetworks"><a href="LuCI.Network.html#getNetworks">getNetworks</a></li>
  195. <li data-name="LuCI.Network#getProtocol"><a href="LuCI.Network.html#getProtocol">getProtocol</a></li>
  196. <li data-name="LuCI.Network#getProtocols"><a href="LuCI.Network.html#getProtocols">getProtocols</a></li>
  197. <li data-name="LuCI.Network#getSwitchTopologies"><a href="LuCI.Network.html#getSwitchTopologies">getSwitchTopologies</a></li>
  198. <li data-name="LuCI.Network#getWAN6Networks"><a href="LuCI.Network.html#getWAN6Networks">getWAN6Networks</a></li>
  199. <li data-name="LuCI.Network#getWANNetworks"><a href="LuCI.Network.html#getWANNetworks">getWANNetworks</a></li>
  200. <li data-name="LuCI.Network#getWifiDevice"><a href="LuCI.Network.html#getWifiDevice">getWifiDevice</a></li>
  201. <li data-name="LuCI.Network#getWifiDevices"><a href="LuCI.Network.html#getWifiDevices">getWifiDevices</a></li>
  202. <li data-name="LuCI.Network#getWifiNetwork"><a href="LuCI.Network.html#getWifiNetwork">getWifiNetwork</a></li>
  203. <li data-name="LuCI.Network#getWifiNetworks"><a href="LuCI.Network.html#getWifiNetworks">getWifiNetworks</a></li>
  204. <li data-name="LuCI.Network#isIgnoredDevice"><a href="LuCI.Network.html#isIgnoredDevice">isIgnoredDevice</a></li>
  205. <li data-name="LuCI.Network#maskToPrefix"><a href="LuCI.Network.html#maskToPrefix">maskToPrefix</a></li>
  206. <li data-name="LuCI.Network#prefixToMask"><a href="LuCI.Network.html#prefixToMask">prefixToMask</a></li>
  207. <li data-name="LuCI.Network#registerErrorCode"><a href="LuCI.Network.html#registerErrorCode">registerErrorCode</a></li>
  208. <li data-name="LuCI.Network#registerPatternVirtual"><a href="LuCI.Network.html#registerPatternVirtual">registerPatternVirtual</a></li>
  209. <li data-name="LuCI.Network#registerProtocol"><a href="LuCI.Network.html#registerProtocol">registerProtocol</a></li>
  210. <li data-name="LuCI.Network#renameNetwork"><a href="LuCI.Network.html#renameNetwork">renameNetwork</a></li>
  211. </ul>
  212. <ul class="events itemMembers">
  213. </ul>
  214. </li>
  215. <li class="item" data-name="LuCI.Network.Device">
  216. <span class="title">
  217. <a href="LuCI.Network.Device.html">LuCI.Network.Device</a>
  218. </span>
  219. <ul class="members itemMembers">
  220. </ul>
  221. <ul class="typedefs itemMembers">
  222. </ul>
  223. <ul class="typedefs itemMembers">
  224. </ul>
  225. <ul class="methods itemMembers">
  226. <span class="subtitle">Methods</span>
  227. <li data-name="LuCI.Network.Device#getBridgeID"><a href="LuCI.Network.Device.html#getBridgeID">getBridgeID</a></li>
  228. <li data-name="LuCI.Network.Device#getBridgeSTP"><a href="LuCI.Network.Device.html#getBridgeSTP">getBridgeSTP</a></li>
  229. <li data-name="LuCI.Network.Device#getI18n"><a href="LuCI.Network.Device.html#getI18n">getI18n</a></li>
  230. <li data-name="LuCI.Network.Device#getIP6Addrs"><a href="LuCI.Network.Device.html#getIP6Addrs">getIP6Addrs</a></li>
  231. <li data-name="LuCI.Network.Device#getIPAddrs"><a href="LuCI.Network.Device.html#getIPAddrs">getIPAddrs</a></li>
  232. <li data-name="LuCI.Network.Device#getMAC"><a href="LuCI.Network.Device.html#getMAC">getMAC</a></li>
  233. <li data-name="LuCI.Network.Device#getMTU"><a href="LuCI.Network.Device.html#getMTU">getMTU</a></li>
  234. <li data-name="LuCI.Network.Device#getName"><a href="LuCI.Network.Device.html#getName">getName</a></li>
  235. <li data-name="LuCI.Network.Device#getNetwork"><a href="LuCI.Network.Device.html#getNetwork">getNetwork</a></li>
  236. <li data-name="LuCI.Network.Device#getNetworks"><a href="LuCI.Network.Device.html#getNetworks">getNetworks</a></li>
  237. <li data-name="LuCI.Network.Device#getPorts"><a href="LuCI.Network.Device.html#getPorts">getPorts</a></li>
  238. <li data-name="LuCI.Network.Device#getRXBytes"><a href="LuCI.Network.Device.html#getRXBytes">getRXBytes</a></li>
  239. <li data-name="LuCI.Network.Device#getRXPackets"><a href="LuCI.Network.Device.html#getRXPackets">getRXPackets</a></li>
  240. <li data-name="LuCI.Network.Device#getShortName"><a href="LuCI.Network.Device.html#getShortName">getShortName</a></li>
  241. <li data-name="LuCI.Network.Device#getTXBytes"><a href="LuCI.Network.Device.html#getTXBytes">getTXBytes</a></li>
  242. <li data-name="LuCI.Network.Device#getTXPackets"><a href="LuCI.Network.Device.html#getTXPackets">getTXPackets</a></li>
  243. <li data-name="LuCI.Network.Device#getType"><a href="LuCI.Network.Device.html#getType">getType</a></li>
  244. <li data-name="LuCI.Network.Device#getTypeI18n"><a href="LuCI.Network.Device.html#getTypeI18n">getTypeI18n</a></li>
  245. <li data-name="LuCI.Network.Device#getWifiNetwork"><a href="LuCI.Network.Device.html#getWifiNetwork">getWifiNetwork</a></li>
  246. <li data-name="LuCI.Network.Device#isBridge"><a href="LuCI.Network.Device.html#isBridge">isBridge</a></li>
  247. <li data-name="LuCI.Network.Device#isBridgePort"><a href="LuCI.Network.Device.html#isBridgePort">isBridgePort</a></li>
  248. <li data-name="LuCI.Network.Device#isUp"><a href="LuCI.Network.Device.html#isUp">isUp</a></li>
  249. </ul>
  250. <ul class="events itemMembers">
  251. </ul>
  252. </li>
  253. <li class="item" data-name="LuCI.Network.Hosts">
  254. <span class="title">
  255. <a href="LuCI.Network.Hosts.html">LuCI.Network.Hosts</a>
  256. </span>
  257. <ul class="members itemMembers">
  258. </ul>
  259. <ul class="typedefs itemMembers">
  260. </ul>
  261. <ul class="typedefs itemMembers">
  262. </ul>
  263. <ul class="methods itemMembers">
  264. <span class="subtitle">Methods</span>
  265. <li data-name="LuCI.Network.Hosts#getHostnameByIP6Addr"><a href="LuCI.Network.Hosts.html#getHostnameByIP6Addr">getHostnameByIP6Addr</a></li>
  266. <li data-name="LuCI.Network.Hosts#getHostnameByIPAddr"><a href="LuCI.Network.Hosts.html#getHostnameByIPAddr">getHostnameByIPAddr</a></li>
  267. <li data-name="LuCI.Network.Hosts#getHostnameByMACAddr"><a href="LuCI.Network.Hosts.html#getHostnameByMACAddr">getHostnameByMACAddr</a></li>
  268. <li data-name="LuCI.Network.Hosts#getIP6AddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIP6AddrByMACAddr">getIP6AddrByMACAddr</a></li>
  269. <li data-name="LuCI.Network.Hosts#getIPAddrByMACAddr"><a href="LuCI.Network.Hosts.html#getIPAddrByMACAddr">getIPAddrByMACAddr</a></li>
  270. <li data-name="LuCI.Network.Hosts#getMACAddrByIP6Addr"><a href="LuCI.Network.Hosts.html#getMACAddrByIP6Addr">getMACAddrByIP6Addr</a></li>
  271. <li data-name="LuCI.Network.Hosts#getMACAddrByIPAddr"><a href="LuCI.Network.Hosts.html#getMACAddrByIPAddr">getMACAddrByIPAddr</a></li>
  272. <li data-name="LuCI.Network.Hosts#getMACHints"><a href="LuCI.Network.Hosts.html#getMACHints">getMACHints</a></li>
  273. </ul>
  274. <ul class="events itemMembers">
  275. </ul>
  276. </li>
  277. <li class="item" data-name="LuCI.Network.Protocol">
  278. <span class="title">
  279. <a href="LuCI.Network.Protocol.html">LuCI.Network.Protocol</a>
  280. </span>
  281. <ul class="members itemMembers">
  282. </ul>
  283. <ul class="typedefs itemMembers">
  284. </ul>
  285. <ul class="typedefs itemMembers">
  286. </ul>
  287. <ul class="methods itemMembers">
  288. <span class="subtitle">Methods</span>
  289. <li data-name="LuCI.Network.Protocol#addDevice"><a href="LuCI.Network.Protocol.html#addDevice">addDevice</a></li>
  290. <li data-name="LuCI.Network.Protocol#containsDevice"><a href="LuCI.Network.Protocol.html#containsDevice">containsDevice</a></li>
  291. <li data-name="LuCI.Network.Protocol#deleteDevice"><a href="LuCI.Network.Protocol.html#deleteDevice">deleteDevice</a></li>
  292. <li data-name="LuCI.Network.Protocol#get"><a href="LuCI.Network.Protocol.html#get">get</a></li>
  293. <li data-name="LuCI.Network.Protocol#getDevice"><a href="LuCI.Network.Protocol.html#getDevice">getDevice</a></li>
  294. <li data-name="LuCI.Network.Protocol#getDevices"><a href="LuCI.Network.Protocol.html#getDevices">getDevices</a></li>
  295. <li data-name="LuCI.Network.Protocol#getDNS6Addrs"><a href="LuCI.Network.Protocol.html#getDNS6Addrs">getDNS6Addrs</a></li>
  296. <li data-name="LuCI.Network.Protocol#getDNSAddrs"><a href="LuCI.Network.Protocol.html#getDNSAddrs">getDNSAddrs</a></li>
  297. <li data-name="LuCI.Network.Protocol#getErrors"><a href="LuCI.Network.Protocol.html#getErrors">getErrors</a></li>
  298. <li data-name="LuCI.Network.Protocol#getExpiry"><a href="LuCI.Network.Protocol.html#getExpiry">getExpiry</a></li>
  299. <li data-name="LuCI.Network.Protocol#getGateway6Addr"><a href="LuCI.Network.Protocol.html#getGateway6Addr">getGateway6Addr</a></li>
  300. <li data-name="LuCI.Network.Protocol#getGatewayAddr"><a href="LuCI.Network.Protocol.html#getGatewayAddr">getGatewayAddr</a></li>
  301. <li data-name="LuCI.Network.Protocol#getI18n"><a href="LuCI.Network.Protocol.html#getI18n">getI18n</a></li>
  302. <li data-name="LuCI.Network.Protocol#getIfname"><a href="LuCI.Network.Protocol.html#getIfname">getIfname</a></li>
  303. <li data-name="LuCI.Network.Protocol#getIP6Addr"><a href="LuCI.Network.Protocol.html#getIP6Addr">getIP6Addr</a></li>
  304. <li data-name="LuCI.Network.Protocol#getIP6Addrs"><a href="LuCI.Network.Protocol.html#getIP6Addrs">getIP6Addrs</a></li>
  305. <li data-name="LuCI.Network.Protocol#getIP6Prefix"><a href="LuCI.Network.Protocol.html#getIP6Prefix">getIP6Prefix</a></li>
  306. <li data-name="LuCI.Network.Protocol#getIPAddr"><a href="LuCI.Network.Protocol.html#getIPAddr">getIPAddr</a></li>
  307. <li data-name="LuCI.Network.Protocol#getIPAddrs"><a href="LuCI.Network.Protocol.html#getIPAddrs">getIPAddrs</a></li>
  308. <li data-name="LuCI.Network.Protocol#getL2Device"><a href="LuCI.Network.Protocol.html#getL2Device">getL2Device</a></li>
  309. <li data-name="LuCI.Network.Protocol#getL3Device"><a href="LuCI.Network.Protocol.html#getL3Device">getL3Device</a></li>
  310. <li data-name="LuCI.Network.Protocol#getMetric"><a href="LuCI.Network.Protocol.html#getMetric">getMetric</a></li>
  311. <li data-name="LuCI.Network.Protocol#getName"><a href="LuCI.Network.Protocol.html#getName">getName</a></li>
  312. <li data-name="LuCI.Network.Protocol#getNetmask"><a href="LuCI.Network.Protocol.html#getNetmask">getNetmask</a></li>
  313. <li data-name="LuCI.Network.Protocol#getOpkgPackage"><a href="LuCI.Network.Protocol.html#getOpkgPackage">getOpkgPackage</a></li>
  314. <li data-name="LuCI.Network.Protocol#getProtocol"><a href="LuCI.Network.Protocol.html#getProtocol">getProtocol</a></li>
  315. <li data-name="LuCI.Network.Protocol#getType"><a href="LuCI.Network.Protocol.html#getType">getType</a></li>
  316. <li data-name="LuCI.Network.Protocol#getUptime"><a href="LuCI.Network.Protocol.html#getUptime">getUptime</a></li>
  317. <li data-name="LuCI.Network.Protocol#getZoneName"><a href="LuCI.Network.Protocol.html#getZoneName">getZoneName</a></li>
  318. <li data-name="LuCI.Network.Protocol#isAlias"><a href="LuCI.Network.Protocol.html#isAlias">isAlias</a></li>
  319. <li data-name="LuCI.Network.Protocol#isBridge"><a href="LuCI.Network.Protocol.html#isBridge">isBridge</a></li>
  320. <li data-name="LuCI.Network.Protocol#isDynamic"><a href="LuCI.Network.Protocol.html#isDynamic">isDynamic</a></li>
  321. <li data-name="LuCI.Network.Protocol#isEmpty"><a href="LuCI.Network.Protocol.html#isEmpty">isEmpty</a></li>
  322. <li data-name="LuCI.Network.Protocol#isFloating"><a href="LuCI.Network.Protocol.html#isFloating">isFloating</a></li>
  323. <li data-name="LuCI.Network.Protocol#isInstalled"><a href="LuCI.Network.Protocol.html#isInstalled">isInstalled</a></li>
  324. <li data-name="LuCI.Network.Protocol#isUp"><a href="LuCI.Network.Protocol.html#isUp">isUp</a></li>
  325. <li data-name="LuCI.Network.Protocol#isVirtual"><a href="LuCI.Network.Protocol.html#isVirtual">isVirtual</a></li>
  326. <li data-name="LuCI.Network.Protocol#set"><a href="LuCI.Network.Protocol.html#set">set</a></li>
  327. </ul>
  328. <ul class="events itemMembers">
  329. </ul>
  330. </li>
  331. <li class="item" data-name="LuCI.Network.WifiDevice">
  332. <span class="title">
  333. <a href="LuCI.Network.WifiDevice.html">LuCI.Network.WifiDevice</a>
  334. </span>
  335. <ul class="members itemMembers">
  336. </ul>
  337. <ul class="typedefs itemMembers">
  338. </ul>
  339. <ul class="typedefs itemMembers">
  340. </ul>
  341. <ul class="methods itemMembers">
  342. <span class="subtitle">Methods</span>
  343. <li data-name="LuCI.Network.WifiDevice#addWifiNetwork"><a href="LuCI.Network.WifiDevice.html#addWifiNetwork">addWifiNetwork</a></li>
  344. <li data-name="LuCI.Network.WifiDevice#deleteWifiNetwork"><a href="LuCI.Network.WifiDevice.html#deleteWifiNetwork">deleteWifiNetwork</a></li>
  345. <li data-name="LuCI.Network.WifiDevice#get"><a href="LuCI.Network.WifiDevice.html#get">get</a></li>
  346. <li data-name="LuCI.Network.WifiDevice#getHTModes"><a href="LuCI.Network.WifiDevice.html#getHTModes">getHTModes</a></li>
  347. <li data-name="LuCI.Network.WifiDevice#getHWModes"><a href="LuCI.Network.WifiDevice.html#getHWModes">getHWModes</a></li>
  348. <li data-name="LuCI.Network.WifiDevice#getI18n"><a href="LuCI.Network.WifiDevice.html#getI18n">getI18n</a></li>
  349. <li data-name="LuCI.Network.WifiDevice#getName"><a href="LuCI.Network.WifiDevice.html#getName">getName</a></li>
  350. <li data-name="LuCI.Network.WifiDevice#getScanList"><a href="LuCI.Network.WifiDevice.html#getScanList">getScanList</a></li>
  351. <li data-name="LuCI.Network.WifiDevice#getWifiNetwork"><a href="LuCI.Network.WifiDevice.html#getWifiNetwork">getWifiNetwork</a></li>
  352. <li data-name="LuCI.Network.WifiDevice#getWifiNetworks"><a href="LuCI.Network.WifiDevice.html#getWifiNetworks">getWifiNetworks</a></li>
  353. <li data-name="LuCI.Network.WifiDevice#isDisabled"><a href="LuCI.Network.WifiDevice.html#isDisabled">isDisabled</a></li>
  354. <li data-name="LuCI.Network.WifiDevice#isUp"><a href="LuCI.Network.WifiDevice.html#isUp">isUp</a></li>
  355. <li data-name="LuCI.Network.WifiDevice#set"><a href="LuCI.Network.WifiDevice.html#set">set</a></li>
  356. </ul>
  357. <ul class="events itemMembers">
  358. </ul>
  359. </li>
  360. <li class="item" data-name="LuCI.Network.WifiNetwork">
  361. <span class="title">
  362. <a href="LuCI.Network.WifiNetwork.html">LuCI.Network.WifiNetwork</a>
  363. </span>
  364. <ul class="members itemMembers">
  365. </ul>
  366. <ul class="typedefs itemMembers">
  367. </ul>
  368. <ul class="typedefs itemMembers">
  369. </ul>
  370. <ul class="methods itemMembers">
  371. <span class="subtitle">Methods</span>
  372. <li data-name="LuCI.Network.WifiNetwork#disconnectClient"><a href="LuCI.Network.WifiNetwork.html#disconnectClient">disconnectClient</a></li>
  373. <li data-name="LuCI.Network.WifiNetwork#get"><a href="LuCI.Network.WifiNetwork.html#get">get</a></li>
  374. <li data-name="LuCI.Network.WifiNetwork#getActiveBSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveBSSID">getActiveBSSID</a></li>
  375. <li data-name="LuCI.Network.WifiNetwork#getActiveEncryption"><a href="LuCI.Network.WifiNetwork.html#getActiveEncryption">getActiveEncryption</a></li>
  376. <li data-name="LuCI.Network.WifiNetwork#getActiveMode"><a href="LuCI.Network.WifiNetwork.html#getActiveMode">getActiveMode</a></li>
  377. <li data-name="LuCI.Network.WifiNetwork#getActiveModeI18n"><a href="LuCI.Network.WifiNetwork.html#getActiveModeI18n">getActiveModeI18n</a></li>
  378. <li data-name="LuCI.Network.WifiNetwork#getActiveSSID"><a href="LuCI.Network.WifiNetwork.html#getActiveSSID">getActiveSSID</a></li>
  379. <li data-name="LuCI.Network.WifiNetwork#getAssocList"><a href="LuCI.Network.WifiNetwork.html#getAssocList">getAssocList</a></li>
  380. <li data-name="LuCI.Network.WifiNetwork#getBitRate"><a href="LuCI.Network.WifiNetwork.html#getBitRate">getBitRate</a></li>
  381. <li data-name="LuCI.Network.WifiNetwork#getBSSID"><a href="LuCI.Network.WifiNetwork.html#getBSSID">getBSSID</a></li>
  382. <li data-name="LuCI.Network.WifiNetwork#getChannel"><a href="LuCI.Network.WifiNetwork.html#getChannel">getChannel</a></li>
  383. <li data-name="LuCI.Network.WifiNetwork#getCountryCode"><a href="LuCI.Network.WifiNetwork.html#getCountryCode">getCountryCode</a></li>
  384. <li data-name="LuCI.Network.WifiNetwork#getDevice"><a href="LuCI.Network.WifiNetwork.html#getDevice">getDevice</a></li>
  385. <li data-name="LuCI.Network.WifiNetwork#getFrequency"><a href="LuCI.Network.WifiNetwork.html#getFrequency">getFrequency</a></li>
  386. <li data-name="LuCI.Network.WifiNetwork#getI18n"><a href="LuCI.Network.WifiNetwork.html#getI18n">getI18n</a></li>
  387. <li data-name="LuCI.Network.WifiNetwork#getID"><a href="LuCI.Network.WifiNetwork.html#getID">getID</a></li>
  388. <li data-name="LuCI.Network.WifiNetwork#getIfname"><a href="LuCI.Network.WifiNetwork.html#getIfname">getIfname</a></li>
  389. <li data-name="LuCI.Network.WifiNetwork#getMeshID"><a href="LuCI.Network.WifiNetwork.html#getMeshID">getMeshID</a></li>
  390. <li data-name="LuCI.Network.WifiNetwork#getMode"><a href="LuCI.Network.WifiNetwork.html#getMode">getMode</a></li>
  391. <li data-name="LuCI.Network.WifiNetwork#getName"><a href="LuCI.Network.WifiNetwork.html#getName">getName</a></li>
  392. <li data-name="LuCI.Network.WifiNetwork#getNetwork"><a href="LuCI.Network.WifiNetwork.html#getNetwork">getNetwork</a></li>
  393. <li data-name="LuCI.Network.WifiNetwork#getNetworkNames"><a href="LuCI.Network.WifiNetwork.html#getNetworkNames">getNetworkNames</a></li>
  394. <li data-name="LuCI.Network.WifiNetwork#getNetworks"><a href="LuCI.Network.WifiNetwork.html#getNetworks">getNetworks</a></li>
  395. <li data-name="LuCI.Network.WifiNetwork#getNoise"><a href="LuCI.Network.WifiNetwork.html#getNoise">getNoise</a></li>
  396. <li data-name="LuCI.Network.WifiNetwork#getShortName"><a href="LuCI.Network.WifiNetwork.html#getShortName">getShortName</a></li>
  397. <li data-name="LuCI.Network.WifiNetwork#getSignal"><a href="LuCI.Network.WifiNetwork.html#getSignal">getSignal</a></li>
  398. <li data-name="LuCI.Network.WifiNetwork#getSignalLevel"><a href="LuCI.Network.WifiNetwork.html#getSignalLevel">getSignalLevel</a></li>
  399. <li data-name="LuCI.Network.WifiNetwork#getSignalPercent"><a href="LuCI.Network.WifiNetwork.html#getSignalPercent">getSignalPercent</a></li>
  400. <li data-name="LuCI.Network.WifiNetwork#getSSID"><a href="LuCI.Network.WifiNetwork.html#getSSID">getSSID</a></li>
  401. <li data-name="LuCI.Network.WifiNetwork#getTXPower"><a href="LuCI.Network.WifiNetwork.html#getTXPower">getTXPower</a></li>
  402. <li data-name="LuCI.Network.WifiNetwork#getTXPowerOffset"><a href="LuCI.Network.WifiNetwork.html#getTXPowerOffset">getTXPowerOffset</a></li>
  403. <li data-name="LuCI.Network.WifiNetwork#getWifiDevice"><a href="LuCI.Network.WifiNetwork.html#getWifiDevice">getWifiDevice</a></li>
  404. <li data-name="LuCI.Network.WifiNetwork#getWifiDeviceName"><a href="LuCI.Network.WifiNetwork.html#getWifiDeviceName">getWifiDeviceName</a></li>
  405. <li data-name="LuCI.Network.WifiNetwork#isClientDisconnectSupported"><a href="LuCI.Network.WifiNetwork.html#isClientDisconnectSupported">isClientDisconnectSupported</a></li>
  406. <li data-name="LuCI.Network.WifiNetwork#isDisabled"><a href="LuCI.Network.WifiNetwork.html#isDisabled">isDisabled</a></li>
  407. <li data-name="LuCI.Network.WifiNetwork#isUp"><a href="LuCI.Network.WifiNetwork.html#isUp">isUp</a></li>
  408. <li data-name="LuCI.Network.WifiNetwork#set"><a href="LuCI.Network.WifiNetwork.html#set">set</a></li>
  409. </ul>
  410. <ul class="events itemMembers">
  411. </ul>
  412. </li>
  413. <li class="item" data-name="LuCI.Poll">
  414. <span class="title">
  415. <a href="LuCI.Poll.html">LuCI.Poll</a>
  416. </span>
  417. <ul class="members itemMembers">
  418. </ul>
  419. <ul class="typedefs itemMembers">
  420. </ul>
  421. <ul class="typedefs itemMembers">
  422. </ul>
  423. <ul class="methods itemMembers">
  424. <span class="subtitle">Methods</span>
  425. <li data-name="LuCI.Poll#active"><a href="LuCI.Poll.html#active">active</a></li>
  426. <li data-name="LuCI.Poll#add"><a href="LuCI.Poll.html#add">add</a></li>
  427. <li data-name="LuCI.Poll#remove"><a href="LuCI.Poll.html#remove">remove</a></li>
  428. <li data-name="LuCI.Poll#start"><a href="LuCI.Poll.html#start">start</a></li>
  429. <li data-name="LuCI.Poll#stop"><a href="LuCI.Poll.html#stop">stop</a></li>
  430. </ul>
  431. <ul class="events itemMembers">
  432. </ul>
  433. </li>
  434. <li class="item" data-name="LuCI.Request">
  435. <span class="title">
  436. <a href="LuCI.Request.html">LuCI.Request</a>
  437. </span>
  438. <ul class="members itemMembers">
  439. </ul>
  440. <ul class="typedefs itemMembers">
  441. <span class="subtitle">Typedefs</span>
  442. <li data-name="LuCI.Request.interceptorFn"><a href="LuCI.Request.html#.interceptorFn">interceptorFn</a></li>
  443. <li data-name="LuCI.Request.RequestOptions"><a href="LuCI.Request.html#.RequestOptions">RequestOptions</a></li>
  444. </ul>
  445. <ul class="typedefs itemMembers">
  446. </ul>
  447. <ul class="methods itemMembers">
  448. <span class="subtitle">Methods</span>
  449. <li data-name="LuCI.Request#addInterceptor"><a href="LuCI.Request.html#addInterceptor">addInterceptor</a></li>
  450. <li data-name="LuCI.Request#expandURL"><a href="LuCI.Request.html#expandURL">expandURL</a></li>
  451. <li data-name="LuCI.Request#get"><a href="LuCI.Request.html#get">get</a></li>
  452. <li data-name="LuCI.Request#post"><a href="LuCI.Request.html#post">post</a></li>
  453. <li data-name="LuCI.Request#removeInterceptor"><a href="LuCI.Request.html#removeInterceptor">removeInterceptor</a></li>
  454. <li data-name="LuCI.Request#request"><a href="LuCI.Request.html#request">request</a></li>
  455. </ul>
  456. <ul class="events itemMembers">
  457. </ul>
  458. </li>
  459. <li class="item" data-name="LuCI.Request.poll">
  460. <span class="title">
  461. <a href="LuCI.Request.poll.html">LuCI.Request.poll</a>
  462. </span>
  463. <ul class="members itemMembers">
  464. </ul>
  465. <ul class="typedefs itemMembers">
  466. <span class="subtitle">Typedefs</span>
  467. <li data-name="LuCI.Request.poll~callbackFn"><a href="LuCI.Request.poll.html#~callbackFn">callbackFn</a></li>
  468. </ul>
  469. <ul class="typedefs itemMembers">
  470. </ul>
  471. <ul class="methods itemMembers">
  472. <span class="subtitle">Methods</span>
  473. <li data-name="LuCI.Request.poll#active"><a href="LuCI.Request.poll.html#active">active</a></li>
  474. <li data-name="LuCI.Request.poll#add"><a href="LuCI.Request.poll.html#add">add</a></li>
  475. <li data-name="LuCI.Request.poll#remove"><a href="LuCI.Request.poll.html#remove">remove</a></li>
  476. <li data-name="LuCI.Request.poll#start"><a href="LuCI.Request.poll.html#start">start</a></li>
  477. <li data-name="LuCI.Request.poll#stop"><a href="LuCI.Request.poll.html#stop">stop</a></li>
  478. </ul>
  479. <ul class="events itemMembers">
  480. </ul>
  481. </li>
  482. <li class="item" data-name="LuCI.Response">
  483. <span class="title">
  484. <a href="LuCI.Response.html">LuCI.Response</a>
  485. </span>
  486. <ul class="members itemMembers">
  487. <span class="subtitle">Members</span>
  488. <li data-name="LuCI.Response#duration"><a href="LuCI.Response.html#duration">duration</a></li>
  489. <li data-name="LuCI.Response#headers"><a href="LuCI.Response.html#headers">headers</a></li>
  490. <li data-name="LuCI.Response#ok"><a href="LuCI.Response.html#ok">ok</a></li>
  491. <li data-name="LuCI.Response#status"><a href="LuCI.Response.html#status">status</a></li>
  492. <li data-name="LuCI.Response#statusText"><a href="LuCI.Response.html#statusText">statusText</a></li>
  493. <li data-name="LuCI.Response#url"><a href="LuCI.Response.html#url">url</a></li>
  494. </ul>
  495. <ul class="typedefs itemMembers">
  496. </ul>
  497. <ul class="typedefs itemMembers">
  498. </ul>
  499. <ul class="methods itemMembers">
  500. <span class="subtitle">Methods</span>
  501. <li data-name="LuCI.Response#clone"><a href="LuCI.Response.html#clone">clone</a></li>
  502. <li data-name="LuCI.Response#json"><a href="LuCI.Response.html#json">json</a></li>
  503. <li data-name="LuCI.Response#text"><a href="LuCI.Response.html#text">text</a></li>
  504. </ul>
  505. <ul class="events itemMembers">
  506. </ul>
  507. </li>
  508. <li class="item" data-name="LuCI.rpc">
  509. <span class="title">
  510. <a href="LuCI.rpc.html">LuCI.rpc</a>
  511. </span>
  512. <ul class="members itemMembers">
  513. </ul>
  514. <ul class="typedefs itemMembers">
  515. <span class="subtitle">Typedefs</span>
  516. <li data-name="LuCI.rpc.DeclareOptions"><a href="LuCI.rpc.html#.DeclareOptions">DeclareOptions</a></li>
  517. <li data-name="LuCI.rpc~filterFn"><a href="LuCI.rpc.html#~filterFn">filterFn</a></li>
  518. <li data-name="LuCI.rpc~interceptorFn"><a href="LuCI.rpc.html#~interceptorFn">interceptorFn</a></li>
  519. <li data-name="LuCI.rpc~invokeFn"><a href="LuCI.rpc.html#~invokeFn">invokeFn</a></li>
  520. </ul>
  521. <ul class="typedefs itemMembers">
  522. </ul>
  523. <ul class="methods itemMembers">
  524. <span class="subtitle">Methods</span>
  525. <li data-name="LuCI.rpc#addInterceptor"><a href="LuCI.rpc.html#addInterceptor">addInterceptor</a></li>
  526. <li data-name="LuCI.rpc#declare"><a href="LuCI.rpc.html#declare">declare</a></li>
  527. <li data-name="LuCI.rpc#getBaseURL"><a href="LuCI.rpc.html#getBaseURL">getBaseURL</a></li>
  528. <li data-name="LuCI.rpc#getSessionID"><a href="LuCI.rpc.html#getSessionID">getSessionID</a></li>
  529. <li data-name="LuCI.rpc#getStatusText"><a href="LuCI.rpc.html#getStatusText">getStatusText</a></li>
  530. <li data-name="LuCI.rpc#list"><a href="LuCI.rpc.html#list">list</a></li>
  531. <li data-name="LuCI.rpc#removeInterceptor"><a href="LuCI.rpc.html#removeInterceptor">removeInterceptor</a></li>
  532. <li data-name="LuCI.rpc#setBaseURL"><a href="LuCI.rpc.html#setBaseURL">setBaseURL</a></li>
  533. <li data-name="LuCI.rpc#setSessionID"><a href="LuCI.rpc.html#setSessionID">setSessionID</a></li>
  534. </ul>
  535. <ul class="events itemMembers">
  536. </ul>
  537. </li>
  538. <li class="item" data-name="LuCI.uci">
  539. <span class="title">
  540. <a href="LuCI.uci.html">LuCI.uci</a>
  541. </span>
  542. <ul class="members itemMembers">
  543. </ul>
  544. <ul class="typedefs itemMembers">
  545. <span class="subtitle">Typedefs</span>
  546. <li data-name="LuCI.uci.ChangeRecord"><a href="LuCI.uci.html#.ChangeRecord">ChangeRecord</a></li>
  547. <li data-name="LuCI.uci.SectionObject"><a href="LuCI.uci.html#.SectionObject">SectionObject</a></li>
  548. <li data-name="LuCI.uci~sectionsFn"><a href="LuCI.uci.html#~sectionsFn">sectionsFn</a></li>
  549. </ul>
  550. <ul class="typedefs itemMembers">
  551. </ul>
  552. <ul class="methods itemMembers">
  553. <span class="subtitle">Methods</span>
  554. <li data-name="LuCI.uci#add"><a href="LuCI.uci.html#add">add</a></li>
  555. <li data-name="LuCI.uci#apply"><a href="LuCI.uci.html#apply">apply</a></li>
  556. <li data-name="LuCI.uci#changes"><a href="LuCI.uci.html#changes">changes</a></li>
  557. <li data-name="LuCI.uci#createSID"><a href="LuCI.uci.html#createSID">createSID</a></li>
  558. <li data-name="LuCI.uci#get"><a href="LuCI.uci.html#get">get</a></li>
  559. <li data-name="LuCI.uci#get_first"><a href="LuCI.uci.html#get_first">get_first</a></li>
  560. <li data-name="LuCI.uci#load"><a href="LuCI.uci.html#load">load</a></li>
  561. <li data-name="LuCI.uci#move"><a href="LuCI.uci.html#move">move</a></li>
  562. <li data-name="LuCI.uci#remove"><a href="LuCI.uci.html#remove">remove</a></li>
  563. <li data-name="LuCI.uci#resolveSID"><a href="LuCI.uci.html#resolveSID">resolveSID</a></li>
  564. <li data-name="LuCI.uci#save"><a href="LuCI.uci.html#save">save</a></li>
  565. <li data-name="LuCI.uci#sections"><a href="LuCI.uci.html#sections">sections</a></li>
  566. <li data-name="LuCI.uci#set"><a href="LuCI.uci.html#set">set</a></li>
  567. <li data-name="LuCI.uci#set_first"><a href="LuCI.uci.html#set_first">set_first</a></li>
  568. <li data-name="LuCI.uci#unload"><a href="LuCI.uci.html#unload">unload</a></li>
  569. <li data-name="LuCI.uci#unset"><a href="LuCI.uci.html#unset">unset</a></li>
  570. <li data-name="LuCI.uci#unset_first"><a href="LuCI.uci.html#unset_first">unset_first</a></li>
  571. </ul>
  572. <ul class="events itemMembers">
  573. </ul>
  574. </li>
  575. <li class="item" data-name="LuCI.view">
  576. <span class="title">
  577. <a href="LuCI.view.html">LuCI.view</a>
  578. </span>
  579. <ul class="members itemMembers">
  580. </ul>
  581. <ul class="typedefs itemMembers">
  582. </ul>
  583. <ul class="typedefs itemMembers">
  584. </ul>
  585. <ul class="methods itemMembers">
  586. <span class="subtitle">Methods</span>
  587. <li data-name="LuCI.view#addFooter"><a href="LuCI.view.html#addFooter">addFooter</a></li>
  588. <li data-name="LuCI.view#handleReset"><a href="LuCI.view.html#handleReset">handleReset</a></li>
  589. <li data-name="LuCI.view#handleSave"><a href="LuCI.view.html#handleSave">handleSave</a></li>
  590. <li data-name="LuCI.view#handleSaveApply"><a href="LuCI.view.html#handleSaveApply">handleSaveApply</a></li>
  591. <li data-name="LuCI.view#load"><a href="LuCI.view.html#load">load</a></li>
  592. <li data-name="LuCI.view#render"><a href="LuCI.view.html#render">render</a></li>
  593. </ul>
  594. <ul class="events itemMembers">
  595. </ul>
  596. </li>
  597. <li class="item" data-name="LuCI.XHR">
  598. <span class="title">
  599. <a href="LuCI.XHR.html">LuCI.XHR</a>
  600. </span>
  601. <ul class="members itemMembers">
  602. </ul>
  603. <ul class="typedefs itemMembers">
  604. </ul>
  605. <ul class="typedefs itemMembers">
  606. </ul>
  607. <ul class="methods itemMembers">
  608. <span class="subtitle">Methods</span>
  609. <li data-name="LuCI.XHR#abort"><a href="LuCI.XHR.html#abort">abort</a></li>
  610. <li data-name="LuCI.XHR#busy"><a href="LuCI.XHR.html#busy">busy</a></li>
  611. <li data-name="LuCI.XHR#cancel"><a href="LuCI.XHR.html#cancel">cancel</a></li>
  612. <li data-name="LuCI.XHR#get"><a href="LuCI.XHR.html#get">get</a></li>
  613. <li data-name="LuCI.XHR#post"><a href="LuCI.XHR.html#post">post</a></li>
  614. <li data-name="LuCI.XHR#send_form"><a href="LuCI.XHR.html#send_form">send_form</a></li>
  615. </ul>
  616. <ul class="events itemMembers">
  617. </ul>
  618. </li>
  619. </ul>
  620. </div>
  621. <div class="main">
  622. <h1 class="page-title" data-filename="rpc.js.html">Source: rpc.js</h1>
  623. <section>
  624. <article>
  625. <pre id="source-code" class="prettyprint source "><code>'use strict';
  626. var rpcRequestID = 1,
  627. rpcSessionID = L.env.sessionid || '00000000000000000000000000000000',
  628. rpcBaseURL = L.url('admin/ubus'),
  629. rpcInterceptorFns = [];
  630. /**
  631. * @class rpc
  632. * @memberof LuCI
  633. * @hideconstructor
  634. * @classdesc
  635. *
  636. * The `LuCI.rpc` class provides high level ubus JSON-RPC abstractions
  637. * and means for listing and invoking remove RPC methods.
  638. */
  639. return L.Class.extend(/** @lends LuCI.rpc.prototype */ {
  640. /* privates */
  641. call: function(req, cb, nobatch) {
  642. var q = '';
  643. if (Array.isArray(req)) {
  644. if (req.length == 0)
  645. return Promise.resolve([]);
  646. for (var i = 0; i &lt; req.length; i++)
  647. if (req[i].params)
  648. q += '%s%s.%s'.format(
  649. q ? ';' : '/',
  650. req[i].params[1],
  651. req[i].params[2]
  652. );
  653. }
  654. else if (req.params) {
  655. q += '/%s.%s'.format(req.params[1], req.params[2]);
  656. }
  657. return L.Request.post(rpcBaseURL + q, req, {
  658. timeout: (L.env.rpctimeout || 20) * 1000,
  659. nobatch: nobatch,
  660. credentials: true
  661. }).then(cb, cb);
  662. },
  663. parseCallReply: function(req, res) {
  664. var msg = null;
  665. if (res instanceof Error)
  666. return req.reject(res);
  667. try {
  668. if (!res.ok)
  669. L.raise('RPCError', 'RPC call to %s/%s failed with HTTP error %d: %s',
  670. req.object, req.method, res.status, res.statusText || '?');
  671. msg = res.json();
  672. }
  673. catch (e) {
  674. return req.reject(e);
  675. }
  676. /*
  677. * The interceptor args are intentionally swapped.
  678. * Response is passed as first arg to align with Request class interceptors
  679. */
  680. Promise.all(rpcInterceptorFns.map(function(fn) { return fn(msg, req) }))
  681. .then(this.handleCallReply.bind(this, req, msg))
  682. .catch(req.reject);
  683. },
  684. handleCallReply: function(req, msg) {
  685. var type = Object.prototype.toString,
  686. ret = null;
  687. try {
  688. /* verify message frame */
  689. if (!L.isObject(msg) || msg.jsonrpc != '2.0')
  690. L.raise('RPCError', 'RPC call to %s/%s returned invalid message frame',
  691. req.object, req.method);
  692. /* check error condition */
  693. if (L.isObject(msg.error) &amp;&amp; msg.error.code &amp;&amp; msg.error.message)
  694. L.raise('RPCError', 'RPC call to %s/%s failed with error %d: %s',
  695. req.object, req.method, msg.error.code, msg.error.message || '?');
  696. }
  697. catch (e) {
  698. return req.reject(e);
  699. }
  700. if (!req.object &amp;&amp; !req.method) {
  701. ret = msg.result;
  702. }
  703. else if (Array.isArray(msg.result)) {
  704. ret = (msg.result.length > 1) ? msg.result[1] : msg.result[0];
  705. }
  706. if (req.expect) {
  707. for (var key in req.expect) {
  708. if (ret != null &amp;&amp; key != '')
  709. ret = ret[key];
  710. if (ret == null || type.call(ret) != type.call(req.expect[key]))
  711. ret = req.expect[key];
  712. break;
  713. }
  714. }
  715. /* apply filter */
  716. if (typeof(req.filter) == 'function') {
  717. req.priv[0] = ret;
  718. req.priv[1] = req.params;
  719. ret = req.filter.apply(this, req.priv);
  720. }
  721. req.resolve(ret);
  722. },
  723. /**
  724. * Lists available remote ubus objects or the method signatures of
  725. * specific objects.
  726. *
  727. * This function has two signatures and is sensitive to the number of
  728. * arguments passed to it:
  729. * - `list()` -
  730. * Returns an array containing the names of all remote `ubus` objects
  731. * - `list("objname", ...)`
  732. * Returns method signatures for each given `ubus` object name.
  733. *
  734. * @param {...string} [objectNames]
  735. * If any object names are given, this function will return the method
  736. * signatures of each given object.
  737. *
  738. * @returns {Promise&lt;Array&lt;string>|Object&lt;string, Object&lt;string, Object&lt;string, string>>>>}
  739. * When invoked without arguments, this function will return a promise
  740. * resolving to an array of `ubus` object names. When invoked with one or
  741. * more arguments, a promise resolving to an object describing the method
  742. * signatures of each requested `ubus` object name will be returned.
  743. */
  744. list: function() {
  745. var msg = {
  746. jsonrpc: '2.0',
  747. id: rpcRequestID++,
  748. method: 'list',
  749. params: arguments.length ? this.varargs(arguments) : undefined
  750. };
  751. return new Promise(L.bind(function(resolveFn, rejectFn) {
  752. /* store request info */
  753. var req = {
  754. resolve: resolveFn,
  755. reject: rejectFn
  756. };
  757. /* call rpc */
  758. this.call(msg, this.parseCallReply.bind(this, req));
  759. }, this));
  760. },
  761. /**
  762. * @typedef {Object} DeclareOptions
  763. * @memberof LuCI.rpc
  764. *
  765. * @property {string} object
  766. * The name of the remote `ubus` object to invoke.
  767. *
  768. * @property {string} method
  769. * The name of the remote `ubus` method to invoke.
  770. *
  771. * @property {string[]} [params]
  772. * Lists the named parameters expected by the remote `ubus` RPC method.
  773. * The arguments passed to the resulting generated method call function
  774. * will be mapped to named parameters in the order they appear in this
  775. * array.
  776. *
  777. * Extraneous parameters passed to the generated function will not be
  778. * sent to the remote procedure but are passed to the
  779. * {@link LuCI.rpc~filterFn filter function} if one is specified.
  780. *
  781. * Examples:
  782. * - `params: [ "foo", "bar" ]` -
  783. * When the resulting call function is invoked with `fn(true, false)`,
  784. * the corresponding args object sent to the remote procedure will be
  785. * `{ foo: true, bar: false }`.
  786. * - `params: [ "test" ], filter: function(reply, args, extra) { ... }` -
  787. * When the resultung generated function is invoked with
  788. * `fn("foo", "bar", "baz")` then `{ "test": "foo" }` will be sent as
  789. * argument to the remote procedure and the filter function will be
  790. * invoked with `filterFn(reply, [ "foo" ], "bar", "baz")`
  791. *
  792. * @property {Object&lt;string,*>} [expect]
  793. * Describes the expected return data structure. The given object is
  794. * supposed to contain a single key selecting the value to use from
  795. * the returned `ubus` reply object. The value of the sole key within
  796. * the `expect` object is used to infer the expected type of the received
  797. * `ubus` reply data.
  798. *
  799. * If the received data does not contain `expect`'s key, or if the
  800. * type of the data differs from the type of the value in the expect
  801. * object, the expect object's value is returned as default instead.
  802. *
  803. * The key in the `expect` object may be an empty string (`''`) in which
  804. * case the entire reply object is selected instead of one of its subkeys.
  805. *
  806. * If the `expect` option is omitted, the received reply will be returned
  807. * as-is, regardless of its format or type.
  808. *
  809. * Examples:
  810. * - `expect: { '': { error: 'Invalid response' } }` -
  811. * This requires the entire `ubus` reply to be a plain JavaScript
  812. * object. If the reply isn't an object but e.g. an array or a numeric
  813. * error code instead, it will get replaced with
  814. * `{ error: 'Invalid response' }` instead.
  815. * - `expect: { results: [] }` -
  816. * This requires the received `ubus` reply to be an object containing
  817. * a key `results` with an array as value. If the received reply does
  818. * not contain such a key, or if `reply.results` points to a non-array
  819. * value, the empty array (`[]`) will be used instead.
  820. * - `expect: { success: false }` -
  821. * This requires the received `ubus` reply to be an object containing
  822. * a key `success` with a boolean value. If the reply does not contain
  823. * `success` or if `reply.success` is not a boolean value, `false` will
  824. * be returned as default instead.
  825. *
  826. * @property {LuCI.rpc~filterFn} [filter]
  827. * Specfies an optional filter function which is invoked to transform the
  828. * received reply data before it is returned to the caller.
  829. *
  830. */
  831. /**
  832. * The filter function is invoked to transform a received `ubus` RPC call
  833. * reply before returning it to the caller.
  834. *
  835. * @callback LuCI.rpc~filterFn
  836. *
  837. * @param {*} data
  838. * The received `ubus` reply data or a subset of it as described in the
  839. * `expect` option of the RPC call declaration. In case of remote call
  840. * errors, `data` is numeric `ubus` error code instead.
  841. *
  842. * @param {Array&lt;*>} args
  843. * The arguments the RPC method has been invoked with.
  844. *
  845. * @param {...*} extraArgs
  846. * All extraneous arguments passed to the RPC method exceeding the number
  847. * of arguments describes in the RPC call declaration.
  848. *
  849. * @return {*}
  850. * The return value of the filter function will be returned to the caller
  851. * of the RPC method as-is.
  852. */
  853. /**
  854. * The generated invocation function is returned by
  855. * {@link LuCI.rpc#declare rpc.declare()} and encapsulates a single
  856. * RPC method call.
  857. *
  858. * Calling this function will execute a remote `ubus` HTTP call request
  859. * using the arguments passed to it as arguments and return a promise
  860. * resolving to the received reply values.
  861. *
  862. * @callback LuCI.rpc~invokeFn
  863. *
  864. * @param {...*} params
  865. * The parameters to pass to the remote procedure call. The given
  866. * positional arguments will be named to named RPC parameters according
  867. * to the names specified in the `params` array of the method declaration.
  868. *
  869. * Any additional parameters exceeding the amount of arguments in the
  870. * `params` declaration are passed as private extra arguments to the
  871. * declared filter function.
  872. *
  873. * @return {Promise&lt;*>}
  874. * Returns a promise resolving to the result data of the remote `ubus`
  875. * RPC method invocation, optionally substituted and filtered according
  876. * to the `expect` and `filter` declarations.
  877. */
  878. /**
  879. * Describes a remote RPC call procedure and returns a function
  880. * implementing it.
  881. *
  882. * @param {LuCI.rpc.DeclareOptions} options
  883. * If any object names are given, this function will return the method
  884. * signatures of each given object.
  885. *
  886. * @returns {LuCI.rpc~invokeFn}
  887. * Returns a new function implementing the method call described in
  888. * `options`.
  889. */
  890. declare: function(options) {
  891. return Function.prototype.bind.call(function(rpc, options) {
  892. var args = this.varargs(arguments, 2);
  893. return new Promise(function(resolveFn, rejectFn) {
  894. /* build parameter object */
  895. var p_off = 0;
  896. var params = { };
  897. if (Array.isArray(options.params))
  898. for (p_off = 0; p_off &lt; options.params.length; p_off++)
  899. params[options.params[p_off]] = args[p_off];
  900. /* all remaining arguments are private args */
  901. var priv = [ undefined, undefined ];
  902. for (; p_off &lt; args.length; p_off++)
  903. priv.push(args[p_off]);
  904. /* store request info */
  905. var req = {
  906. expect: options.expect,
  907. filter: options.filter,
  908. resolve: resolveFn,
  909. reject: rejectFn,
  910. params: params,
  911. priv: priv,
  912. object: options.object,
  913. method: options.method
  914. };
  915. /* build message object */
  916. var msg = {
  917. jsonrpc: '2.0',
  918. id: rpcRequestID++,
  919. method: 'call',
  920. params: [
  921. rpcSessionID,
  922. options.object,
  923. options.method,
  924. params
  925. ]
  926. };
  927. /* call rpc */
  928. rpc.call(msg, rpc.parseCallReply.bind(rpc, req), options.nobatch);
  929. });
  930. }, this, this, options);
  931. },
  932. /**
  933. * Returns the current RPC session id.
  934. *
  935. * @returns {string}
  936. * Returns the 32 byte session ID string used for authenticating remote
  937. * requests.
  938. */
  939. getSessionID: function() {
  940. return rpcSessionID;
  941. },
  942. /**
  943. * Set the RPC session id to use.
  944. *
  945. * @param {string} sid
  946. * Sets the 32 byte session ID string used for authenticating remote
  947. * requests.
  948. */
  949. setSessionID: function(sid) {
  950. rpcSessionID = sid;
  951. },
  952. /**
  953. * Returns the current RPC base URL.
  954. *
  955. * @returns {string}
  956. * Returns the RPC URL endpoint to issue requests against.
  957. */
  958. getBaseURL: function() {
  959. return rpcBaseURL;
  960. },
  961. /**
  962. * Set the RPC base URL to use.
  963. *
  964. * @param {string} sid
  965. * Sets the RPC URL endpoint to issue requests against.
  966. */
  967. setBaseURL: function(url) {
  968. rpcBaseURL = url;
  969. },
  970. /**
  971. * Translates a numeric `ubus` error code into a human readable
  972. * description.
  973. *
  974. * @param {number} statusCode
  975. * The numeric status code.
  976. *
  977. * @returns {string}
  978. * Returns the textual description of the code.
  979. */
  980. getStatusText: function(statusCode) {
  981. switch (statusCode) {
  982. case 0: return _('Command OK');
  983. case 1: return _('Invalid command');
  984. case 2: return _('Invalid argument');
  985. case 3: return _('Method not found');
  986. case 4: return _('Resource not found');
  987. case 5: return _('No data received');
  988. case 6: return _('Permission denied');
  989. case 7: return _('Request timeout');
  990. case 8: return _('Not supported');
  991. case 9: return _('Unspecified error');
  992. case 10: return _('Connection lost');
  993. default: return _('Unknown error code');
  994. }
  995. },
  996. /**
  997. * Registered interceptor functions are invoked before the standard reply
  998. * parsing and handling logic.
  999. *
  1000. * By returning rejected promises, interceptor functions can cause the
  1001. * invocation function to fail, regardless of the received reply.
  1002. *
  1003. * Interceptors may also modify their message argument in-place to
  1004. * rewrite received replies before they're processed by the standard
  1005. * response handling code.
  1006. *
  1007. * A common use case for such functions is to detect failing RPC replies
  1008. * due to expired authentication in order to trigger a new login.
  1009. *
  1010. * @callback LuCI.rpc~interceptorFn
  1011. *
  1012. * @param {*} msg
  1013. * The unprocessed, JSON decoded remote RPC method call reply.
  1014. *
  1015. * Since interceptors run before the standard parsing logic, the reply
  1016. * data is not verified for correctness or filtered according to
  1017. * `expect` and `filter` specifications in the declarations.
  1018. *
  1019. * @param {Object} req
  1020. * The related request object which is an extended variant of the
  1021. * declaration object, allowing access to internals of the invocation
  1022. * function such as `filter`, `expect` or `params` values.
  1023. *
  1024. * @return {Promise&lt;*>|*}
  1025. * Interceptor functions may return a promise to defer response
  1026. * processing until some delayed work completed. Any values the returned
  1027. * promise resolves to are ignored.
  1028. *
  1029. * When the returned promise rejects with an error, the invocation
  1030. * function will fail too, forwarding the error to the caller.
  1031. */
  1032. /**
  1033. * Registers a new interceptor function.
  1034. *
  1035. * @param {LuCI.rpc~interceptorFn} interceptorFn
  1036. * The inteceptor function to register.
  1037. *
  1038. * @returns {LuCI.rpc~interceptorFn}
  1039. * Returns the given function value.
  1040. */
  1041. addInterceptor: function(interceptorFn) {
  1042. if (typeof(interceptorFn) == 'function')
  1043. rpcInterceptorFns.push(interceptorFn);
  1044. return interceptorFn;
  1045. },
  1046. /**
  1047. * Removes a registered interceptor function.
  1048. *
  1049. * @param {LuCI.rpc~interceptorFn} interceptorFn
  1050. * The inteceptor function to remove.
  1051. *
  1052. * @returns {boolean}
  1053. * Returns `true` if the given function has been removed or `false`
  1054. * if it has not been found.
  1055. */
  1056. removeInterceptor: function(interceptorFn) {
  1057. var oldlen = rpcInterceptorFns.length, i = oldlen;
  1058. while (i--)
  1059. if (rpcInterceptorFns[i] === interceptorFn)
  1060. rpcInterceptorFns.splice(i, 1);
  1061. return (rpcInterceptorFns.length &lt; oldlen);
  1062. }
  1063. });
  1064. </code></pre>
  1065. </article>
  1066. </section>
  1067. <footer>
  1068. 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)
  1069. </footer>
  1070. </div>
  1071. </div>
  1072. <script>prettyPrint();</script>
  1073. <script src="scripts/jaguar.js"></script>
  1074. </body>
  1075. </html>