#include #include #include #include #include #include bool termination = false; void sigterm_action(int ) { termination = true; } int main(int argc, char** argv){ een9_ASSERT_pl(argc > 0); if (argc < 1 + 2) { printf("Usage: %s \n", argv[0]); exit(1); } // if () if (!een9::isDirectory(argv[2])) { printf("\"%s\" is not a directory\n", argv[2]); } std::string assets_dir = argv[2]; een9::StaticAssetManagerSlaveModule samI; samI.update({ een9::StaticAssetManagerRule{assets_dir + "/html", "/assets/html", {{".html", "text/html"}} }, een9::StaticAssetManagerRule{assets_dir + "/css", "/assets/css", {{".css", "text/css"}} }, een9::StaticAssetManagerRule{assets_dir + "/js", "/assets/js", {{".js", "text/js"}} }, }); een9::MainloopParameters params; params.guest_core = [&samI](const een9::SlaveTask& task, const een9::ClientRequest& req) -> std::string { een9::StaticAsset sa; int ret; ret = samI.get_asset(req.url, sa); if (ret >= 0) { return een9::form_http_server_response_200(sa.type, sa.content); } if (req.url == "/" || req.url == "/index.html") { ret = samI.get_asset("/assets/html/test.html", sa); een9_ASSERT_pl(ret == 0); return een9::form_http_server_response_200(sa.type, sa.content); } return een9::form_http_server_response_404("text/html", "

Not found!

"); }; params.ports_to_listen = {1025}; params.slave_number = 8; params.open_admin_listener = false; signal(SIGINT, sigterm_action); een9::safe_electric_boogaloo(params, termination); return 0; }