67
sprintf(msg,"%s: %s",text[66],UserAgentLog);
69
debuga("%s: %s",text[66],UserAgentLog);
71
72
while(fgets(buf,sizeof(buf),fp_in)!=NULL) {
73
getword(ip,sizeof(ip),buf,' ');
74
getword(data,sizeof(data),buf,'[');
75
getword(data,sizeof(data),buf,' ');
74
if (getword(ip,sizeof(ip),buf,' ')<0 || getword(data,sizeof(data),buf,'[')<0 ||
75
getword(data,sizeof(data),buf,' ')<0) {
76
printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",UserAgentLog);
77
80
strcpy(idate,data);
78
getword(agent,sizeof(agent),buf,'"');
79
getword(agent,sizeof(agent),buf,'"');
81
if (getword(agent,sizeof(agent),buf,'"')<0 || getword(agent,sizeof(agent),buf,'"')<0) {
82
printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",UserAgentLog);
81
85
strcpy(warea,agent);
83
87
if(strstr(warea,"SCRIPT") != 0 || strstr(warea,"ONLOAD") != 0)
87
getword(user,sizeof(user),buf,' ');
88
getword(user,sizeof(user),buf,'\n');
91
if (getword(user,sizeof(user),buf,' ')<0 || getword(user,sizeof(user),buf,'\n')<0) {
92
printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",UserAgentLog);
116
sprintf(msg,"%s: %s",text[54],tmp2);
120
sprintf(csort,"sort -n -t '\\' -k 4,4 -k 3,3 -k 2,2 -k 1,1 -o '%s' '%s'",tmp2,tmp3);
120
debuga("%s: %s",text[54],tmp2);
123
sprintf(csort,"sort -n -t \"\\\" -k 4,4 -k 3,3 -k 2,2 -k 1,1 -o \"%s\" \"%s\"",tmp2,tmp3);
124
cstatus=system(csort);
125
if (!WIFEXITED(cstatus) || WEXITSTATUS(cstatus)) {
126
fprintf(stderr, "SARG: sort command return status %d\n",WEXITSTATUS(cstatus));
127
fprintf(stderr, "SARG: sort command: %s\n",csort);
125
130
if((fp_in=fopen(tmp2,"r"))==NULL) {
126
131
fprintf(stderr, "SARG: (useragent) %s: %s\n",text[45],tmp2);
132
fprintf(stderr, "SARG: sort command: %s\n",csort);
130
138
if((fp_ht=fopen(hfile,"w"))==NULL) {
131
139
fprintf(stderr, "SARG: (useragent) %s: %s\n",text[45],hfile);
144
debuga("%s",text[72]);
138
146
fprintf(fp_ht, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html>\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\">\n",CharSet);
139
147
fputs("</head>\n",fp_ht);
140
148
if(strlen(FontFace) > 0) fprintf(fp_ht,"<font face=%s>\n",FontFace);
141
149
fprintf(fp_ht,"<body bgcolor=%s text=%s background='%s'>\n",BgColor,TxColor,BgImage);
142
if(strlen(LogoImage) > 0) fprintf(fp_ht, "<center><table cellpadding=\"0\" cellspacing=\"0\">\n<tr><th class=\"logo\"><img src='%s' border=0 align=absmiddle width=%s height=%s> %s</th></tr>\n<tr><td height=\"5\"></td></tr>\n</table>\n",LogoImage,Width,Height,LogoText);
150
write_logo_image(fp_ht);
144
152
if(strcmp(IndexTree,"date") == 0)
145
153
show_sarg(fp_ht, "../../..");
147
155
show_sarg(fp_ht,"..");
148
fputs("<center><table cellpadding=0 cellspacing=0>\n",fp_ht);
149
snprintf(html,sizeof(html),"<tr><th align=center colspan=2><b><font color=%s size=+1>%s</font></b></th></tr>\n",TiColor,text[105]);
156
fputs("<div align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\">\n",fp_ht);
157
fprintf(fp_ht,"<tr><th align=\"center\" colspan=\"2\"><b><font color=\"%s\" size=\"+1\">%s</font></b></th></tr>\n",TiColor,text[105]);
152
159
fputs("<tr><td></td></tr><tr><td></td></tr>",fp_ht);
153
fputs("</table></center>\n",fp_ht);
155
fputs("<center><table cellpadding=0 cellspacing=0>\n",fp_ht);
157
snprintf(html,sizeof(html),"<tr><td align=right bgcolor=%s><font size=%s>%s:</font><td align=left bgcolor=%s><font size=%s>%s - %s</font></td></td></tr>\n",HeaderBgColor,FontSize,text[89],TxBgColor,FontSize,idate,fdate);
160
fputs("</table></center>\n",fp_ht);
161
fputs("<center><table cellpadding=0 cellspacing=0>\n",fp_ht);
160
fputs("</table></div>\n",fp_ht);
162
fputs("<div align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\">\n",fp_ht);
164
fprintf(fp_ht,"<tr><td align=\"right\" bgcolor=\"%s\"><font size=\"%s\">%s:</font><td align=\"left\" bgcolor=\"%s\"><font size=\"%s\">%s - %s</font></td></td></tr>\n",HeaderBgColor,FontSize,text[89],TxBgColor,FontSize,idate,fdate);
166
fputs("</table></div>\n",fp_ht);
167
fputs("<div align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\">\n",fp_ht);
162
168
fputs("<tr><td></td><td></td></tr>",fp_ht);
164
snprintf(html,sizeof(html),"<tr><th align=left bgcolor=%s><font size=%s color=%s>%s</font></th><th bgcolor=%s align=left><font size=%s color=%s>%s</font></th></tr>\n",HeaderBgColor,FontSize,HeaderColor,text[98],HeaderBgColor,FontSize,HeaderColor,text[106]);
170
fprintf(fp_ou,"<tr><th align=left bgcolor=%s><font size=%s color=%s>%s</font></th><th bgcolor=%s align=left><font size=%s color=%s>%s</font></th></tr>\n",HeaderBgColor,FontSize,HeaderColor,text[98],HeaderBgColor,FontSize,HeaderColor,text[106]);
167
172
while(fgets(buf,sizeof(buf),fp_in)!=NULL) {
168
getword(ip,sizeof(ip),buf,'\\');
173
if (getword(ip,sizeof(ip),buf,'\\')<0) {
174
printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",tmp2);
170
178
if(strcmp(Ip2Name,"yes") == 0) {
171
179
if(strcmp(ip,ipbefore) != 0) {
172
180
strcpy(ipbefore,ip);
181
ip2name(ip,sizeof(ip));
174
182
strcpy(namebefore,ip);
175
183
} else strcpy(ip,namebefore);
178
getword(data,sizeof(data),buf,'\\');
179
getword(agent,sizeof(agent),buf,'\\');
180
getword(user,sizeof(user),buf,'\\');
186
if (getword(data,sizeof(data),buf,'\\')<0 || getword(agent,sizeof(agent),buf,'\\')<0 ||
187
getword(user,sizeof(user),buf,'\\')<0) {
188
printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",tmp2);
182
192
if(strcmp(user,user_old) != 0) {
183
snprintf(html,sizeof(html),"<tr><td align=left bgcolor=%s><font size=%s>%s</td><td align=left bgcolor=%s><font size=%s>%s</td></tr>\n",TxBgColor,FontSize,user,TxBgColor,FontSize,agent);
193
fprintf(fp_ht,"<tr><td align=left bgcolor=%s><font size=%s>%s</td><td align=left bgcolor=%s><font size=%s>%s</td></tr>\n",TxBgColor,FontSize,user,TxBgColor,FontSize,agent);
185
194
strcpy(user_old,user);
186
195
strcpy(agent_old,agent);
188
197
if(strcmp(agent,agent_old) != 0) {
189
snprintf(html,sizeof(html),"<tr><td></td><td align=left bgcolor=%s><font size=%s>%s</td></tr>\n",TxBgColor,FontSize,agent);
198
fprintf(fp_ht,"<tr><td></td><td align=left bgcolor=%s><font size=%s>%s</td></tr>\n",TxBgColor,FontSize,agent);
191
199
strcpy(agent_old,agent);
263
281
fputs("<br><br>\n",fp_ht);
265
fputs("<center><table cellpadding=0 cellspacing=0>\n",fp_ht);
266
snprintf(html,sizeof(html),"<tr><th align=left bgcolor=%s><font size=%s color=%s>%s</font></th><th bgcolor=%s align=left><font size=%s color=%s>%s</font></th><th align=center bgcolor=%s><font size=%s color=%s>%%</font></th></tr>\n",HeaderBgColor,FontSize,HeaderColor,text[106],HeaderBgColor,FontSize,HeaderColor,text[107],HeaderBgColor,FontSize,HeaderColor);
283
fputs("<div align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\">\n",fp_ht);
284
fprintf(fp_ht,"<tr><th align=\"left\" bgcolor=\"%s\"><font size=\"%s\" color=\"%s\">%s</font></th><th bgcolor=\"%s\" align=\"left\"><font size=\"%s\" color=\"%s\">%s</font></th><th align=\"center\" bgcolor=\"%s\"><font size=\"%s\" color=\"%s\">%%</font></th></tr>\n",HeaderBgColor,FontSize,HeaderColor,text[106],HeaderBgColor,FontSize,HeaderColor,text[107],HeaderBgColor,FontSize,HeaderColor);
269
286
while(fgets(buf,sizeof(buf),fp_in)!=NULL) {
270
287
buf[strlen(buf)-1]='\0';
271
getword(tagent,sizeof(tagent),buf,' ');
288
if (getword(tagent,sizeof(tagent),buf,' ')<0) {
289
printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",tmp);
272
292
perc=atoi(tagent) * 100;
273
293
perc=perc / agentot2;
275
snprintf(html,sizeof(html),"<tr><td align=left bgcolor=%s><font size=%s>%s</td><td align=right bgcolor=%s><font size=%s>%d</td><td align=right bgcolor=%s><font size=%s>%3.2f</td></tr>\n",TxBgColor,FontSize,buf,TxBgColor,FontSize,atoi(tagent),TxBgColor,FontSize,perc);
295
fprintf(fp_ht,"<tr><td align=left bgcolor=%s><font size=%s>%s</td><td align=right bgcolor=%s><font size=%s>%d</td><td align=right bgcolor=%s><font size=%s>%3.2f</td></tr>\n",TxBgColor,FontSize,buf,TxBgColor,FontSize,atoi(tagent),TxBgColor,FontSize,perc);
279
298
fputs("</table></html>\n",fp_ht);
280
299
if(strcmp(ShowSargInfo,"yes") == 0) {
281
300
zdate(ftime, DateFormat);
282
snprintf(html,sizeof(html),"<br><br><center><font size=-2>%s <a href='%s'>%s-%s</a> %s %s</font></center>\n",text[108],URL,PGM,VERSION,text[109],ftime);
301
fprintf(fp_ht,"<br><br><div align=\"center\"><font size=\"-2\">%s <a href=\"%s\">%s-%s</a> %s %s</font></div>\n",text[108],URL,PGM,VERSION,text[109],ftime);
286
304
fputs("</table>\n</body>\n</html>\n",fp_ht);