在openbmc中,bmcweb是一个web服务程序,类似于lighttpd,提供web服务。本文将简单介绍这个服务进程的执行流程。
bmcweb的入口函数main().
main() -> run()
run()先注册routes,最后调用app.run().
第一个注册的route为crow::webassets:requestRoutes().
crow::webassets:requestRoutes()扫描’/usr/share/www/’目录下的文件,解析文件的etag, 最后调用app.routeDynamic()注册route,将webpath作为url保存在app.router. allRules.route中。
回到app.run(),他注册的最后一个routes是crow::login_routes::requestRoutes().