Sorry folks as this might get a little long.
First Code Snip its:
1. see http://jira.secondlife.com/browse/VWR-20741 for reference to new
makeLofFileName in patch
2. std::string LLLogChat::oldLogFileName(std::string filename)
{
        time_t now;
    time_t yesterday = time(&now) - 86400;
        char dbuffer[20];               /* Flawfinder: ignore */
        if (filename == "chat")
        {
                strftime(dbuffer, 20, "-%Y-%m-%d", localtime(&yesterday));
        }
        else
        {
                strftime(dbuffer, 20, "-%Y-%m", localtime(&yesterday));
        }
        filename += dbuffer;
        filename = cleanFileName(filename);
        filename =
gDirUtilp->getExpandedFilename(LL_PATH_PER_ACCOUNT_CHAT_LOGS,filename);
        filename += ".txt";
    LL_INFOS("") << "Old    :" << filename << LL_ENDL;
        return filename;
}
3. std::string LLLogChat::ndsLogFileName(std::string filename)
{
    filename = cleanFileName(filename);
        filename =
gDirUtilp->getExpandedFilename(LL_PATH_PER_ACCOUNT_CHAT_LOGS,filename);
        filename += ".txt";
    LL_INFOS("") << "Original:" << filename << LL_ENDL;
        return filename;
}
4. modified section of void LLLogChat::loadAllHistory(const std::string&
file_name, std::list<LLSD>& messages)
{
        if (file_name.empty())
        {
                llwarns << "Session name is Empty!" << llendl;
                return ;
        }

        LLFILE* fptr = LLFile::fopen(makeLogFileName(file_name), "r");
/*Flawfinder: ignore*/
        LL_INFOS("") << "Current:" << file_name << LL_ENDL;
        if (!fptr)
        {
                LLFILE* fptr = LLFile::fopen(oldLogFileName(filename), "r");
/*Flawfinder: ignore*/
        LL_INFOS("") << "Old    :" << file_name << LL_ENDL;
                if (!fptr)
                {
                        LLFILE* fptr =
LLFile::fopen(ndsLogFileName(file_name), "r");          /*Flawfinder:
ignore*/
                        LL_INFOS("") << "Orginal:" << file_name << LL_ENDL;
                        if (!fptr) return;      //No previous conversation
with this name.
                }
        }

    LL_INFOS("") << "Reading:" << file_name << LL_ENDL;
        char buffer[LOG_RECALL_SIZE];           /*Flawfinder: ignore*/
        char *bptr;
        S32 len;
        bool firstline = TRUE;
        if (fseek(fptr, (LOG_RECALL_SIZE - 1) * -1  , SEEK_END))

Problem:
 When I get done with locating the right named log file and got to read it I
am ending up with fptr being null and causing viewer lock up and hard crash.

_______________________________________________
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Reply via email to