Changes between Version 28 and Version 29 of GuiRpcProtocol


Ignore:
Timestamp:
Nov 30, 2018, 1:25:03 PM (6 years ago)
Author:
Juha
Comment:

fix formatting

Legend:

Unmodified
Added
Removed
Modified
  • GuiRpcProtocol

    v28 v29  
    1111Self-closing tags must not have a space before the slash, or current client and server will not parse it correctly. For example, send `<authorized/>`, not `<authorized />`.
    1212
    13 Requests are inside `<boinc_gui_rpc_request>` elements, and replies from the RPC server are inside `<boinc_gui_rpc_reply>` elements (in both cases there is a `0x03` byte after the closing tag). The current RPC server implementation doesn't require the `<boinc_gui_rpc_request>` tag, which is handy for debugging (you can connect via ​[netcat](http://netcat.sourceforge.net) and just type `<auth1/>`); however, clients must not rely on this, and must always send the `<boinc_gui_rpc_request>` root tag.
     13Requests are inside `<boinc_gui_rpc_request>` elements, and replies from the RPC server are inside `<boinc_gui_rpc_reply>` elements (in both cases there is a `0x03` byte after the closing tag). The current RPC server implementation doesn't require the `<boinc_gui_rpc_request>` tag, which is handy for debugging (you can connect via ​[http://netcat.sourceforge.net netcat] and just type `<auth1/>`); however, clients must not rely on this, and must always send the `<boinc_gui_rpc_request>` root tag.
    1414
    1515The current RPC server doesn't support pipelining of requests (pipelining means sending a batch of multiple requests without waiting for a reply, then getting all the replies together; this improves latency). For compatibility, pipelining must not be used.
     
    2424  <request>
    2525  </request>
    26 </boinc_gui_rpc_request>003
    27 }}}
    28 where `<request>` is a placeholder for one of the actual requests that are listed [later](#requests-and-replies)
     26</boinc_gui_rpc_request>\003
     27}}}
     28where `<request>` is a placeholder for one of the actual requests that are listed [#RequestsandReplies later].
    2929
    3030Self-closing tags could also be used for requests that do not require data to be passed to the client. Their structure is the following:
     
    3434<boinc_gui_rpc_request>
    3535  <request/>
    36 </boinc_gui_rpc_request>003
     36</boinc_gui_rpc_request>\003
    3737}}}
    3838
    3939== Common replies ==
    4040
    41 If a command requires [authentication](#authentication) but the client hasn't authenticated yet, the RPC server will reply
     41If a command requires [#Authentication authentication] but the client hasn't authenticated yet, the RPC server will reply
    4242
    4343{{{
     
    4545<boinc_gui_rpc_reply>
    4646  <unauthorized/>
    47 </boinc_gui_rpc_reply>003
     47</boinc_gui_rpc_reply>\003
    4848}}}
    4949
     
    5656<boinc_gui_rpc_reply>
    5757    <success/>
    58 </boinc_gui_rpc_reply>003
     58</boinc_gui_rpc_reply>\003
    5959}}}
    6060
     
    6767<boinc_gui_rpc_reply>
    6868    <error>human-readable error message</error>
    69 </boinc_gui_rpc_reply>003
    70 }}}
    71 Clients should not try to parse the error message. The current gui_rpc_client.cpp library sometimes tries to parse errors, but this is very unreliable, since the message wording can change (and has changed) between RPC server versions. (r15942 even changed "unrecognized op")
     69</boinc_gui_rpc_reply>\003
     70}}}
     71Clients should not try to parse the error message. The current gui_rpc_client.cpp library sometimes tries to parse errors, but this is very unreliable, since the message wording can change (and has changed) between RPC server versions. (Commit 63b49cd2 even changed "unrecognized op".)
    7272
    7373
     
    8282<boinc_gui_rpc_request>
    8383    <auth1/>
    84 </boinc_gui_rpc_request>003
     84</boinc_gui_rpc_request>\003
    8585}}}
    8686
     
    9191<boinc_gui_rpc_reply>
    9292    <nonce>1198959933.057125</nonce>
    93 </boinc_gui_rpc_reply>003
    94 }}}
    95 
    96 The value of `nonce` is to be used as a salt with the password. It is randomly generated for each request. To calculate the response, concatenate the nonce and the password (nonce first), then calculate the MD5 hash of the result, i.e: `md5(nonce+password)`. Finally, send an `<auth2>` request with the calculated hash, in *lowercase* hexadecimal format.
     93</boinc_gui_rpc_reply>\003
     94}}}
     95
     96The value of `nonce` is to be used as a salt with the password. It is randomly generated for each request. To calculate the response, concatenate the nonce and the password (nonce first), then calculate the MD5 hash of the result, i.e: `md5(nonce+password)`. Finally, send an `<auth2>` request with the calculated hash, in ''lowercase'' hexadecimal format.
    9797
    9898{{{
     
    102102        <nonce_hash>d41d8cd98f00b204e9800998ecf8427e</nonce_hash>
    103103    </auth2>
    104 </boinc_gui_rpc_request>003
     104</boinc_gui_rpc_request>\003
    105105}}}
    106106
     
    117117== Requests and Replies ==
    118118
    119 These are the requests that can be issued to the client and the replies that are expected. The requests are placed between the opening and closing `<boinc_gui_rpc_request>` tags. The replies are described without the enclosing `<boinc_gui_rpc_reply>` tags.   
    120 ***
     119These are the requests that can be issued to the client and the replies that are expected. The requests are placed between the opening and closing `<boinc_gui_rpc_request>` tags. The replies are described without the enclosing `<boinc_gui_rpc_reply>` tags.
     120----
    121121
    122122* Requests not requiring authentication
    123     * [exchange_versions](#exchange_versions)
    124     * [get_all\_projects_list](#get_all_projects_list)
    125     * [get_cc_status](#get_cc_status)
    126     * [get_disk_usage](#get_disk_usage)
    127     * [get_daily\_xfer_history](#get_daily_xfer_history)
    128     * [get_file_transfers](#get_file_transfers)
    129     * [get_host_info](#get_host_info)
    130     * [get_messages](#get_messages)
    131     * [get_message_count](#get_message_count)
    132     * [get_newer_version](#get_newer_version)
    133     * [get_notices_public](#get_notices_public)
    134     * [get_old_results](#get_old_results)
    135     * [get_project_status](#get_project_status)
    136     * [get_results](#get_results)
    137     * [get_screensaver_tasks](#get_screensaver_tasks)
    138     * [get_simple\_gui_info](#get_simple_gui_info)
    139     * [get_state](#get_state)
    140     * [get_statistics](#get_statistics)
     123    * [#exchange_versions exchange_versions]
     124    * [#get_all_projects_list get_all_projects_list]
     125    * [#get_cc_status get_cc_status]
     126    * [#get_disk_usage get_disk_usage]
     127    * [#get_daily_xfer_history get_daily_xfer_history]
     128    * [#get_file_transfers get_file_transfers]
     129    * [#get_host_info get_host_info]
     130    * [#get_messages get_messages]
     131    * [#get_message_count get_message_count]
     132    * [#get_newer_version get_newer_version]
     133    * [#get_notices_public get_notices_public]
     134    * [#get_old_results get_old_results]
     135    * [#get_project_status get_project_status]
     136    * [#get_results get_results]
     137    * [#get_screensaver_tasks get_screensaver_tasks]
     138    * [#get_simple_gui_info get_simple_gui_info]
     139    * [#get_state get_state]
     140    * [#get_statistics get_statistics]
    141141 
    142142* Requests requiring authentication
    143     * [File transfer operations](#file-transfer-operations)
    144         * [abort_file_transfer](#abort_file_transfer)
    145         * [retry_file_transfer](#retry_file_transfer)
    146     * [Task operations](#task-operations)
    147         * [abort_result](#abort_result)
    148         * [suspend_result](#suspend_result)
    149         * [resume_result](#resume_result)
    150     * [Project operations](#project-operations)
    151         * [project_reset](#project_reset)
    152         * [project_detach](#project_detach)
    153         * [project_update](#project_update)
    154         * [project_suspend](#project_suspend)
    155         * [project_resume](#project_resume)
    156         * [project_nomorework](#project_nomorework)
    157         * [project_allowmorework](#project_allowmorework)
    158         * [project_detach\_when_done](#project_detach_when_done)
    159         * [project_dont\_detach\_when_done](#project_dont_detach_when_done)
    160         * [project_attach](#project_attach)
    161         * [project_attach_poll](#project_attach_poll)
    162         * [get_project\_init_status](#get_project_init_status)
    163         * [get_project_config](#get_project_config)
    164         * [get_project\_config_poll](#get_project_config_poll)
    165     * [Account operations](#account-operations)
    166         * [create_account](#create_account)
    167         * [create_account_poll](#create_account_poll)
    168         * [lookup_account](#lookup_account)
    169         * [lookup_account_poll](#lookup_account_poll)
    170     * [Account Manager operations](#account-manager-operations)
    171         * [acct_mgr_info](#acct_mgr_info)
    172         * [acct_mgr_rpc](#acct_mgr_rpc)
    173         * [acct_mgr\_rpc_poll](#acct_mgr_rpc_poll)       
    174     * [Global preferences operations](#global-preferences-operations)
    175         * [get_global\_prefs_file](#get_global_prefs_file)
    176         * [get_global\_prefs_override](#get_global_prefs_override)
    177         * [set_global\_prefs_override](#set_global_prefs_override)
    178         * [read_global\_prefs_override](#read_global_prefs_override)
    179         * [get_global\_prefs_working](#get_global_prefs_working)
    180     * [Other operations](#other-operations)
    181         * [get_notices](#get_notices)
    182         * [set_host_info](#set_host_info)
    183         * [run_benchmarks](#run_benchmarks)
    184         * [get_proxy_settings](#get_proxy_settings)
    185         * [network_available](#network_available)
    186         * [quit](#quit)
    187         * [set_language](#set_language)
    188         * [set_network_mode](#set_network_mode)
    189         * [set_gpu_mode](#set_gpu_mode)
    190         * [set_run_mode](#set_run_mode)
    191         * [set_proxy_settings](#set_proxy_settings)
    192         * [get_cc_config](#get_cc_config)
    193         * [read_cc_config](#read_cc_config)
    194         * [set_cc_config](#set_cc_config)
    195         * [get_app_config](#get_app_config)
    196         * [set_app_config](#set_app_config)
    197         * [report_device_status](#report_device_status)
     143    * [#Filetransferoperations File transfer operations]
     144        * [#abort_file_transfer abort_file_transfer]
     145        * [#retry_file_transfer retry_file_transfer]
     146    * [#Taskoperations Task operations]
     147        * [#abort_result abort_result]
     148        * [#suspend_result suspend_result]
     149        * [#resume_result resume_result]
     150    * [#Projectoperations Project operations]
     151        * [#project_reset project_reset]
     152        * [#project_detach project_detach]
     153        * [#project_update project_update]
     154        * [#project_suspend project_suspend]
     155        * [#project_resume project_resume]
     156        * [#project_nomorework project_nomorework]
     157        * [#project_allowmorework project_allowmorework]
     158        * [#project_detach_when_done project_detach_when_done]
     159        * [#project_dont_detach_when_done project_dont_detach_when_done]
     160        * [#project_attach project_attach]
     161        * [#project_attach_poll project_attach_poll]
     162        * [#get_project_init_status get_project_init_status]
     163        * [#get_project_config get_project_config]
     164        * [#get_project_config_poll get_project_config_poll]
     165    * [#Accountoperations Account operations]
     166        * [#create_account create_account]
     167        * [#create_account_poll create_account_poll]
     168        * [#lookup_account lookup_account]
     169        * [#lookup_account_poll lookup_account_poll]
     170    * [#Accountmanageroperations Account Manager operations]
     171        * [#acct_mgr_info acct_mgr_info]
     172        * [#acct_mgr_rpc acct_mgr_rpc]
     173        * [#acct_mgr_rpc_poll acct_mgr_rpc_poll]
     174    * [#Globalpreferencesoperations Global preferences operations]
     175        * [#get_global_prefs_file get_global_prefs_file]
     176        * [#get_global_prefs_override get_global_prefs_override]
     177        * [#set_global_prefs_override set_global_prefs_override]
     178        * [#read_global_prefs_override read_global_prefs_override]
     179        * [#get_global_prefs_working get_global_prefs_working]
     180    * [#Otheroperations Other operations]
     181        * [#get_notices get_notices]
     182        * [#set_host_info set_host_info]
     183        * [#run_benchmarks run_benchmarks]
     184        * [#get_proxy_settings get_proxy_settings]
     185        * [#network_available network_available]
     186        * [#quit quit]
     187        * [#set_language set_language]
     188        * [#set_network_mode set_network_mode]
     189        * [#set_gpu_mode set_gpu_mode]
     190        * [#set_run_mode set_run_mode]
     191        * [#set_proxy_settings set_proxy_settings]
     192        * [#get_cc_config get_cc_config]
     193        * [#read_cc_config read_cc_config]
     194        * [#set_cc_config set_cc_config]
     195        * [#get_app_config get_app_config]
     196        * [#set_app_config set_app_config]
     197        * [#report_device_status report_device_status]
    198198   
    199199   
    200 &nbsp;
     200[[br]]
    201201
    202202
    203203=== The following requests do not require local authorisation. ===
    204 ---
    205 &nbsp;
     204----
     205[[br]]
    206206
    207207
     
    239239}}}
    240240
    241 &nbsp;
     241[[br]]
    242242
    243243==== `get_all_projects_list` ====
     
    280280}}}
    281281
    282 &nbsp;
     282[[br]]
    283283
    284284==== `get_cc_status` ====
     
    316316</cc_status>
    317317}}}
    318 &nbsp;
     318[[br]]
    319319
    320320==== `get_disk_usage` ====
     
    343343</disk_usage_summary>
    344344}}}
    345 &nbsp;
     345[[br]]
    346346
    347347==== `get_daily_xfer_history` ====
    348 Show network traffic history of the BOINC client. Read from daily_xfer\_history.xml
     348Show network traffic history of the BOINC client. Read from daily_xfer_history.xml
    349349
    350350Request:
     
    369369</daily_xfers>
    370370}}}
    371 &nbsp;
     371[[br]]
    372372
    373373==== `get_file_transfers` ====
     
    412412}}}
    413413
    414 &nbsp;
     414[[br]]
    415415
    416416==== `get_host_info` ====
     
    513513</host_info>
    514514}}}
    515 &nbsp;
     515[[br]]
    516516
    517517==== `get_messages` ====
     
    520520Request:
    521521
    522 }}}`XML
     522{{{
    523523<get_messages>
    524524    <seqno></seqno>
    525525    <translatable/>
    526526</get_messages>
    527 }}}`
     527}}}
    528528The `<translatable/>` tag is optional.
    529529
     
    546546}}}
    547547
    548 &nbsp;
     548[[br]]
    549549
    550550==== `get_message_count` ====
     
    566566}}}
    567567
    568 &nbsp;
     568[[br]]
    569569
    570570==== `get_newer_version` ====
     
    585585<download_url></download_url>
    586586}}}
    587 &nbsp;
     587[[br]]
    588588
    589589==== `get_notices_public` ====
     
    620620</notices>
    621621}}}
    622 &nbsp;
     622[[br]]
    623623
    624624==== `get_old_results` ====
     
    652652</old_results>
    653653}}}
    654 &nbsp;
     654[[br]]
    655655
    656656==== `get_project_status` ====
     
    766766</projects>
    767767}}}
    768 &nbsp;
     768[[br]]
    769769
    770770==== `get_results` ====
     
    830830}}}
    831831
    832 &nbsp;
     832[[br]]
    833833
    834834==== `get_screensaver_tasks` ====
     
    872872}}}
    873873
    874 &nbsp;
     874[[br]]
    875875
    876876==== `get_simple_gui_info` ====
     
    902902}}}
    903903
    904 &nbsp;
     904[[br]]
    905905
    906906==== `get_state` ====
     
    966966}}}
    967967
    968 &nbsp;
     968[[br]]
    969969
    970970==== `get_statistics` ====
     
    10011001</statistics>
    10021002}}}
    1003 &nbsp;
    1004 
    1005 ---
     1003[[br]]
     1004
     1005----
    10061006=== The following requests require local authentication ===
    10071007
    10081008
    1009 In this section the replies fall in one of three categories. For requests that retrieve data the replies depend on the kind of data that is retrieved. For _control of the client_ operations they are either:
     1009In this section the replies fall in one of three categories. For requests that retrieve data the replies depend on the kind of data that is retrieved. For ''control of the client'' operations they are either:
    10101010
    10111011{{{
     
    10261026Otherwise only requests will be documented.
    10271027
    1028 See also ( [Common Replies](#common-replies) )
    1029 
    1030 
    1031 &nbsp;
     1028See also ( [#Commonreplies Common Replies] )
     1029
     1030
     1031[[br]]
    10321032
    10331033=== File transfer operations ===
    1034 ---
     1034----
    10351035 
    10361036==== `abort_file_transfer` ====
     
    10461046</abort_file_transfer>
    10471047}}}
    1048 &nbsp;
     1048[[br]]
    10491049
    10501050==== `retry_file_transfer` ====
     
    10621062
    10631063
    1064 &nbsp;
     1064[[br]]
    10651065
    10661066=== Task operations ===
    1067 ---
     1067----
    10681068==== `abort_result` ====
    10691069Abort a task
     
    10781078</abort_result>
    10791079}}}
    1080 &nbsp;
     1080[[br]]
    10811081
    10821082==== `suspend_result` ====
     
    10921092</suspend_result>
    10931093}}}
    1094 &nbsp;
     1094[[br]]
    10951095
    10961096==== `resume_result` ====
     
    11071107}}}
    11081108
    1109 &nbsp;
     1109[[br]]
    11101110
    11111111=== Project operations ===
    1112 ---
    1113 
    1114 &nbsp;
     1112----
     1113
     1114[[br]]
    11151115==== `project_reset` ====
    11161116Reset a project (Client will need temporary network access)
     
    11251125}}}
    11261126
    1127 &nbsp;
     1127[[br]]
    11281128==== `project_detach` ====
    11291129Detach from a project
     
    11381138}}}
    11391139
    1140 &nbsp;
     1140[[br]]
    11411141==== `project_update` ====
    11421142Update a project (Client will need temporary network access)
     
    11511151}}}
    11521152
    1153 &nbsp;
     1153[[br]]
    11541154==== `project_suspend` ====
    11551155Suspend a project
     
    11641164}}}
    11651165
    1166 &nbsp;
     1166[[br]]
    11671167==== `project_resume` ====
    11681168Resume a project
     
    11771177}}}
    11781178
    1179 &nbsp;
     1179[[br]]
    11801180==== `project_nomorework` ====
    11811181Stop getting new tasks for a project
     
    11901190}}}
    11911191
    1192 &nbsp;
     1192[[br]]
    11931193==== `project_allowmorework` ====
    11941194Receive new tasks for a project. Reverse `project_nomorework`.
     
    12031203}}}
    12041204
    1205 &nbsp;
     1205[[br]]
    12061206==== `project_detach_when_done` ====
    12071207Detach from a project after all it's tasks are finished.
     
    12151215</project_detach_ahen_done>
    12161216}}}
    1217 &nbsp;
     1217[[br]]
    12181218==== `project_dont_detach_when_done` ====
    12191219Don't detach from a project after all it's tasks are finished. Reverse `project_detach_when_done`
     
    12271227</project_dont_detach_ahen_done>
    12281228}}}
    1229 &nbsp;
     1229[[br]]
    12301230==== `project_attach` ====
    12311231Attach the client to a project. There are two kinds of requests. One using a project_init.xml file with all the necessary data and one not. (Client will need temporary network access)
     
    12571257To see if the attachment was successful the request `<project_attach_poll/>` has to be made.
    12581258
    1259 &nbsp;
     1259[[br]]
    12601260==== `project_attach_poll` ====
    12611261The aforementioned request. (Client will need temporary network access)
     
    12831283**Note:** A source of confusion could be the fact that the `<project_attach_poll>`request will only return errors associated with the attachment process. If a user attaches to a non existing project or uses an invalid authenticator but the attachment per se has no errors the request will return with 0 exit code. In that case the client's messages will have to be checked.
    12841284
    1285 &nbsp;
     1285[[br]]
    12861286==== `get_project_init_status` ====
    12871287Get the contents of the project_init.xml file if present
     
    13041304</get_project_init_status>
    13051305}}}
    1306 &nbsp;
     1306[[br]]
    13071307==== `get_project_config` ====
    13081308Fetch the project configuration file from the specified url. Asynchronous request. (Client will need temporary network access)
     
    13161316</get_project_config>
    13171317}}}
    1318 &nbsp;
     1318[[br]]
    13191319==== `get_project_config_poll` ====
    13201320The polling call for the previous request. Not a check for the successful fetching of the file but of the successful request. (Client will need temporary network access) 
     
    13491349
    13501350
    1351 &nbsp;
    1352 
    1353 === Account operations (all require network access) ===
    1354 ---
     1351[[br]]
     1352
     1353=== Account operations (all require network access) === #Accountoperations
     1354----
    13551355
    13561356==== `create_account` ====
     
    13701370}}}
    13711371
    1372 &nbsp;
     1372[[br]]
    13731373==== `create_account_poll` ====
    13741374The polling call for the previous request
     
    13811381}}}
    13821382
    1383 &nbsp;
     1383[[br]]
    13841384==== `lookup_account` ====
    13851385Look for an account in a given project. Asynchronous call.
     
    13991399}}}
    14001400
    1401 &nbsp;
     1401[[br]]
    14021402==== `lookup_account_poll` ====
    1403 The polling call for the previous request. This request is designed to be used within the context of a function (e.g. inside boinccmd's `--lookup_account`) and the results to be printed by an appropriate function (e.g. `ACCOUNT_OUT::print()`) so it will not be very useful as a standalone RPC call. To get the same functionality as the above command within the context of an RPC the [lookup_account.php](https://boinc.berkeley.edu/trac/wiki/WebRpc) script can be used.
     1403The polling call for the previous request. This request is designed to be used within the context of a function (e.g. inside boinccmd's `--lookup_account`) and the results to be printed by an appropriate function (e.g. `ACCOUNT_OUT::print()`) so it will not be very useful as a standalone RPC call. To get the same functionality as the above command within the context of an RPC the [WebRpc lookup_account.php] script can be used.
    14041404
    14051405Request:
     
    14121412
    14131413
    1414 &nbsp;
     1414[[br]]
    14151415
    14161416=== Account manager operations ===
    1417 ---
     1417----
    14181418
    14191419==== `acct_mgr_info` ====
     
    14391439</acct_mgr_info>
    14401440}}}
    1441 &nbsp;
     1441[[br]]
    14421442
    14431443==== `acct_mgr_rpc` ====
    1444 Make an rpc to an account manager. (Client will need temporary network access). It has three uses. Used by the `--join_acct_mgr` command of the [boinccmd](http://boinc.berkeley.edu/wiki/Boinccmd_tool) tool to join an account manager. Used by the same tool's `--quit_acct_mgr`command with null arguments to quit an account manager. And lastly used to trigger an RPC to the current account manager.
     1444Make an rpc to an account manager. (Client will need temporary network access). It has three uses. Used by the `--join_acct_mgr` command of the [https://boinc.berkeley.edu/wiki/Boinccmd_tool boinccmd]) tool to join an account manager. Used by the same tool's `--quit_acct_mgr`command with null arguments to quit an account manager. And lastly used to trigger an RPC to the current account manager.
    14451445
    14461446There are two requests depending on whether there is a file with the necessary data or not.
     
    14681468This request is asynchronous. It returns immediately with either `<success/>`or one of the following errors: `<error>bad arg</error>` or `<error>unrecognized op: act_mgr_rpc</error>`. To get the results of the request a call to `<acct_mgr_rpc_poll/>` has to be made.
    14691469
    1470 &nbsp;
     1470[[br]]
    14711471
    14721472==== `acct_mgr_rpc_poll` ====
     
    14901490}}}
    14911491
    1492 &nbsp;
     1492[[br]]
    14931493
    14941494=== Global preferences operations ===
    1495 ---
     1495----
    14961496
    14971497==== `get_global_prefs_file` ====
     
    15161516}}}
    15171517
    1518 &nbsp;
     1518[[br]]
    15191519
    15201520==== `get_global_prefs_override` ====
     
    15381538</global_preferences>
    15391539}}}
    1540 &nbsp;
     1540[[br]]
    15411541
    15421542==== `set_global_prefs_override` ====
     
    15561556}}}
    15571557
    1558 &nbsp;
     1558[[br]]
    15591559
    15601560==== `read_global_prefs_override` ====
     
    15681568}}}
    15691569
    1570 &nbsp;
     1570[[br]]
    15711571
    15721572==== `get_global_prefs_working` ====
     
    15911591}}}
    15921592
    1593 &nbsp;
     1593[[br]]
    15941594
    15951595=== Other operations ===
    1596 ---
     1596----
    15971597
    15981598==== `get_notices` ====
     
    16291629</notices>
    16301630}}}
    1631 &nbsp;
     1631[[br]]
    16321632
    16331633==== `set_host_info` ====
     
    16441644</set_host_info>
    16451645}}}
    1646 &nbsp;
     1646[[br]]
    16471647
    16481648==== `run_benchmarks` ====
     
    16551655<run_benchmarks/>
    16561656}}}
    1657 &nbsp;
     1657[[br]]
    16581658
    16591659==== `get_proxy_settings` ====
     
    16921692}}}
    16931693
    1694 &nbsp;
     1694[[br]]
    16951695
    16961696==== `network_available` ====
     
    17041704}}}
    17051705
    1706 &nbsp;
     1706[[br]]
    17071707
    17081708==== `quit` ====
     
    17161716}}}
    17171717
    1718 &nbsp;
     1718[[br]]
    17191719
    17201720==== `set_language` ====
     
    17291729</set_language>
    17301730}}}
    1731 &nbsp;
     1731[[br]]
    17321732
    17331733==== `set_network_mode` ====
     
    17471747}}}
    17481748
    1749 &nbsp;
     1749[[br]]
    17501750
    17511751==== `set_gpu_mode` ====
     
    17651765}}}
    17661766
    1767 &nbsp;
     1767[[br]]
    17681768
    17691769==== `set_run_mode` ====
     
    17831783}}}
    17841784
    1785 &nbsp;
     1785[[br]]
    17861786
    17871787==== `set_proxy_settings` ====
     
    18111811}}}
    18121812
    1813 &nbsp;
     1813[[br]]
    18141814
    18151815==== `get_cc_config` ====
     
    18251825Reply: The contents of the file.
    18261826
    1827 &nbsp;
     1827[[br]]
    18281828
    18291829==== `read_cc_config` ====
     
    18371837}}}
    18381838
    1839 &nbsp;
     1839[[br]]
    18401840
    18411841==== `set_cc_config` ====
     
    18521852</set_cc_config>
    18531853}}}
    1854 &nbsp;
     1854[[br]]
    18551855
    18561856==== `get_app_config` ====
     
    18661866Reply: The contents of the file.
    18671867
    1868 &nbsp;
     1868[[br]]
    18691869
    18701870==== `set_app_config` ====
     
    18831883}}}
    18841884
    1885 &nbsp;
     1885[[br]]
    18861886
    18871887==== `report_device_status` ====