Fix bug where deleting up to 31/12/99 caused ALL entries to be deleted;
now the entries being deleted are output (as usual with isdnrep), and the rest are preserved in the log. Also cleaned up error messages to be a bit more consistent.
This commit is contained in:
parent
d7b1c7f3e4
commit
749dfee4b0
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: isdnrep.c,v 1.93 2000/08/17 21:34:44 akool Exp $
|
/* $Id: isdnrep.c,v 1.94 2001/02/08 14:04:53 paul Exp $
|
||||||
*
|
*
|
||||||
* ISDN accounting for isdn4linux. (Report-module)
|
* ISDN accounting for isdn4linux. (Report-module)
|
||||||
*
|
*
|
||||||
|
@ -24,6 +24,12 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Log: isdnrep.c,v $
|
* $Log: isdnrep.c,v $
|
||||||
|
* Revision 1.94 2001/02/08 14:04:53 paul
|
||||||
|
* Fix bug where deleting up to 31/12/99 caused ALL entries to be deleted;
|
||||||
|
* now the entries being deleted are output (as usual with isdnrep), and
|
||||||
|
* the rest are preserved in the log.
|
||||||
|
* Also cleaned up error messages to be a bit more consistent.
|
||||||
|
*
|
||||||
* Revision 1.93 2000/08/17 21:34:44 akool
|
* Revision 1.93 2000/08/17 21:34:44 akool
|
||||||
* isdnlog-4.40
|
* isdnlog-4.40
|
||||||
* - README: explain possibility to open the "outfile=" in Append-Mode with "+"
|
* - README: explain possibility to open the "outfile=" in Append-Mode with "+"
|
||||||
|
@ -116,6 +122,7 @@
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <search.h>
|
#include <search.h>
|
||||||
#include <linux/limits.h>
|
#include <linux/limits.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#include "dest.h"
|
#include "dest.h"
|
||||||
#include "isdnrep.h"
|
#include "isdnrep.h"
|
||||||
|
@ -322,9 +329,9 @@ static int read_path = 0;
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static char msg1[] = "%s: Can't open %s (%s)\n";
|
static char msg1[] = "isdnrep: can't open %s (%s)\n";
|
||||||
static char wrongdate2[] = "wrong date for delete: %s\n";
|
static char wrongdate2[] = "isdnrep: wrong date for delete: %s\n";
|
||||||
static char nomemory[] = "Out of memory!\n";
|
static char nomemory[] = "isdnrep: out of memory!\n";
|
||||||
|
|
||||||
static char htmlconv[][2][10] = {
|
static char htmlconv[][2][10] = {
|
||||||
{">", ">"},
|
{">", ">"},
|
||||||
|
@ -466,7 +473,7 @@ int send_html_request(char *myname, char *option)
|
||||||
{
|
{
|
||||||
if (unlink(vboxfile))
|
if (unlink(vboxfile))
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"Can not delete file `%s': %s!\n",file, strerror(errno));
|
print_msg(PRT_ERR, "isdnrep: can't delete file `%s': %s!\n",file, strerror(errno));
|
||||||
return(UNKNOWN);
|
return(UNKNOWN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -577,7 +584,7 @@ int read_logfile(char *myname)
|
||||||
} /* if */
|
} /* if */
|
||||||
|
|
||||||
if ((fi = fopen(logfile, "r")) == (FILE *)NULL){
|
if ((fi = fopen(logfile, "r")) == (FILE *)NULL){
|
||||||
print_msg(PRT_ERR,"Can not open file `%s': %s!\n",logfile,strerror(errno));
|
print_msg(PRT_ERR, msg1, logfile, strerror(errno));
|
||||||
return(UNKNOWN);
|
return(UNKNOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -589,19 +596,19 @@ int read_logfile(char *myname)
|
||||||
if (*s == '#')
|
if (*s == '#')
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (set_caller_infos(&cur_call,s,from) != 0)
|
if (set_caller_infos(&cur_call,s,from) != 0 && !timearea && !delentries)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!begintime)
|
if (!begintime)
|
||||||
begintime = cur_call.t;
|
begintime = cur_call.t;
|
||||||
|
|
||||||
if (timearea)
|
/* if delete entries, only list those that are being deleted */
|
||||||
{
|
if (timearea) {
|
||||||
if (delentries) {
|
if (delentries) {
|
||||||
if (cur_call.t > endtime)
|
if (cur_call.t > endtime) {
|
||||||
fputs(string,ftmp);
|
fputs(string,ftmp);
|
||||||
else
|
continue;
|
||||||
continue;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -968,7 +975,7 @@ static int print_line3(const char *fmt, ...)
|
||||||
case 'f' : sprintf(tmpstr,"%f",va_arg(ap,double));
|
case 'f' : sprintf(tmpstr,"%f",va_arg(ap,double));
|
||||||
append_string(&string,*fmtstring,tmpstr);
|
append_string(&string,*fmtstring,tmpstr);
|
||||||
break;
|
break;
|
||||||
default : print_msg(PRT_ERR, "Internal Error: unknown format `%c'!\n",(*fmtstring)->s_type);
|
default : print_msg(PRT_ERR, "isdnrep: internal Error: unknown format `%c'!\n",(*fmtstring)->s_type);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -978,7 +985,7 @@ static int print_line3(const char *fmt, ...)
|
||||||
append_string(&string,NULL,(*fmtstring)->string);
|
append_string(&string,NULL,(*fmtstring)->string);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
print_msg(PRT_ERR, "Internal Error: unknown format type `%d'!\n",(*fmtstring)->type);
|
print_msg(PRT_ERR, "isdnrep: internal Error: unknown format type `%d'!\n",(*fmtstring)->type);
|
||||||
|
|
||||||
fmtstring++;
|
fmtstring++;
|
||||||
}
|
}
|
||||||
|
@ -1283,7 +1290,7 @@ static int print_line(int status, one_call *cur_call, int computed, char *overla
|
||||||
colsize[i] = append_string(&string,*fmtstring," ");
|
colsize[i] = append_string(&string,*fmtstring," ");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
print_msg(PRT_ERR, "Unknown format %%C!\n");
|
print_msg(PRT_ERR, "isdnrep: unknown format %%C!\n");
|
||||||
break;
|
break;
|
||||||
/* Link for fax! */
|
/* Link for fax! */
|
||||||
case 'G': if (html)
|
case 'G': if (html)
|
||||||
|
@ -1294,7 +1301,7 @@ static int print_line(int status, one_call *cur_call, int computed, char *overla
|
||||||
colsize[i] = append_string(&string,*fmtstring," ");
|
colsize[i] = append_string(&string,*fmtstring," ");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
print_msg(PRT_ERR, "Unknown format %%G!\n");
|
print_msg(PRT_ERR, "isdnrep: unknown format %%G!\n");
|
||||||
break;
|
break;
|
||||||
/* there are dummy entries */
|
/* there are dummy entries */
|
||||||
case 'c':
|
case 'c':
|
||||||
|
@ -1304,7 +1311,7 @@ static int print_line(int status, one_call *cur_call, int computed, char *overla
|
||||||
|
|
||||||
colsize[i] = append_string(&string,*fmtstring, " ");
|
colsize[i] = append_string(&string,*fmtstring, " ");
|
||||||
break;
|
break;
|
||||||
default : print_msg(PRT_ERR, "Internal Error: unknown format `%c'!\n",(*fmtstring)->s_type);
|
default : print_msg(PRT_ERR, "isdnrep: internal Error: unknown format `%c'!\n",(*fmtstring)->s_type);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1317,7 +1324,7 @@ static int print_line(int status, one_call *cur_call, int computed, char *overla
|
||||||
free_col = 1;
|
free_col = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
print_msg(PRT_ERR, "Internal Error: unknown format type `%d'!\n",(*fmtstring)->type);
|
print_msg(PRT_ERR, "isdnrep: internal Error: unknown format type `%d'!\n",(*fmtstring)->type);
|
||||||
|
|
||||||
if (html && status == F_BODY_BOTTOM1 && free_col && last_free_col == i-1)
|
if (html && status == F_BODY_BOTTOM1 && free_col && last_free_col == i-1)
|
||||||
last_free_col = i;
|
last_free_col = i;
|
||||||
|
@ -1692,7 +1699,7 @@ static prt_fmt** get_format(const char *format)
|
||||||
(num = sscanf(Ptr+1,"%c%[^\n]",&Type,End)) > 0 )
|
(num = sscanf(Ptr+1,"%c%[^\n]",&Type,End)) > 0 )
|
||||||
{
|
{
|
||||||
if (!isalpha(Type))
|
if (!isalpha(Type))
|
||||||
print_msg(PRT_ERR, "Warning: Invalid token in format type `%c'!\n",Type);
|
print_msg(PRT_ERR, "isdnrep: warning: invalid token in format type `%c'!\n",Type);
|
||||||
|
|
||||||
if ((fmt = (prt_fmt*) calloc(1,sizeof(prt_fmt))) == NULL)
|
if ((fmt = (prt_fmt*) calloc(1,sizeof(prt_fmt))) == NULL)
|
||||||
{
|
{
|
||||||
|
@ -1724,7 +1731,7 @@ static prt_fmt** get_format(const char *format)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR, "Error: Invalid token in format string `%s'!\n",format);
|
print_msg(PRT_ERR, "isdnrep: error: invalid token in format string `%s'!\n",format);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2066,13 +2073,13 @@ static int set_alias(one_call *cur_call, int *nx, char *myname)
|
||||||
if (unknown[i].connects + 1 < MAXCONNECTS)
|
if (unknown[i].connects + 1 < MAXCONNECTS)
|
||||||
unknown[i].connects++;
|
unknown[i].connects++;
|
||||||
else
|
else
|
||||||
print_msg(PRT_ERR, "%s: WARNING: Too many unknown connections from %s\n", myname, unknown[i].num);
|
print_msg(PRT_ERR, "%s: WARNING: too many unknown connections from %s\n", myname, unknown[i].num);
|
||||||
|
|
||||||
if (!hit) {
|
if (!hit) {
|
||||||
if (unknowns < MAXUNKNOWN)
|
if (unknowns < MAXUNKNOWN)
|
||||||
unknowns++;
|
unknowns++;
|
||||||
else
|
else
|
||||||
print_msg(PRT_ERR, "%s: WARNING: Too many unknown numbers\n", myname);
|
print_msg(PRT_ERR, "%s: WARNING: too many unknown numbers\n", myname);
|
||||||
} /* if */
|
} /* if */
|
||||||
} /* if */
|
} /* if */
|
||||||
} /* else */
|
} /* else */
|
||||||
|
@ -2253,7 +2260,7 @@ static int set_caller_infos(one_call *cur_call, char *string, time_t from)
|
||||||
case 18: cur_call->zone = atoi(array[i]);
|
case 18: cur_call->zone = atoi(array[i]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default : print_msg(PRT_ERR,"Unknown element found `%s'!\n",array[i]);
|
default : print_msg(PRT_ERR, "isdnrep: unknown element found `%s'!\n",array[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2541,7 +2548,7 @@ int set_msnlist(char *String)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"Invalid MSN %d!\n",Cnt);
|
print_msg(PRT_ERR, "isdnrep: invalid MSN %d!\n", Cnt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2687,7 +2694,7 @@ static void strich(int type)
|
||||||
break;
|
break;
|
||||||
case 2 : printf(H_LINE,get_format_size(),3);
|
case 2 : printf(H_LINE,get_format_size(),3);
|
||||||
break;
|
break;
|
||||||
default: print_msg(PRT_ERR,"Internal error: Invalid line flag!\n");
|
default: print_msg(PRT_ERR, "isdnrep: internal error: invalid line flag!\n");
|
||||||
break;
|
break;
|
||||||
} /* switch */
|
} /* switch */
|
||||||
}
|
}
|
||||||
|
@ -2739,7 +2746,7 @@ static int n_match(char *Pattern, char* Number, char* version)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
print_msg(PRT_ERR,"Unknown Version of logfile entries!\n");
|
print_msg(PRT_ERR, "isdnrep: unknown version of logfile entries!\n");
|
||||||
|
|
||||||
return RetCode;
|
return RetCode;
|
||||||
}
|
}
|
||||||
|
@ -2889,7 +2896,7 @@ static int set_dir_entries(char *directory, int (*set_fct)(const char *, const c
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"Can not open directory `%s': %s!\n", directory, strerror(errno));
|
print_msg(PRT_ERR, "isdnrep: can't open directory `%s': %s!\n", directory, strerror(errno));
|
||||||
return(UNKNOWN);
|
return(UNKNOWN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2914,7 +2921,7 @@ static int set_vbox_entry(const char *path, const char *file)
|
||||||
|
|
||||||
if ((fp = fopen(string,"r")) == NULL)
|
if ((fp = fopen(string,"r")) == NULL)
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"Can not open file `%s': %s!\n", string, strerror(errno));
|
print_msg(PRT_ERR, msg1, string, strerror(errno));
|
||||||
return(UNKNOWN);
|
return(UNKNOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2933,7 +2940,7 @@ static int set_vbox_entry(const char *path, const char *file)
|
||||||
&(tm.tm_min),
|
&(tm.tm_min),
|
||||||
&(tm.tm_sec))) != 6)
|
&(tm.tm_sec))) != 6)
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"invalid file name `%s'!\n",file);
|
print_msg(PRT_ERR, "isdnrep: invalid file name `%s'!\n",file);
|
||||||
return(UNKNOWN);
|
return(UNKNOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3000,7 +3007,7 @@ static int set_mgetty_entry(const char *path, const char *file)
|
||||||
|
|
||||||
if (access(string,R_OK))
|
if (access(string,R_OK))
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"Can not open file `%s': %s!\n", string, strerror(errno));
|
print_msg(PRT_ERR, msg1, string, strerror(errno));
|
||||||
return(UNKNOWN);
|
return(UNKNOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3161,7 +3168,7 @@ static char *get_links(time_t filetime, char type)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR, "Internal error: Invalid type %d of file!\n",(int)type);
|
print_msg(PRT_ERR, "isdnrep: internal error: invalid type %d of file!\n", (int)type);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3337,7 +3344,7 @@ static char *create_vbox_file(char *file, int *compression)
|
||||||
|
|
||||||
if ((fdin = open(file,O_RDONLY)) == -1)
|
if ((fdin = open(file,O_RDONLY)) == -1)
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"Can not open file `%s': %s!\n",file, strerror(errno));
|
print_msg(PRT_ERR, msg1, file, strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3348,7 +3355,7 @@ static char *create_vbox_file(char *file, int *compression)
|
||||||
|
|
||||||
if ((fileout = tmpnam(NULL)) == NULL || (fdout = open(fileout,O_WRONLY | O_CREAT,0444)) == -1)
|
if ((fileout = tmpnam(NULL)) == NULL || (fdout = open(fileout,O_WRONLY | O_CREAT,0444)) == -1)
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"Can not open file `%s': %s!\n",fileout, strerror(errno));
|
print_msg(PRT_ERR, msg1, fileout, strerror(errno));
|
||||||
close(fdin);
|
close(fdin);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -3357,7 +3364,7 @@ static char *create_vbox_file(char *file, int *compression)
|
||||||
{
|
{
|
||||||
if (write(fdout,string,len) != len)
|
if (write(fdout,string,len) != len)
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"Can not write to file `%s': %s!\n",fileout, strerror(errno));
|
print_msg(PRT_ERR, "isdnrep: can't write to file `%s': %s!\n", fileout, strerror(errno));
|
||||||
close(fdout);
|
close(fdout);
|
||||||
close(fdin);
|
close(fdin);
|
||||||
unlink(fileout);
|
unlink(fileout);
|
||||||
|
@ -3369,7 +3376,7 @@ static char *create_vbox_file(char *file, int *compression)
|
||||||
|
|
||||||
if (len < 0)
|
if (len < 0)
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"Can not read from file `%s': %s!\n",file, strerror(errno));
|
print_msg(PRT_ERR, "isdnrep: can't read from file `%s': %s!\n", file, strerror(errno));
|
||||||
close(fdin);
|
close(fdin);
|
||||||
unlink(fileout);
|
unlink(fileout);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -3490,7 +3497,7 @@ static char **get_http_args(char *str, int *index)
|
||||||
|
|
||||||
if ((RetCode = (char**) calloc(20+(*index),sizeof(char*))) == NULL)
|
if ((RetCode = (char**) calloc(20+(*index),sizeof(char*))) == NULL)
|
||||||
{
|
{
|
||||||
print_msg(PRT_ERR,"%s\n", strerror(errno));
|
print_msg(PRT_ERR, nomemory);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue