|
@@ -41,6 +41,21 @@ SessionRequestManager::SessionRequestManager(KernelCore& kernel_) : kernel{kerne
|
|
|
|
|
|
|
|
SessionRequestManager::~SessionRequestManager() = default;
|
|
SessionRequestManager::~SessionRequestManager() = default;
|
|
|
|
|
|
|
|
|
|
+bool SessionRequestManager::HasSessionRequestHandler(const HLERequestContext& context) const {
|
|
|
|
|
+ if (IsDomain() && context.HasDomainMessageHeader()) {
|
|
|
|
|
+ const auto& message_header = context.GetDomainMessageHeader();
|
|
|
|
|
+ const auto object_id = message_header.object_id;
|
|
|
|
|
+
|
|
|
|
|
+ if (object_id > DomainHandlerCount()) {
|
|
|
|
|
+ LOG_CRITICAL(IPC, "object_id {} is too big!", object_id);
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ return DomainHandler(object_id - 1) != nullptr;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return session_handler != nullptr;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
void SessionRequestHandler::ClientConnected(KServerSession* session) {
|
|
void SessionRequestHandler::ClientConnected(KServerSession* session) {
|
|
|
session->SetSessionHandler(shared_from_this());
|
|
session->SetSessionHandler(shared_from_this());
|
|
|
}
|
|
}
|