int CallInLogOffUserSession::doStuff()
	{
		ConnectionPtr currentConnection = APP_CONTEXT.getConnectionStore()->getConnection(mConnectionId);

		if (!currentConnection)
		{
			WLog_Print(logger_CallInLogOffUserSession, WLOG_ERROR,
				"connection does not exist for connectionId=%lu", mConnectionId);
			mLoggedOff = false;
			return -1;
		}

		UINT32 sessionId = currentConnection->getSessionId();
		SessionPtr currentSession = APP_CONTEXT.getSessionStore()->getSession(sessionId);

		if (!currentSession)
		{
			WLog_Print(logger_CallInLogOffUserSession, WLOG_ERROR,
				"session does not exist for sessionId=%lu", sessionId);
			mLoggedOff = false;
			return -1;
		}

		WLog_Print(logger_CallInLogOffUserSession, WLOG_DEBUG,
			"logging off session (connectionId=%lu, sessionId=%lu)",
			mConnectionId, sessionId);

		currentSession->stopModule();

		APP_CONTEXT.getSessionStore()->removeSession(sessionId);
		APP_CONTEXT.getConnectionStore()->removeConnection(mConnectionId);
		mLoggedOff = true;

		return 0;
	}