CHECK_INCLUDE_FILE(gdfontg.h HAVE_GDFONTG_H)
FIND_LIBRARY(GD_LIBRARY NAMES gd bgd DOC "The GD library")
IF(GD_LIBRARY)
- #CHECK_LIBRARY_EXISTS(gd gdImagePng "." HAVE_GD)
+ #CHECK_LIBRARY_EXISTS(gd gdImagePng "." HAVE_GD_LIB)
TARGET_LINK_LIBRARIES(sarg ${GD_LIBRARY})
- SET(HAVE_GD GD_LIBRARY CACHE PATH DOC "True IF GD was found")
- SET(HAVE_GD CACHE BOOL DOC "True IF must use GD")
+ SET(HAVE_GD_LIB GD_LIBRARY CACHE PATH DOC "True IF GD was found")
+ SET(HAVE_GD_LIB CACHE BOOL DOC "True IF must use GD")
ENDIF(GD_LIBRARY)
ENDIF(HAVE_GD_H)
errno.h sys/resource.h sys/wait.h stdarg.h inttypes.h limits.h locale.h \
execinfo.h ldap.h math.h libintl.h libgen.h stdbool.h)
-AC_CHECK_LIB(gd, gdImagePng,LIBS="-lgd ${LIBS}"; HAVE_GD="yes", HAVE_GD="")
+AC_CHECK_LIB(gd, gdImagePng,LIBS="-lgd ${LIBS}"; HAVE_GD_LIB="yes", HAVE_GD_LIB="")
AC_CHECK_LIB(ldap, ldap_init,LIBS="-lldap ${LIBS}"; HAVE_LDAP="yes", HAVE_LDAP="")
dnl Checks for typedefs, structures, and compiler characteristics.
-/*! \fn int is_indexonly(void)
+/*! \fn bool is_indexonly(void)
Tell if the exclusion list of the users mention the word "indexonly" meaning that
the user only want to produce the index.html.
#include "include/conf.h"
#include "include/defs.h"
-static char *DownloadSuffix=NULL;
-static char **DownloadSuffixIndex=NULL;
+/*@null@*/static char *DownloadSuffix=NULL;
+/*@null@*/static char **DownloadSuffixIndex=NULL;
static int NDownloadSuffix=0;
void download_report(void)
int z=0;
int count=0;
int i;
- int new_user;
+ bool new_user;
struct getwordstruct gwarea;
longline line;
struct userinfostruct *uinfo;
ouser[0]='\0';
ouser2[0]='\0';
- sprintf(report_in,"%s/sarg/download.log",TempDir);
+ snprintf(report_in,sizeof(report_in),"%s/sarg/download.log",TempDir);
if(access(report_in, R_OK) != 0)
return;
- strcpy(wdirname,outdirname);
- sprintf(report,"%s/download.html",wdirname);
- strcat(wdirname,"/");
- strcat(wdirname,"sarg-period");
+ snprintf(report,sizeof(report),"%s/download.html",outdirname);
+ snprintf(wdirname,sizeof(wdirname),"%s/sarg-period",outdirname);
- if ((fp_in = fopen(wdirname, "r")) == 0) {
+ if ((fp_in = fopen(wdirname, "r")) == NULL) {
debuga(_("(download) Cannot open file %s\n"),wdirname);
exit(EXIT_FAILURE);
}
debuga(_("Unknown user ID %s in file %s\n"),user,report_in);
exit(EXIT_FAILURE);
}
- new_user=0;
+ new_user=false;
if(!z) {
strcpy(ouser,user);
strcpy(oip,ip);
z++;
- new_user=1;
+ new_user=true;
} else {
if(strcmp(ouser,user) != 0) {
strcpy(ouser,user);
- new_user=1;
+ new_user=true;
}
if(strcmp(oip,ip) != 0) {
strcpy(oip,ip);
- new_user=1;
+ new_user=true;
}
}
}
}
-int is_download_suffix(const char *url)
+bool is_download_suffix(const char *url)
{
int urllen;
int i;
int cmp;
const int max_suffix=10;
- if (DownloadSuffix == NULL || NDownloadSuffix == 0) return(0);
+ if (DownloadSuffix == NULL || NDownloadSuffix == 0) return(false);
urllen=strlen(url)-1;
- if (urllen<=0) return(0);
- if (url[urllen] == '.') return(0); //reject a single trailing dot
+ if (urllen<=0) return(false);
+ if (url[urllen] == '.') return(false); //reject a single trailing dot
for (i=0 ; i<urllen && (url[i]!='/' || url[i+1]=='/') && url[i]!='?' ; i++);
- if (i>=urllen) return(0); // url is a hostname without any path or file to download
+ if (i>=urllen) return(false); // url is a hostname without any path or file to download
for (i=0 ; i<=max_suffix && i<urllen && url[urllen-i]!='.' ; i++)
- if (url[urllen-i] == '/' || url[urllen-i] == '?') return(0);
- if (i>max_suffix || i>=urllen) return(0);
+ if (url[urllen-i] == '/' || url[urllen-i] == '?') return(false);
+ if (i>max_suffix || i>=urllen) return(false);
suffix=url+urllen-i+1;
down=0;
while (down<=up) {
center=(down+up)/2;
cmp=strcasecmp(suffix,DownloadSuffixIndex[center]);
- if (cmp == 0) return(1);
+ if (cmp == 0) return(true);
if (cmp < 0)
up = center-1;
else
down = center+1;
}
- return(0);
+ return(false);
}
#include "include/conf.h"
#include "include/defs.h"
-int geramail(const char *dirname, int debug, const char *outdir, int userip, const char *email, const char *TempDir)
+int geramail(const char *dirname, int debug, const char *outdir, const char *email, const char *TempDir)
{
FILE *fp_in, *fp_top1, *fp_top2, *fp_top3;
return(1);
}
-int is_indexonly(void)
+bool is_indexonly(void)
{
- if (excludeuser==NULL) return(0);
+ if (excludeuser==NULL) return(false);
return(strstr(excludeuser,"indexonly") != NULL);
}
if (getparam_string("graph_font",buf,GraphFont,sizeof(GraphFont))>0) return;
if(strstr(buf,"squid24") != 0) {
- squid24++;
+ squid24=true;
return;
}
#include <sys/wait.h>
#endif
#ifdef HAVE_GD_H
+#define HAVE_GD 1
#include <gd.h>
gdImagePtr im;
gdPoint points[4];
unsigned long int IndexTree;
bool UserAuthentication;
char AuthUserTemplateFile[1024];
-char *str;
-char *str2;
char val1[MAXLEN];
char val2[MAXLEN];
char val3[MAXLEN];
char RealtimeTypes[1024];
char cmd[255];
char ImageFile[255];
-char tbuf[128];
char RealtimeUnauthRec[15];
char LDAPHost[255];
char LDAPBindDN[512];
int duntil;
int dataonly;
int indexonly;
-int iprel;
-int userip;
+bool iprel;
+bool userip;
int langcode;
int debug;
int debugz;
int UserReportLimit;
int realtime_refresh;
int realtime_access_log_lines;
-int realt;
int rc;
int ntopsites;
int nsitesusers;
int nrepday;
int ndownload;
int ntopuser;
-int squid24;
-float perc;
+bool squid24;
long long int nocost;
float cost;
#cmakedefine HAVE_NETINET_H
#cmakedefine HAVE_SYS_STAT_H
#cmakedefine HAVE_CTYPE_H
-#cmakedefine HAVE_GD
#cmakedefine HAVE_GD_H
#cmakedefine HAVE_GDFONTL_H
#cmakedefine HAVE_GDFONTT_H
void download_report(void);
void free_download(void);
void set_download_suffix(const char *list);
-int is_download_suffix(const char *url);
+bool is_download_suffix(const char *url);
// email.c
-int geramail(const char *dirname, int debug, const char *outdir, int userip, const char *email, const char *TempDir);
+int geramail(const char *dirname, int debug, const char *outdir, const char *email, const char *TempDir);
// exclude.c
void gethexclude(const char *hexfile, int debug);
void getuexclude(const char *uexfile, int debug);
int vhexclude(const char *url);
int vuexclude(const char *user);
-int is_indexonly(void);
+bool is_indexonly(void);
void free_exclude(void);
// getconf.c
FILE *file;
};
-static char *userfile=NULL;
+/*@null@*/static char *userfile=NULL;
numlist weekdays = { { 0, 1, 2, 3, 4, 5, 6 }, 7 };
numlist hours = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
int x;
int errflg=0;
int puser=0;
- int fhost=0;
- int dns=0;
- int fuser=0;
+ bool fhost=false;
+ bool dns=false;
+ bool fuser=false;
int idata=0;
int mindate=0;
int iarq=0;
- int exstring=0;
int isa_ncols=0,isa_cols[ISACOL_Last];
- int from_stdin;
+ bool from_stdin;
int blen;
int maxopenfiles;
int nopen;
long totregsx=0;
long totper=0;
long int max_elapsed=0;
+ bool realt;
time_t tt;
struct tm *t;
unsigned long recs1=0UL;
unsigned long recs2=0UL;
int OutputNonZero = REPORT_EVERY_X_LINES ;
- int download_flag=0;
+ bool download_flag=false;
char *download_url=NULL;
struct getwordstruct gwarea;
longline line;
strcpy(OutputDir,"/var/www/html/squid-reports");
Ip2Name=0;
strcpy(DateFormat,"u");
- OverwriteReport=0;
- RemoveTempFiles=1;
+ OverwriteReport=false;
+ RemoveTempFiles=true;
strcpy(ReplaceIndex,"index.html");
Index=INDEX_YES;
RecordsWithoutUser=RECORDWITHOUTUSER_IP;
Privacy=0;
strcpy(PrivacyString,"***.***.***.***");
strcpy(PrivacyStringColor,"blue");
- SuccessfulMsg=1;
+ SuccessfulMsg=true;
TopUserFields=TOPUSERFIELDS_NUM | TOPUSERFIELDS_DATE_TIME | TOPUSERFIELDS_USERID | TOPUSERFIELDS_CONNECT |
TOPUSERFIELDS_BYTES | TOPUSERFIELDS_SETYB | TOPUSERFIELDS_IN_CACHE_OUT |
TOPUSERFIELDS_USED_TIME | TOPUSERFIELDS_MILISEC | TOPUSERFIELDS_PTIME |
strcpy(DataFileDelimiter,";");
DataFileFields=DATA_FIELD_USER | DATA_FIELD_DATE | DATA_FIELD_TIME | DATA_FIELD_URL | DATA_FIELD_CONNECT |
DATA_FIELD_BYTES | DATA_FIELD_IN_CACHE | DATA_FIELD_OUT_CACHE | DATA_FIELD_ELAPSED;
- ShowReadStatistics=1;
+ ShowReadStatistics=true;
strcpy(IndexSortOrder,"D");
- ShowSargInfo=1;
- ShowSargLogo=1;
+ ShowSargInfo=true;
+ ShowSargLogo=true;
strcpy(ParsedOutputLog,"no");
strcpy(ParsedOutputLogCompress,"/bin/gzip -f");
strcpy(DisplayedValues,"abbreviation");
strcpy(TitleFontSize,"11px");
strcpy(AuthUserTemplateFile,"sarg_htaccess");
set_download_suffix("7z,ace,arj,avi,bat,bin,bz2,bzip,cab,com,cpio,dll,doc,dot,exe,gz,iso,lha,lzh,mdb,mov,mp3,mpeg,mpg,mso,nrg,ogg,ppt,rar,rtf,shs,src,sys,tar,tgz,vcd,vob,wma,wmv,zip");
- Graphs=1;
+ Graphs=true;
#if defined(FONTDIR)
strcpy(GraphFont,FONTDIR"/DejaVuSans.ttf");
#else
debug=0;
debugz=0;
debugm=0;
- iprel=0;
- userip=0;
+ iprel=false;
+ userip=false;
color1=0;
color2=0;
color3=0;
- realt=0;
+ realt=false;
realtime_refresh=3;
realtime_access_log_lines=1000;
cost=0.01;
nocost=50000000;
ndownload=0;
- squid24=0;
+ squid24=false;
bzero(IncludeUsers, sizeof(IncludeUsers));
bzero(ExcludeString, sizeof(ExcludeString));
strncpy(date,optarg,sizeof(date)-1);
date[sizeof(date)-1]='\0';
getword_start(&gwarea,optarg);
- if (getword(cdfrom,sizeof(cdfrom),&gwarea,'-')<0 || getword(cduntil,sizeof(cduntil),&gwarea,0)<0) {
+ if (getword(cdfrom,sizeof(cdfrom),&gwarea,'-')<0 || getword(cduntil,sizeof(cduntil),&gwarea,'\0')<0) {
printf(_("SARG: The date range requested on the command line by option -d is invalid.\n"));
exit(EXIT_FAILURE);
}
break;
case 'h':
usage(argv[0]);
- exit(0);
- break;
+ exit(EXIT_SUCCESS);
case 'i':
- iprel++;
+ iprel=true;
break;
case 'l':
if (NAccessLog>=MAXLOGS) {
debugm++;
break;
case 'n':
- dns++;
+ dns=true;
break;
case 'o':
strcpy(outdir,optarg);
break;
case 'p':
- userip++;
+ userip=true;
break;
case 'r':
- realt++;
+ realt=true;
break;
case 's':
strcpy(site,optarg);
strcpy(hmf,optarg);
} else {
getword_start(&gwarea,optarg);
- if (getword(hm,sizeof(hm),&gwarea,'-')<0 || getword(hmf,sizeof(hmf),&gwarea,0)<0) {
+ if (getword(hm,sizeof(hm),&gwarea,'-')<0 || getword(hmf,sizeof(hmf),&gwarea,'\0')<0) {
debuga(_("The time range passed on the command line with option -t is invalid\n"));
exit(EXIT_FAILURE);
}
case '?':
usage(argv[0]);
exit(EXIT_FAILURE);
- break;
}
}
- if (errflg) {
+ if (errflg>0) {
usage(argv[0]);
exit(2);
}
if(debug) debuga(_("Init\n"));
- if(ConfigFile[0] == '\0') sprintf(ConfigFile,"%s/sarg.conf",SYSCONFDIR);
+ if(ConfigFile[0] == '\0') snprintf(ConfigFile,sizeof(ConfigFile),"%s/sarg.conf",SYSCONFDIR);
if(access(ConfigFile, R_OK) != 0) {
debuga(_("Cannot open config file: %s - %s\n"),ConfigFile,strerror(errno));
exit(EXIT_FAILURE);
if(access(ConfigFile, R_OK) == 0)
getconf();
- if(UserIp) userip++;
+ if(UserIp) userip=true;
- if(dns) Ip2Name=1;
+ if(dns) Ip2Name=true;
if(realt) {
realtime();
- exit(0);
+ exit(EXIT_SUCCESS);
}
if(IndexTree == INDEX_TREE_FILE)
if(DataFile[0] != '\0')
dataonly++;
- if(!NAccessLog) {
+ if(NAccessLog == 0) {
strcpy(AccessLog[0],"/var/log/squid/access.log");
NAccessLog++;
}
if(strcmp(hexclude,"onvert") == 0 && strcmp(site,"plit") != 0) {
convlog(AccessLog[0], df, dfrom, duntil);
- exit(0);
+ exit(EXIT_SUCCESS);
}
if(strcmp(site,"plit") == 0) {
splitlog(AccessLog[0], df, dfrom, duntil, hexclude);
- exit(0);
+ exit(EXIT_SUCCESS);
}
load_excludecodes(ExcludeCodes);
strcpy(hexclude,ExcludeHosts);
if(hexclude[0] != '\0') {
gethexclude(hexclude,debug);
- fhost++;
+ fhost=true;
}
if(ReportType == 0) {
if(access(ExcludeUsers, R_OK) == 0) {
getuexclude(ExcludeUsers,debug);
- fuser++;
+ fuser=true;
}
indexonly=0;
strcpy(tmp2,tmp);
if(email[0] != '\0') {
- sprintf(wtemp2,"%s/sarg",tmp2);
+ snprintf(wtemp2,sizeof(wtemp2),"%s/sarg",tmp2);
my_mkdir(wtemp2);
strcat(tmp2,"/sarg");
strcpy(outdir,tmp2);
exit(EXIT_FAILURE);
}
- sprintf ( sz_Download_Unsort , "%s/sarg/download.unsort", tmp);
+ snprintf(sz_Download_Unsort,sizeof(sz_Download_Unsort),"%s/sarg/download.unsort", tmp);
if(DataFile[0]=='\0') {
if((ReportType & REPORT_TYPE_DENIED) != 0) {
if(debug)
debuga(_("Reading access log file: from stdin\n"));
fp_in=stdin;
- from_stdin=1;
+ from_stdin=true;
} else {
decomp(arq,zip,tmp);
if(debug)
debuga(_("(log) Cannot open log file: %s - %s\n"),arq,strerror(errno));
exit(EXIT_FAILURE);
}
- from_stdin=0;
+ from_stdin=false;
}
ilf=ILF_Unknown;
- download_flag=0;
+ download_flag=false;
// pre-read the file only if we have to show stats
if(ShowReadStatistics && !from_stdin) {
size_t nread,i;
- int skipcr=0;
+ bool skipcr=false;
char tmp4[MAXLEN];
recs1=0UL;
for (i=0 ; i<nread ; i++)
if (skipcr) {
if (tmp4[i]!='\n' && tmp4[i]!='\r') {
- skipcr=0;
+ skipcr=false;
}
} else {
if (tmp4[i]=='\n' || tmp4[i]=='\r') {
- skipcr=1;
+ skipcr=true;
recs1++;
}
}
}
recs2++;
- if( ShowReadStatistics && !from_stdin && ! --OutputNonZero) {
- perc = recs2 * 100 ;
- perc = perc / recs1 ;
- printf(_("SARG: Records in file: %lu, reading: %3.2f%%"),recs1,perc);
+ if( ShowReadStatistics && !from_stdin && --OutputNonZero<=0) {
+ double perc = recs2 * 100. / recs1 ;
+ printf(_("SARG: Records in file: %lu, reading: %3.2lf%%"),recs1,perc);
putchar('\r');
fflush (stdout);
OutputNonZero = REPORT_EVERY_X_LINES ;
// exclude_string
if(ExcludeString[0] != '\0') {
- exstring=0;
+ bool exstring=false;
getword_start(&gwarea,ExcludeString);
while(strchr(gwarea.current,':') != 0) {
if (getword_multisep(val1,sizeof(val1),&gwarea,':')<0) {
debuga(_("Maybe you have a broken record or garbage in your exclusion string\n"));
exit(EXIT_FAILURE);
}
- if((str=(char *) strstr(linebuf,val1)) != (char *) NULL )
- exstring++;
+ if((str=(char *) strstr(linebuf,val1)) != (char *) NULL ) {
+ exstring=true;
+ break;
+ }
}
- if((str=(char *) strstr(linebuf,gwarea.current)) != (char *) NULL )
- exstring++;
+ if(!exstring && (str=(char *) strstr(linebuf,gwarea.current)) != (char *) NULL )
+ exstring=true;
if(exstring) continue;
}
debuga(_("Maybe you have a broken url in your %s file\n"),arq);
exit(EXIT_FAILURE);
}
- if (getword_skip(MAXLEN,&gwarea,' ')<0 || getword(code2,sizeof(code2),&gwarea,' ')<0 ||
- getword(tam,sizeof(tam),&gwarea,' ')<0) {
+ if (getword_skip(MAXLEN,&gwarea,' ')<0) {
+ debuga(_("Maybe you have a broken record or garbage in your %s file\n"),arq);
+ exit(EXIT_FAILURE);
+ }
+ if (getword(code2,sizeof(code2),&gwarea,' ')<0) {
+ debuga(_("Maybe you have a broken record or garbage in your %s file\n"),arq);
+ exit(EXIT_FAILURE);
+ }
+ if (getword(tam,sizeof(tam),&gwarea,' ')<0) {
debuga(_("Maybe you have a broken record or garbage in your %s file\n"),arq);
exit(EXIT_FAILURE);
}
exit(EXIT_FAILURE);
}
}
- if (getword(ano,sizeof(ano),&gwarea,0)<0){
+ if (getword(ano,sizeof(ano),&gwarea,'\0')<0){
debuga(_("Maybe you have a broken date in your %s file\n"),arq);
exit(EXIT_FAILURE);
}
download_count++;
}
} else
- download_flag=0;
+ download_flag=false;
// remove any protocol:// at the beginning of the URL
if ((str = strchr(url,'/')) != NULL && str[1] == '/') {
unlink(denied_unsort);
unlink(authfail_unsort);
unlink(tmp3);
- exit(0);
+ exit(EXIT_SUCCESS);
}
}
if(userfile)
free(userfile);
close_usertab();
- exit(0);
+ exit(EXIT_SUCCESS);
}
if(date[0] == '\0' && ilf_count[ILF_Sarg]==0) {
if(debug)
debuga(_("End\n"));
- exit(0);
+ exit(EXIT_SUCCESS);
}
debuga(_("You have an invalid user in your %s file\n"),pwdfile);
exit(EXIT_FAILURE);
}
- str[1]=0;
+ str[1]='\0';
strcat(userfile,buf);
}
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: fr\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: 2010-03-17 20:22+0100\n"
"Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
"Language-Team: French <traduc@traduc.org>\n"
#: getconf.c:301
#, c-format
-msgid "Value \"%s\" conflicts with other selected values for parameter \"%s\"\n"
+msgid ""
+"Value \"%s\" conflicts with other selected values for parameter \"%s\"\n"
msgstr ""
"La valeur «%s» entre en conflit avec les autres valeurs sélectionnées pour le "
"paramètre «%s»\n"
#: getconf.c:368
#, c-format
-msgid "Maybe you have a broken record or garbage in \"date_format\" parameter\n"
+msgid ""
+"Maybe you have a broken record or garbage in \"date_format\" parameter\n"
msgstr ""
"Vous avez probablement un enregistrement erroné ou inattendu dans le "
"paramètre «date_format»\n"
#: log.c:1691
#, c-format
msgid "You have an invalid user in your %s file\n"
-msgstr "Vous avez probablement un utilisateur incorrect dans votre fichier %s\n"
+msgstr ""
+"Vous avez probablement un utilisateur incorrect dans votre fichier %s\n"
#: longline.c:109 longline.c:122
#, c-format
#: usage.c:37
msgid " -e Email address to send reports (stdout for console)"
-msgstr " -e Adresse e-mail où envoyer les rapports (stdout pour la console)"
+msgstr ""
+" -e Adresse e-mail où envoyer les rapports (stdout pour la console)"
#: usage.c:38
#, c-format
#: util.c:294
#, c-format
msgid "Invalid path (%s). Please, use absolute paths only.\n"
-msgstr "Chemin erroné (%s). Veuillez utiliser des chemins absolus uniquement.\n"
+msgstr ""
+"Chemin erroné (%s). Veuillez utiliser des chemins absolus uniquement.\n"
#: util.c:295 util.c:310 util.c:322
#, c-format
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: sarg 2.3\n"
"Report-Msgid-Bugs-To: fmarchal@users.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-17 20:20+0100\n"
+"POT-Creation-Date: 2010-03-18 08:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
if(SuccessfulMsg) debuga(_("Successful report generated on %s\n"),outdirname);
} else {
- geramail(outdirname, debug, outdir, userip, email, TempDir);
+ geramail(outdirname, debug, outdir, email, TempDir);
if((strcmp(email,"stdout") != 0) && SuccessfulMsg)
debuga(_("Successful report generated and sent to %s\n"),email);
+posixlib
-retvalint
+-retvalother
+matchanyintegral
+-formatconst
+-initallelements
+-nestedextern
++ignoresigns
-I .
-DHAVE_NETINET_H=1
-DHAVE_SYS_STAT_H=1
-DHAVE_CTYPE_H=1
--DHAVE_GD=1
-DHAVE_GD_H=1
-DHAVE_GDFONTL_H=1
-DHAVE_GDFONTT_H=1
void version(void)
{
printf(_("SARG Version: %s\n"),VERSION);
- exit(0);
+ exit(EXIT_SUCCESS);
}
char *get_param_value(const char *param,char *line)