Henrik Stoerner a écrit :
I suspect this is somewhat the same problem both of you are seeing. Could you try the attached patch and let me know if it helps ?
Hi Henrik
thanks for the patch, however I cannot appy it :
$ patch -p0 < /tmp/hobbit-4.1.2p1-history.patch patching file bbdisplay/reportdata.c Hunk #1 FAILED at 11. Hunk #2 FAILED at 304. Hunk #3 FAILED at 414. Hunk #4 FAILED at 506. Hunk #5 FAILED at 518. 5 out of 5 hunks FAILED -- saving rejects to file bbdisplay/reportdata.c.rej
$ cat bbdisplay/reportdata.c.rej
*** 11,17 ****
/*
*/
/*----------------------------------------------------------------------------*/
static char rcsid[] = "$Id: reportdata.c,v 1.36 2005/05/02 10:30:12 henrik Exp $";
#include <limits.h> #include <stdio.h> --- 11,17 ----
/*
*/
/*----------------------------------------------------------------------------*/
static char rcsid[] = "$Id: reportdata.c,v 1.37 2005/12/02 16:03:45 henrik Exp $";
#include <limits.h> #include <stdio.h>
*** 304,326 **** static char *timename(char *timestring) { static char timespec[26];
char timecopy[26];
historical logfile */char *token; int i; /* Compute the timespec string used as the name of thestrncpy(timecopy, timestring, 25);timecopy[25] = '\0';token = strtok(timecopy, " ");strcpy(timespec, token);for (i=1; i<5; i++) {strcat(timespec, "_");token = strtok(NULL, " ");
} --- 304,330 ---- static char *timename(char *timestring) { static char timespec[26];strcat(timespec, token); } return timespec;
char *timecopy;
historical logfile */char *tokens[5]; int i; /* Compute the timespec string used as the name of the*timespec = '\0';timecopy = strdup(timestring);tokens[0] = tokens[1] = tokens[2] = tokens[3] = tokens[4] = NULL;tokens[0] = strtok(timecopy, " "); i = 0;while (tokens[i] && (i < 4)) { i++; tokens[i] = strtok(NULL, " "); }if (tokens[4]) {/* Got all 5 elements */snprintf(timespec, sizeof(timespec), "%s_%s_%s_%s_%s",
tokens[4]); }tokens[0], tokens[1], tokens[2], tokens[3],else {errprintf("Bad timespec in history file: %s\n", timestring);}
}xfree(timecopy); return timespec;
*** 410,421 **** newentry->color = color; newentry->affectssla = (reporttime && (sladuration > 0));
if (!for_history && (color != COL_GREEN)) { newentry->cause =parse_histlogfile(hostname, servicename, timespec); } else newentry->cause = "";
newentry->timespec = strdup(timespec); newentry->next = reploghead; reploghead = newentry; }--- 414,425 ---- newentry->color = color; newentry->affectssla = (reporttime && (sladuration > 0));
if (!for_history && timespec && (color!= COL_GREEN)) { newentry->cause = parse_histlogfile(hostname, servicename, timespec); } else newentry->cause = "";
newentry->timespec = (timespec ?strdup(timespec): NULL); newentry->next = reploghead; reploghead = newentry; }
*** 502,508 **** time_t duration; char colstr[MAX_LINE_LEN]; int color;
fileerrors = scan_historyfile(fd, snapshot, snapshot,
l, sizeof(l), starttime,
&duration, colstr);
--- 506,514 ---- time_t duration; char colstr[MAX_LINE_LEN]; int color;
char *p;*histlogname = NULL; fileerrors = scan_historyfile(fd, snapshot, snapshot, l, sizeof(l), starttime,&duration, colstr);
*** 512,518 **** color = -2; }
} --- 518,525 ---- color = -2; }*histlogname = strdup(timename(l)); return color;
p = timename(l);
}if (p) *histlogname = strdup(p); return color;
--
Frédéric Mangeant
Steria EDC Sophia-Antipolis