Changes between Version 28 and Version 29 of GuiRpcProtocol
- Timestamp:
- Nov 30, 2018, 1:25:03 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GuiRpcProtocol
v28 v29 11 11 Self-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 />`. 12 12 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.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 [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. 14 14 15 15 The 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. … … 24 24 <request> 25 25 </request> 26 </boinc_gui_rpc_request> 00327 }}} 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 }}} 28 where `<request>` is a placeholder for one of the actual requests that are listed [#RequestsandReplies later]. 29 29 30 30 Self-closing tags could also be used for requests that do not require data to be passed to the client. Their structure is the following: … … 34 34 <boinc_gui_rpc_request> 35 35 <request/> 36 </boinc_gui_rpc_request> 00336 </boinc_gui_rpc_request>\003 37 37 }}} 38 38 39 39 == Common replies == 40 40 41 If a command requires [ authentication](#authentication)but the client hasn't authenticated yet, the RPC server will reply41 If a command requires [#Authentication authentication] but the client hasn't authenticated yet, the RPC server will reply 42 42 43 43 {{{ … … 45 45 <boinc_gui_rpc_reply> 46 46 <unauthorized/> 47 </boinc_gui_rpc_reply> 00347 </boinc_gui_rpc_reply>\003 48 48 }}} 49 49 … … 56 56 <boinc_gui_rpc_reply> 57 57 <success/> 58 </boinc_gui_rpc_reply> 00358 </boinc_gui_rpc_reply>\003 59 59 }}} 60 60 … … 67 67 <boinc_gui_rpc_reply> 68 68 <error>human-readable error message</error> 69 </boinc_gui_rpc_reply> 00370 }}} 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 }}} 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. (Commit 63b49cd2 even changed "unrecognized op".) 72 72 73 73 … … 82 82 <boinc_gui_rpc_request> 83 83 <auth1/> 84 </boinc_gui_rpc_request> 00384 </boinc_gui_rpc_request>\003 85 85 }}} 86 86 … … 91 91 <boinc_gui_rpc_reply> 92 92 <nonce>1198959933.057125</nonce> 93 </boinc_gui_rpc_reply> 00394 }}} 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 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. 97 97 98 98 {{{ … … 102 102 <nonce_hash>d41d8cd98f00b204e9800998ecf8427e</nonce_hash> 103 103 </auth2> 104 </boinc_gui_rpc_request> 003104 </boinc_gui_rpc_request>\003 105 105 }}} 106 106 … … 117 117 == Requests and Replies == 118 118 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 *** 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 ---- 121 121 122 122 * 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] 141 141 142 142 * 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] 198 198 199 199 200 200 [[br]] 201 201 202 202 203 203 === The following requests do not require local authorisation. === 204 --- 205 204 ---- 205 [[br]] 206 206 207 207 … … 239 239 }}} 240 240 241 241 [[br]] 242 242 243 243 ==== `get_all_projects_list` ==== … … 280 280 }}} 281 281 282 282 [[br]] 283 283 284 284 ==== `get_cc_status` ==== … … 316 316 </cc_status> 317 317 }}} 318 318 [[br]] 319 319 320 320 ==== `get_disk_usage` ==== … … 343 343 </disk_usage_summary> 344 344 }}} 345 345 [[br]] 346 346 347 347 ==== `get_daily_xfer_history` ==== 348 Show network traffic history of the BOINC client. Read from daily_xfer \_history.xml348 Show network traffic history of the BOINC client. Read from daily_xfer_history.xml 349 349 350 350 Request: … … 369 369 </daily_xfers> 370 370 }}} 371 371 [[br]] 372 372 373 373 ==== `get_file_transfers` ==== … … 412 412 }}} 413 413 414 414 [[br]] 415 415 416 416 ==== `get_host_info` ==== … … 513 513 </host_info> 514 514 }}} 515 515 [[br]] 516 516 517 517 ==== `get_messages` ==== … … 520 520 Request: 521 521 522 }}}`XML 522 {{{ 523 523 <get_messages> 524 524 <seqno></seqno> 525 525 <translatable/> 526 526 </get_messages> 527 }}} `527 }}} 528 528 The `<translatable/>` tag is optional. 529 529 … … 546 546 }}} 547 547 548 548 [[br]] 549 549 550 550 ==== `get_message_count` ==== … … 566 566 }}} 567 567 568 568 [[br]] 569 569 570 570 ==== `get_newer_version` ==== … … 585 585 <download_url></download_url> 586 586 }}} 587 587 [[br]] 588 588 589 589 ==== `get_notices_public` ==== … … 620 620 </notices> 621 621 }}} 622 622 [[br]] 623 623 624 624 ==== `get_old_results` ==== … … 652 652 </old_results> 653 653 }}} 654 654 [[br]] 655 655 656 656 ==== `get_project_status` ==== … … 766 766 </projects> 767 767 }}} 768 768 [[br]] 769 769 770 770 ==== `get_results` ==== … … 830 830 }}} 831 831 832 832 [[br]] 833 833 834 834 ==== `get_screensaver_tasks` ==== … … 872 872 }}} 873 873 874 874 [[br]] 875 875 876 876 ==== `get_simple_gui_info` ==== … … 902 902 }}} 903 903 904 904 [[br]] 905 905 906 906 ==== `get_state` ==== … … 966 966 }}} 967 967 968 968 [[br]] 969 969 970 970 ==== `get_statistics` ==== … … 1001 1001 </statistics> 1002 1002 }}} 1003 1004 1005 --- 1003 [[br]] 1004 1005 ---- 1006 1006 === The following requests require local authentication === 1007 1007 1008 1008 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: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: 1010 1010 1011 1011 {{{ … … 1026 1026 Otherwise only requests will be documented. 1027 1027 1028 See also ( [ Common Replies](#common-replies))1029 1030 1031 1028 See also ( [#Commonreplies Common Replies] ) 1029 1030 1031 [[br]] 1032 1032 1033 1033 === File transfer operations === 1034 --- 1034 ---- 1035 1035 1036 1036 ==== `abort_file_transfer` ==== … … 1046 1046 </abort_file_transfer> 1047 1047 }}} 1048 1048 [[br]] 1049 1049 1050 1050 ==== `retry_file_transfer` ==== … … 1062 1062 1063 1063 1064 1064 [[br]] 1065 1065 1066 1066 === Task operations === 1067 --- 1067 ---- 1068 1068 ==== `abort_result` ==== 1069 1069 Abort a task … … 1078 1078 </abort_result> 1079 1079 }}} 1080 1080 [[br]] 1081 1081 1082 1082 ==== `suspend_result` ==== … … 1092 1092 </suspend_result> 1093 1093 }}} 1094 1094 [[br]] 1095 1095 1096 1096 ==== `resume_result` ==== … … 1107 1107 }}} 1108 1108 1109 1109 [[br]] 1110 1110 1111 1111 === Project operations === 1112 --- 1113 1114 1112 ---- 1113 1114 [[br]] 1115 1115 ==== `project_reset` ==== 1116 1116 Reset a project (Client will need temporary network access) … … 1125 1125 }}} 1126 1126 1127 1127 [[br]] 1128 1128 ==== `project_detach` ==== 1129 1129 Detach from a project … … 1138 1138 }}} 1139 1139 1140 1140 [[br]] 1141 1141 ==== `project_update` ==== 1142 1142 Update a project (Client will need temporary network access) … … 1151 1151 }}} 1152 1152 1153 1153 [[br]] 1154 1154 ==== `project_suspend` ==== 1155 1155 Suspend a project … … 1164 1164 }}} 1165 1165 1166 1166 [[br]] 1167 1167 ==== `project_resume` ==== 1168 1168 Resume a project … … 1177 1177 }}} 1178 1178 1179 1179 [[br]] 1180 1180 ==== `project_nomorework` ==== 1181 1181 Stop getting new tasks for a project … … 1190 1190 }}} 1191 1191 1192 1192 [[br]] 1193 1193 ==== `project_allowmorework` ==== 1194 1194 Receive new tasks for a project. Reverse `project_nomorework`. … … 1203 1203 }}} 1204 1204 1205 1205 [[br]] 1206 1206 ==== `project_detach_when_done` ==== 1207 1207 Detach from a project after all it's tasks are finished. … … 1215 1215 </project_detach_ahen_done> 1216 1216 }}} 1217 1217 [[br]] 1218 1218 ==== `project_dont_detach_when_done` ==== 1219 1219 Don't detach from a project after all it's tasks are finished. Reverse `project_detach_when_done` … … 1227 1227 </project_dont_detach_ahen_done> 1228 1228 }}} 1229 1229 [[br]] 1230 1230 ==== `project_attach` ==== 1231 1231 Attach 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) … … 1257 1257 To see if the attachment was successful the request `<project_attach_poll/>` has to be made. 1258 1258 1259 1259 [[br]] 1260 1260 ==== `project_attach_poll` ==== 1261 1261 The aforementioned request. (Client will need temporary network access) … … 1283 1283 **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. 1284 1284 1285 1285 [[br]] 1286 1286 ==== `get_project_init_status` ==== 1287 1287 Get the contents of the project_init.xml file if present … … 1304 1304 </get_project_init_status> 1305 1305 }}} 1306 1306 [[br]] 1307 1307 ==== `get_project_config` ==== 1308 1308 Fetch the project configuration file from the specified url. Asynchronous request. (Client will need temporary network access) … … 1316 1316 </get_project_config> 1317 1317 }}} 1318 1318 [[br]] 1319 1319 ==== `get_project_config_poll` ==== 1320 1320 The 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) … … 1349 1349 1350 1350 1351 1352 1353 === Account operations (all require network access) === 1354 --- 1351 [[br]] 1352 1353 === Account operations (all require network access) === #Accountoperations 1354 ---- 1355 1355 1356 1356 ==== `create_account` ==== … … 1370 1370 }}} 1371 1371 1372 1372 [[br]] 1373 1373 ==== `create_account_poll` ==== 1374 1374 The polling call for the previous request … … 1381 1381 }}} 1382 1382 1383 1383 [[br]] 1384 1384 ==== `lookup_account` ==== 1385 1385 Look for an account in a given project. Asynchronous call. … … 1399 1399 }}} 1400 1400 1401 1401 [[br]] 1402 1402 ==== `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.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 [WebRpc lookup_account.php] script can be used. 1404 1404 1405 1405 Request: … … 1412 1412 1413 1413 1414 1414 [[br]] 1415 1415 1416 1416 === Account manager operations === 1417 --- 1417 ---- 1418 1418 1419 1419 ==== `acct_mgr_info` ==== … … 1439 1439 </acct_mgr_info> 1440 1440 }}} 1441 1441 [[br]] 1442 1442 1443 1443 ==== `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.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 [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. 1445 1445 1446 1446 There are two requests depending on whether there is a file with the necessary data or not. … … 1468 1468 This 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. 1469 1469 1470 1470 [[br]] 1471 1471 1472 1472 ==== `acct_mgr_rpc_poll` ==== … … 1490 1490 }}} 1491 1491 1492 1492 [[br]] 1493 1493 1494 1494 === Global preferences operations === 1495 --- 1495 ---- 1496 1496 1497 1497 ==== `get_global_prefs_file` ==== … … 1516 1516 }}} 1517 1517 1518 1518 [[br]] 1519 1519 1520 1520 ==== `get_global_prefs_override` ==== … … 1538 1538 </global_preferences> 1539 1539 }}} 1540 1540 [[br]] 1541 1541 1542 1542 ==== `set_global_prefs_override` ==== … … 1556 1556 }}} 1557 1557 1558 1558 [[br]] 1559 1559 1560 1560 ==== `read_global_prefs_override` ==== … … 1568 1568 }}} 1569 1569 1570 1570 [[br]] 1571 1571 1572 1572 ==== `get_global_prefs_working` ==== … … 1591 1591 }}} 1592 1592 1593 1593 [[br]] 1594 1594 1595 1595 === Other operations === 1596 --- 1596 ---- 1597 1597 1598 1598 ==== `get_notices` ==== … … 1629 1629 </notices> 1630 1630 }}} 1631 1631 [[br]] 1632 1632 1633 1633 ==== `set_host_info` ==== … … 1644 1644 </set_host_info> 1645 1645 }}} 1646 1646 [[br]] 1647 1647 1648 1648 ==== `run_benchmarks` ==== … … 1655 1655 <run_benchmarks/> 1656 1656 }}} 1657 1657 [[br]] 1658 1658 1659 1659 ==== `get_proxy_settings` ==== … … 1692 1692 }}} 1693 1693 1694 1694 [[br]] 1695 1695 1696 1696 ==== `network_available` ==== … … 1704 1704 }}} 1705 1705 1706 1706 [[br]] 1707 1707 1708 1708 ==== `quit` ==== … … 1716 1716 }}} 1717 1717 1718 1718 [[br]] 1719 1719 1720 1720 ==== `set_language` ==== … … 1729 1729 </set_language> 1730 1730 }}} 1731 1731 [[br]] 1732 1732 1733 1733 ==== `set_network_mode` ==== … … 1747 1747 }}} 1748 1748 1749 1749 [[br]] 1750 1750 1751 1751 ==== `set_gpu_mode` ==== … … 1765 1765 }}} 1766 1766 1767 1767 [[br]] 1768 1768 1769 1769 ==== `set_run_mode` ==== … … 1783 1783 }}} 1784 1784 1785 1785 [[br]] 1786 1786 1787 1787 ==== `set_proxy_settings` ==== … … 1811 1811 }}} 1812 1812 1813 1813 [[br]] 1814 1814 1815 1815 ==== `get_cc_config` ==== … … 1825 1825 Reply: The contents of the file. 1826 1826 1827 1827 [[br]] 1828 1828 1829 1829 ==== `read_cc_config` ==== … … 1837 1837 }}} 1838 1838 1839 1839 [[br]] 1840 1840 1841 1841 ==== `set_cc_config` ==== … … 1852 1852 </set_cc_config> 1853 1853 }}} 1854 1854 [[br]] 1855 1855 1856 1856 ==== `get_app_config` ==== … … 1866 1866 Reply: The contents of the file. 1867 1867 1868 1868 [[br]] 1869 1869 1870 1870 ==== `set_app_config` ==== … … 1883 1883 }}} 1884 1884 1885 1885 [[br]] 1886 1886 1887 1887 ==== `report_device_status` ====