Changeset a0befe5


Ignore:
Timestamp:
Jan 31, 2013 12:54:23 PM (7 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
3214bc4
Parents:
573692d
Message:
  • EepGet?:
    • Fix URL when not proxied to conform to RFC 2616
    • Add port to Host header to conform to RFC 2616
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • core/java/src/net/i2p/util/EepGet.java

    r573692d ra0befe5  
    10881088            post = true;
    10891089        URL url = new URL(_actualURL);
    1090         String proto = url.getProtocol();
    10911090        String host = url.getHost();
    10921091        int port = url.getPort();
    10931092        String path = url.getPath();
    10941093        String query = url.getQuery();
    1095         if (query != null)
    1096             path = path + '?' + query;
    1097         if (!path.startsWith("/"))
    1098             path = "/" + path;
    1099         if ( (port == 80) || (port == 443) || (port <= 0) ) path = proto + "://" + host + path;
    1100         else path = proto + "://" + host + ":" + port + path;
    1101         if (_log.shouldLog(Log.DEBUG)) _log.debug("Requesting " + path);
     1094        if (_log.shouldLog(Log.DEBUG))
     1095            _log.debug("Requesting " + _actualURL);
     1096        // RFC 2616 sec 5.1.2 - full URL if proxied, absolute path only if not proxied
     1097        String urlToSend;
     1098        if (_shouldProxy) {
     1099            urlToSend = _actualURL;
     1100            if ((path == null || path.length()<= 0) &&
     1101                (query == null || query.length()<= 0))
     1102                urlToSend += "/";
     1103        } else {
     1104            urlToSend = path;
     1105            if (urlToSend == null || urlToSend.length()<= 0)
     1106                urlToSend = "/";
     1107            if (query != null)
     1108                urlToSend += '?' + query;
     1109        }
    11021110        if (post) {
    1103             buf.append("POST ").append(_actualURL).append(" HTTP/1.1\r\n");
     1111            buf.append("POST ").append(urlToSend).append(" HTTP/1.1\r\n");
    11041112        } else {
    1105             buf.append("GET ").append(_actualURL).append(" HTTP/1.1\r\n");
    1106         }
    1107         buf.append("Host: ").append(url.getHost()).append("\r\n");
     1113            buf.append("GET ").append(urlToSend).append(" HTTP/1.1\r\n");
     1114        }
     1115        // RFC 2616 sec 5.1.2 - host + port (NOT authority, which includes userinfo)
     1116        buf.append("Host: ").append(host);
     1117        if (port >= 0)
     1118            buf.append(':').append(port);
     1119        buf.append("\r\n");
    11081120        if (_alreadyTransferred > 0) {
    11091121            buf.append("Range: bytes=");
  • core/java/src/net/i2p/util/EepHead.java

    r573692d ra0befe5  
    184184        StringBuilder buf = new StringBuilder(512);
    185185        URL url = new URL(_actualURL);
    186         String proto = url.getProtocol();
    187186        String host = url.getHost();
    188187        int port = url.getPort();
    189188        String path = url.getPath();
    190189        String query = url.getQuery();
    191         if (query != null)
    192             path = path + "?" + query;
    193         if (!path.startsWith("/"))
    194             path = "/" + path;
    195         if ( (port == 80) || (port == 443) || (port <= 0) ) path = proto + "://" + host + path;
    196         else path = proto + "://" + host + ":" + port + path;
    197         if (_log.shouldLog(Log.DEBUG)) _log.debug("Requesting " + path);
    198         buf.append("HEAD ").append(_actualURL).append(" HTTP/1.1\r\n");
    199         buf.append("Host: ").append(url.getHost()).append("\r\n");
     190        if (_log.shouldLog(Log.DEBUG))
     191            _log.debug("Requesting " + _actualURL);
     192        // RFC 2616 sec 5.1.2 - full URL if proxied, absolute path only if not proxied
     193        String urlToSend;
     194        if (_shouldProxy) {
     195            urlToSend = _actualURL;
     196            if ((path == null || path.length()<= 0) &&
     197                (query == null || query.length()<= 0))
     198                urlToSend += "/";
     199        } else {
     200            urlToSend = path;
     201            if (urlToSend == null || urlToSend.length()<= 0)
     202                urlToSend = "/";
     203            if (query != null)
     204                urlToSend += '?' + query;
     205        }
     206        buf.append("HEAD ").append(urlToSend).append(" HTTP/1.1\r\n");
     207        // RFC 2616 sec 5.1.2 - host + port (NOT authority, which includes userinfo)
     208        buf.append("Host: ").append(host);
     209        if (port >= 0)
     210            buf.append(':').append(port);
     211        buf.append("\r\n");
    200212        buf.append("Accept-Encoding: \r\n");
    201213        // This will be replaced if we are going through I2PTunnelHTTPClient
  • core/java/src/net/i2p/util/PartialEepGet.java

    r573692d ra0befe5  
    9696        StringBuilder buf = new StringBuilder(2048);
    9797        URL url = new URL(_actualURL);
    98         String proto = url.getProtocol();
    9998        String host = url.getHost();
    10099        int port = url.getPort();
    101100        String path = url.getPath();
    102101        String query = url.getQuery();
    103         if (query != null)
    104             path = path + '?' + query;
    105         if (!path.startsWith("/"))
    106             path = "/" + path;
    107         if ( (port == 80) || (port == 443) || (port <= 0) ) path = proto + "://" + host + path;
    108         else path = proto + "://" + host + ":" + port + path;
    109         if (_log.shouldLog(Log.DEBUG)) _log.debug("Requesting " + path);
    110         buf.append("GET ").append(_actualURL).append(" HTTP/1.1\r\n");
    111         buf.append("Host: ").append(url.getHost()).append("\r\n");
     102        if (_log.shouldLog(Log.DEBUG))
     103            _log.debug("Requesting " + _actualURL);
     104        // RFC 2616 sec 5.1.2 - full URL if proxied, absolute path only if not proxied
     105        String urlToSend;
     106        if (_shouldProxy) {
     107            urlToSend = _actualURL;
     108            if ((path == null || path.length()<= 0) &&
     109                (query == null || query.length()<= 0))
     110                urlToSend += "/";
     111        } else {
     112            urlToSend = path;
     113            if (urlToSend == null || urlToSend.length()<= 0)
     114                urlToSend = "/";
     115            if (query != null)
     116                urlToSend += '?' + query;
     117        }
     118        buf.append("GET ").append(urlToSend).append(" HTTP/1.1\r\n");
     119        // RFC 2616 sec 5.1.2 - host + port (NOT authority, which includes userinfo)
     120        buf.append("Host: ").append(host);
     121        if (port >= 0)
     122            buf.append(':').append(port);
     123        buf.append("\r\n");
    112124        buf.append("Range: bytes=");
    113125        buf.append(_alreadyTransferred);
  • history.txt

    r573692d ra0befe5  
     12013-01-31 zzz
     2 * EepGet:
     3   - Fix URL when not proxied to conform to RFC 2616
     4   - Add port to Host header to conform to RFC 2616
     5
    162013-01-29 zzz
    27 * Console: Catch IllegalStateException storing nonces (ticket #852)
  • router/java/src/net/i2p/router/RouterVersion.java

    r573692d ra0befe5  
    1919    public final static String ID = "Monotone";
    2020    public final static String VERSION = CoreVersion.VERSION;
    21     public final static long BUILD = 8;
     21    public final static long BUILD = 9;
    2222
    2323    /** for example "-test" */
Note: See TracChangeset for help on using the changeset viewer.