File: sameoutput.cc

package info (click to toggle)
stealth 1.45-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 716 kB
  • ctags: 175
  • sloc: cpp: 1,612; makefile: 88; sh: 70
file content (44 lines) | stat: -rw-r--r-- 1,605 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "scanner.ih"

bool Scanner::sameOutput(string const &logfile, istream &extractor)
{
    string current = logfile + ".cur";      // create current logfile

    if (!Util::mkdir(current))              // make sure directory exists
        d_reporter.exit() << "Unable to create the logfile `" <<
                                                    current << "'" << endl;
 
    Util::debug() << "Scanner::sameOutput(): logs to " << current << endl;
   
    copy(extractor, current);               // copy the info in extractor
                                            // to the current logfile

    if (access(logfile.c_str(), R_OK))      // no old report yet
    {
        Util::debug() << "writing new report: " << logfile << endl;

        rename(current.c_str(), logfile.c_str());   // install `logfile'

        if (d_label.length())
        {
            Util::debug() << "Scanner::sameOutput(): writing label: " << 
                                                            d_label << endl;
            d_reporter << d_label << endl;
        }

        d_reporter << "Initialized report on " << logfile << endl;
        Util::debug() << "Scanner::sameOutput(): Initialized  report on " <<
                                                            logfile << endl;
        return true;
    }

    Util::debug() << "comparing new integrity scan results to: `" << 
                                                    logfile << "'" << endl;

    return noDifferences(current, logfile); // return true if there aren't any
                                            // differences.
}