int tlen=0;
int len;
- Host=ExtLog_FixEmptyString(Host);
- if (!Host) return(NULL);
Scheme=ExtLog_FixEmptyString(Scheme);
+ Host=ExtLog_FixEmptyString(Host);
+ if (!Scheme && !Host)
+ {
+ /*
+ * Example of such an entry:
+ *
+ * #Fields:
+ * date time time-taken c-ip sc-status s-action sc-bytes cs-bytes cs-method cs-uri-scheme cs-host cs-uri-port cs-uri-path cs-uri-query cs-username cs-auth-group s-hierarchy s-supplier-name rs(Content-Type) cs(Referer) cs(User-Agent) sc-filter-result cs-categories x-virus-id s-ip
+ * 2015-07-29 06:05:50 30 192.168.1.21 400 TCP_NC_MISS 903 8163 unknown - - 0 / - userid - - 10.81.0.26 - - - DENIED "unavailable" - 10.81.0.26 - - ICAP_NOT_SCANNED - - -
+ *
+ * It looks like a failed connection attempt to an unavailable resource. Let's assume it is safe to ignore it.
+ */
+ ExtTempUrl[0]='\0';
+ return(ExtTempUrl);
+ }
Port=ExtLog_FixEmptyString(Port);
Path=ExtLog_FixEmptyString(Path);
Query=ExtLog_FixEmptyString(Query);
tlen+=len+3;
}
- len=strlen(Host);
- if (tlen+len>=sizeof(ExtTempUrl)) len=sizeof(ExtTempUrl)-tlen-1;
- strncpy(ExtTempUrl+tlen,Host,len);
- tlen+=len;
- ExtTempUrl[tlen]='\0';
+ if (Host)
+ {
+ len=strlen(Host);
+ if (tlen+len>=sizeof(ExtTempUrl)) len=sizeof(ExtTempUrl)-tlen-1;
+ strncpy(ExtTempUrl+tlen,Host,len);
+ tlen+=len;
+ }
if (tlen+2<sizeof(ExtTempUrl) && Port)
{
ExtTempUrl[tlen++]=':';
strncpy(ExtTempUrl+tlen,Port,len);
tlen+=len;
- ExtTempUrl[tlen]='\0';
}
if (tlen<sizeof(ExtTempUrl) && Path)
if (tlen+len>=sizeof(ExtTempUrl)) len=sizeof(ExtTempUrl)-tlen-1;
strncpy(ExtTempUrl+tlen,Path,len);
tlen+=len;
- ExtTempUrl[tlen]='\0';
}
if (tlen<sizeof(ExtTempUrl) && Query)
if (tlen+len>=sizeof(ExtTempUrl)) len=sizeof(ExtTempUrl)-tlen-1;
strncpy(ExtTempUrl+tlen,Query,len);
tlen+=len;
- ExtTempUrl[tlen]='\0';
}
+ ExtTempUrl[tlen]='\0';
return(ExtTempUrl);
}