do not try to load sessions if session_file config parameter is empty

This commit is contained in:
Tomasz Sowa 2022-05-31 07:49:51 +02:00
parent ba16cf41fe
commit ebfa5f7405
1 changed files with 28 additions and 17 deletions

View File

@ -652,26 +652,34 @@ void SessionManager::LoadSessions()
SessionParser sp; SessionParser sp;
SessionContainer::Iterator i; SessionContainer::Iterator i;
sp.set_dependency(this); if( !config->session_file.empty() )
// sessions will be overwritten (pointers are invalidated)
cur->session = &temporary_session;
sp.SetUsers(&system->users);
sp.Parse(config->session_file, session_tab);
for(i=session_tab.Begin() ; i != session_tab.End() ; ++i)
{ {
i->plugin_data.Resize(plugin->Size()); sp.set_dependency(this);
plugin->Call(&(*i), WINIX_SESSION_CREATED);
/* // sessions will be overwritten (pointers are invalidated)
!! IMPROVE ME cur->session = &temporary_session;
we do not add it to the last_container (we don't have IP address stored yet)
*/
if( i->puser ) sp.SetUsers(&system->users);
plugin->Call(&(*i), WINIX_USER_LOGGED); sp.Parse(config->session_file, session_tab);
for(i=session_tab.Begin() ; i != session_tab.End() ; ++i)
{
i->plugin_data.Resize(plugin->Size());
plugin->Call(&(*i), WINIX_SESSION_CREATED);
/*
!! IMPROVE ME
we do not add it to the last_container (we don't have IP address stored yet)
*/
if( i->puser )
plugin->Call(&(*i), WINIX_USER_LOGGED);
}
}
else
{
// FIXME this log is not printed, why?
main_log << log1 << "SM: session_file config parameter is empty, not loading sessions" << logend;
} }
cur->session = &temporary_session; cur->session = &temporary_session;
@ -686,7 +694,10 @@ void SessionManager::SaveSessions()
char file_path[WINIX_OS_PATH_SIZE]; char file_path[WINIX_OS_PATH_SIZE];
if( config->session_file.empty() ) if( config->session_file.empty() )
{
main_log << log1 << "SM: session_file config parameter is empty, not saving sessions - sessions lost" << logend;
return; return;
}
if( !wide_to_utf8(config->session_file, file_path, WINIX_OS_PATH_SIZE) ) if( !wide_to_utf8(config->session_file, file_path, WINIX_OS_PATH_SIZE) )
return; return;