[ic] discussion of patch for IC compatibility with NS 7

Jeff Dafoe interchange-users@icdevgroup.org
Sat Sep 28 10:59:06 2002


> Please give me an actual example of a URL, what Mozilla gives,
> which HTTP server it is running on, which link program, etc.

    This issue occurs with Apache 1.3.26 under Linux using mod_interchange
1.22 on an Interchange 4.8.6 server.  Using Netscape 7, which is Mozilla
1.0, on Windows as a user agent.  When the user clicks on one the of the
pages of the more list, the user agent sends a request: for the following:


/sophee/scan/MM=7bd44736752c7c1017f5a8858c7b8a9f%3A16%3A31%3A16?mv_session_i
d=wdtPzDU8&mv_pc=3001&mv_more_ip=1&mv_nextpage=results

    This results in a blank page display and the following error in the
catalog's error log:

65.80.15.252 wdtPzDU8:65.80.15.252 - [26/September/2002:22:24:15 -0400]
sophee /sophee/scan/MM=7bd44736752c7c1017f5a8858c7b8a9f%3A16%3A31%3A16
search error: Object saved wrong in
/home/sophee/catalogs/sophee/tmp/w/wdtPzDU8.7bd44736752c7c1017f5a8858c7b8a9f
%3A16%3A31%3A16 for search ID
wdtPzDU8.7bd44736752c7c1017f5a8858c7b8a9f%3A16%3A31%3A16.

    I believe, from reading previous discussions on the issue in the
archives and through my own experimentation, that the issue is that the
colons in the MM value are urlencoded.  IE and the older NS versions do not
encode the colon on the PC (although NS on the Mac does).  Looking at the
message archive, I theorize that most, if not all, versions of Mozilla may
do this.  Following the RFC, the user agent is actually free to encode any
octet, so it can't really be considered a bug.  In examining the Server.pm
file it looks like the query_string's parameters are being urldecoded in
parse_post, which seems correct.  However, interchange also uses some of the
path_info for parameters as well (as is the case with scan's MM) but
path_info is never urldecoded.  This is what I think is incorrect.  To
mitigate, I added:

  $CGI::path_info =~ s/%([A-Fa-f0-9]{2})/chr(hex($1))/eg;

    to the bottom of map_cgi .  This does allow NS7 to operate although I am
not certain it does not introduce any additional issues that might result if
there is some sort of urlencoding "deficiency" when interchange builds urls
for pages, ie, if urlencoding is not performed somewhere and %xx is an
actual expected parameter.

Thanks for your time,
Jeff