MCPcopy Create free account
hub / github.com/ClassicOldSong/Apollo / appasset

Function appasset

src/nvhttp.cpp:1495–1524  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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);

Callers

nothing calls this directly

Calls 7

fail_guardFunction · 0.85
get_verified_certFunction · 0.85
get_argFunction · 0.85
writeMethod · 0.80
disableMethod · 0.80
get_app_imageMethod · 0.80
from_viewFunction · 0.70

Tested by

no test coverage detected