[
https://issues.apache.org/jira/browse/TS-2237?focusedWorklogId=26419&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-26419
]
ASF GitHub Bot logged work on TS-2237:
--------------------------------------
Author: ASF GitHub Bot
Created on: 14/Aug/16 20:20
Start Date: 14/Aug/16 20:20
Worklog Time Spent: 10m
Work Description: Github user zwoop commented on a diff in the pull
request:
https://github.com/apache/trafficserver/pull/866#discussion_r74707817
--- Diff: proxy/logging/LogUtils.cc ---
@@ -359,6 +359,23 @@ LogUtils::escapify_url(Arena *arena, char *url, size_t
len_in, int *len_out, cha
while (from < in_url_end) {
unsigned char c = *from;
if (map[c / 8] & (1 << (7 - c % 8))) {
+ /*
+ * If two characters following a '%' don't need to be encoded, then
it must
+ * mean that the three character sequence is already encoded. Just
copy it over.
+ */
+ if ((*from == '%') && ((from + 2) < in_url_end)) {
+ unsigned char c1 = *(from + 1);
+ unsigned char c2 = *(from + 2);
+ bool needsEncoding = ((map[c1 / 8] & (1 << (7 - c1 % 8))) ||
(map[c2 / 8] & (1 << (7 - c2 % 8))));
+ if (!needsEncoding) {
+ out_len -= 2;
+ *to++ = *from;
+ from++;
+ Debug("log-utils", "character already encoded..skipping %c, %c,
%c", *from, *(from + 1), *(from + 2));
--- End diff --
AH, I see, out_len is padded with count*2 (where count is the number of
special characters). So, out_len -=2 is correct.
Issue Time Tracking
-------------------
Worklog Id: (was: 26419)
Time Spent: 1h 20m (was: 1h 10m)
> URL encoding wrong in squid.blog
> --------------------------------
>
> Key: TS-2237
> URL: https://issues.apache.org/jira/browse/TS-2237
> Project: Traffic Server
> Issue Type: Bug
> Components: Logging
> Reporter: David Carlin
> Priority: Minor
> Labels: yahoo
> Fix For: sometime
>
> Attachments: TS-2237.diff
>
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> I was replaying URLs captured from squid.blog and I noticed I was getting
> 404's for some of them when squid.blog showed a 200 for that request. Turns
> out there is an issue with URL encoding. For example:
> Requesting file 'duck%20sports%20authority.gif' via curl will put this in the
> logs:
> duck%2520sports%2520authority.gif
> The % from %20 (space) in the request is being converted to %25 resulting in
> %2520
> I tested both the %<cquc> and %<cquuc> log fields - same thing happens. I
> tested on ATS 3.2.0 and 3.3.5
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)