| 1493 | } |
| 1494 | |
| 1495 | void appasset(resp_https_t response, req_https_t request) { |
| 1496 | print_req<SunshineHTTPS>(request); |
| 1497 | |
| 1498 | auto fg = util::fail_guard([&]() { |
| 1499 | response->write(SimpleWeb::StatusCode::server_error_internal_server_error); |
| 1500 | response->close_connection_after_response = true; |
| 1501 | }); |
| 1502 | |
| 1503 | auto named_cert_p = get_verified_cert(request); |
| 1504 | |
| 1505 | if (!(named_cert_p->perm & PERM::_all_actions)) { |
| 1506 | BOOST_LOG(debug) << "Permission Get AppAsset denied for [" << named_cert_p->name << "] (" << (uint32_t)named_cert_p->perm << ")"; |
| 1507 | |
| 1508 | fg.disable(); |
| 1509 | response->write(SimpleWeb::StatusCode::client_error_unauthorized); |
| 1510 | response->close_connection_after_response = true; |
| 1511 | return; |
| 1512 | } |
| 1513 | |
| 1514 | auto args = request->parse_query_string(); |
| 1515 | auto app_image = proc::proc.get_app_image(util::from_view(get_arg(args, "appid"))); |
| 1516 | |
| 1517 | fg.disable(); |
| 1518 | |
| 1519 | std::ifstream in(app_image, std::ios::binary); |
| 1520 | SimpleWeb::CaseInsensitiveMultimap headers; |
| 1521 | headers.emplace("Content-Type", "image/png"); |
| 1522 | response->write(SimpleWeb::StatusCode::success_ok, in, headers); |
| 1523 | response->close_connection_after_response = true; |
| 1524 | } |
| 1525 | |
| 1526 | void getClipboard(resp_https_t response, req_https_t request) { |
| 1527 | print_req<SunshineHTTPS>(request); |
nothing calls this directly
no test coverage detected