MCPcopy Create free account
hub / github.com/KikoPlayProject/KikoPlay / getSession

Method getSession

LANServer/httpserver/httpsessionstore.cpp:52–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50}
51
52HttpSession HttpSessionStore::getSession(HttpRequest& request, HttpResponse& response, bool allowCreate)
53{
54 QByteArray sessionId=getSessionId(request,response);
55 mutex.lock();
56 if (!sessionId.isEmpty())
57 {
58 HttpSession session=sessions.value(sessionId);
59 if (!session.isNull())
60 {
61 mutex.unlock();
62 // Refresh the session cookie
63 QByteArray cookieName=settings->value("cookieName","sessionid").toByteArray();
64 QByteArray cookiePath=settings->value("cookiePath").toByteArray();
65 QByteArray cookieComment=settings->value("cookieComment").toByteArray();
66 QByteArray cookieDomain=settings->value("cookieDomain").toByteArray();
67 response.setCookie(HttpCookie(cookieName,session.getId(),expirationTime/1000,
68 cookiePath,cookieComment,cookieDomain,false,false,"Lax"));
69 session.setLastAccess();
70 return session;
71 }
72 }
73 // Need to create a new session
74 if (allowCreate)
75 {
76 QByteArray cookieName=settings->value("cookieName","sessionid").toByteArray();
77 QByteArray cookiePath=settings->value("cookiePath").toByteArray();
78 QByteArray cookieComment=settings->value("cookieComment").toByteArray();
79 QByteArray cookieDomain=settings->value("cookieDomain").toByteArray();
80 HttpSession session(true);
81 Logger::logger()->log(Logger::LANServer, "HttpSessionStore: create new session with ID %s",session.getId().data());
82 sessions.insert(session.getId(),session);
83 response.setCookie(HttpCookie(cookieName,session.getId(),expirationTime/1000,
84 cookiePath,cookieComment,cookieDomain,false,false,"Lax"));
85 mutex.unlock();
86 return session;
87 }
88 // Return a null session
89 mutex.unlock();
90 return HttpSession();
91}
92
93HttpSession HttpSessionStore::getSession(const QByteArray id)
94{

Callers

nothing calls this directly

Calls 10

valueMethod · 0.80
isNullMethod · 0.80
toByteArrayMethod · 0.80
setCookieMethod · 0.80
getIdMethod · 0.80
setLastAccessMethod · 0.80
logMethod · 0.80
isEmptyMethod · 0.45
dataMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected