diff --git a/src/libs/metadata/impl/TagLibParser.cpp b/src/libs/metadata/impl/TagLibParser.cpp index dad243ed..d5fb733b 100644 --- a/src/libs/metadata/impl/TagLibParser.cpp +++ b/src/libs/metadata/impl/TagLibParser.cpp @@ -491,7 +491,7 @@ TagLibParser::parse(const std::filesystem::path& p, bool debug) //MP4 else if (TagLib::MP4::File* mp4File {dynamic_cast(f.file())}) { - auto& coverItem {mp4File->tag()->itemListMap()["covr"]}; + TagLib::MP4::Item coverItem {mp4File->tag()->item("covr")}; TagLib::MP4::CoverArtList coverArtList {coverItem.toCoverArtList()}; if (!coverArtList.isEmpty()) track.hasCover = true; diff --git a/src/lms/main.cpp b/src/lms/main.cpp index 4cb86c98..81c68c1b 100644 --- a/src/lms/main.cpp +++ b/src/lms/main.cpp @@ -277,14 +277,9 @@ int main(int argc, char* argv[]) Service scrobblingService {Scrobbling::createScrobblingService(ioContext, database)}; - std::unique_ptr subsonicResource; - // bind API resources if (config->getBool("api-subsonic", true)) - { - subsonicResource = API::Subsonic::createSubsonicResource(database); - server.addResource(subsonicResource.get(), "/rest"); - } + server.addResource(API::Subsonic::createSubsonicResource(database), "/rest"); // bind UI entry point server.addEntryPoint(Wt::EntryPointType::Application, diff --git a/src/lms/ui/Auth.cpp b/src/lms/ui/Auth.cpp index 95646614..3cacfd1f 100644 --- a/src/lms/ui/Auth.cpp +++ b/src/lms/ui/Auth.cpp @@ -21,12 +21,12 @@ #include +#include #include +#include #include #include -#include #include -#include #include "services/auth/IAuthTokenService.hpp" #include "services/auth/IPasswordService.hpp" @@ -50,16 +50,12 @@ void createAuthToken(Database::UserId userId, const Wt::WDateTime& expiry) { const std::string secret {Service<::Auth::IAuthTokenService>::get()->createAuthToken(userId, expiry)}; + Wt::Http::Cookie cookie{ authCookieName, secret, expiry }; + cookie.setSecure(LmsApp->environment().urlScheme() == "https"); - LmsApp->setCookie(authCookieName, - secret, - expiry.toTime_t() - Wt::WDateTime::currentDateTime().toTime_t(), - "", - "", - LmsApp->environment().urlScheme() == "https"); + LmsApp->setCookie(cookie); } - std::optional processAuthToken(const Wt::WEnvironment& env) { @@ -72,8 +68,12 @@ processAuthToken(const Wt::WEnvironment& env) { case ::Auth::IAuthTokenService::AuthTokenProcessResult::State::Denied: case ::Auth::IAuthTokenService::AuthTokenProcessResult::State::Throttled: - LmsApp->setCookie(authCookieName, std::string {}, 0, "", "", env.urlScheme() == "https"); + { + Wt::Http::Cookie cookie{ authCookieName }; + cookie.setSecure(LmsApp->environment().urlScheme() == "https"); + LmsApp->removeCookie(cookie); return std::nullopt; + } case ::Auth::IAuthTokenService::AuthTokenProcessResult::State::Granted: createAuthToken(res.authTokenInfo->userId, res.authTokenInfo->expiry);