Surrond the log file name with quotes in the command that read the trailing lines of the log file when creating a realtime report.
SET(sarg_VERSION 2)
SET(sarg_REVISION "3.1-pre1")
SET(sarg_BUILD "")
-SET(sarg_BUILDDATE "Aug-27-2010")
+SET(sarg_BUILDDATE "Sep-02-2010")
INCLUDE(AddFileDependencies)
INCLUDE(CheckIncludeFile)
SARG ChangeLog
-Aug-27-2010 Version 2.3.1
+Sep-02-2010 Version 2.3.1
- Remove the distinct printf for the alpha architecture as it doesn't work anymore and is not necessary anyway.
- Don't abort if "onload" or "script" is found in the user agent string.
- Take the configured locale path into account when installing sarg.
- Report an error if the output directory is a subdirectory of the temporary directory.
- Use a more robust protection against an attack using javascript in the useragent string.
- Prevent a segfault if the parameter passed to command line option -d is invalid (thanks to ItalianPenguin).
+ - Check for the return code of the tail command to generate the realtime report.
Jun-21-2010 Version 2.3
- LDAP usertab added.
-#define VERSION PACKAGE_VERSION" Aug-27-2010"
+#define VERSION PACKAGE_VERSION" Sep-02-2010"
#define PGM PACKAGE_NAME
#define URL "http://sarg.sourceforge.net"
exit(EXIT_FAILURE);
}
- sprintf(cmd,"tail -%d %s",realtime_access_log_lines,AccessLog[0]);
+ sprintf(cmd,"tail -%d \"%s\"",realtime_access_log_lines,AccessLog[0]);
fp = popen(cmd, "r");
+ if (!fp) {
+ debuga(_("Failed to get the %d trailing lines of %s: %s\n"),realtime_access_log_lines,AccessLog[0],strerror(errno));
+ debuga(_("tail command: %s\n"),cmd);
+ exit(EXIT_FAILURE);
+ }
while((buf=longline_read(fp,line)) != NULL )
if (getdata(buf,tmp)<0) {
debuga(_("Maybe a broken record or garbage was returned by %s\n"),cmd);