Changeset b23f0ee5


Ignore:
Timestamp:
Feb 9, 2012 2:44:35 PM (10 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
4cea4514
Parents:
0932f77
Message:

escape semicolons

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java

    r0932f77 rb23f0ee5  
    901901        }
    902902
     903        String encodedBaseName = urlEncode(snark.getBaseName());
    903904        // File type icon column
    904905        out.write("</td>\n<td class=\"" + rowClass + "\">");
     
    907908            // gets us to the details page instead of the file.
    908909            StringBuilder buf = new StringBuilder(128);
    909             buf.append("<a href=\"").append(snark.getBaseName())
     910            buf.append("<a href=\"").append(encodedBaseName)
    910911               .append("/\" title=\"").append(_("Torrent details"))
    911912               .append("\">");
     
    930931        if (remaining == 0 || isMultiFile) {
    931932            StringBuilder buf = new StringBuilder(128);
    932             buf.append("<a href=\"").append(snark.getBaseName());
     933            buf.append("<a href=\"").append(encodedBaseName);
    933934            if (isMultiFile)
    934935                buf.append('/');
     
    16241625        StringBuilder buf = new StringBuilder(256);
    16251626        // browsers seem to work without doing this but let's be strict
    1626         String link = s.replace("&", "&amp;").replace(" ", "%20");
     1627        String link = urlEncode(s);
    16271628        buf.append("<a href=\"").append(link).append("\">").append(link).append("</a>");
    16281629        return buf.toString();
     1630    }
     1631   
     1632    /** @since 0.8.13 */
     1633    private static String urlEncode(String s) {
     1634        return s.replace("&", "&amp;").replace(" ", "%20").replace(":", "%3A").replace("/", "%2F").replace(";", "%3B");
    16291635    }
    16301636
     
    17621768            buf.append("<br>").append(_("Torrent file")).append(": ").append(snark.getName());
    17631769            buf.append("</div></th></tr>");
     1770        } else {
     1771            // shouldn't happen
     1772            buf.append("<tr><th>Not found<br>resource=\"").append(r.toString())
     1773               .append("\"<br>base=\"").append(base)
     1774               .append("\"<br>torrent=\"").append(torrentName)
     1775               .append("\"</th></tr>");
    17641776        }
    17651777        if (ls == null) {
     
    20692081                //    buf.append("<input type=\"hidden\" name=\"p\" value=\"").append(peerParam).append("\" >\n");
    20702082                buf.append(_("Torrent was not retrieved from {0}", urlify(_url)));
    2071                 String link = _url.replace("&", "&amp;").replace(" ", "%20").replace(":", "%3A").replace("/", "%2F");
     2083                String link = urlEncode(_url);
    20722084             /**** FIXME ticket #575
    20732085                buf.append(" - [<a href=\"/i2psnark/?newURL=").append(link).append("#add\" >");
Note: See TracChangeset for help on using the changeset viewer.