Changeset fc353ee


Ignore:
Timestamp:
Jul 25, 2011 11:35:14 PM (9 years ago)
Author:
dream <dream@…>
Branches:
master
Children:
22dd5b8
Parents:
bf8f150
Message:

I added a more sensible error response when a name/b32 won't look up. Also support for "alias" links, as dubiously useful as those may be. (Perhaps allowing absolute paths on eepsites without b32?)" Also it now replaces the aHelperKey with the b64 instead of stupidly leaving the lookup completely unused and pointless.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java

    rbf8f150 rfc353ee  
    142142         "discarding the host entry from your host database, "+
    143143         "or naming one of them differently.<p>")
     144         .getBytes();
     145
     146    private final static byte[] ERR_AHELPER_NOTFOUND =
     147        ("HTTP/1.1 404 Not Found\r\n"+
     148         "Content-Type: text/html; charset=iso-8859-1\r\n"+
     149         "Cache-control: no-cache\r\n"+
     150         "\r\n"+
     151         "<html><body><H1>I2P ERROR: Helper key not resolvable.</H1>"+
     152         "The helper key you put for i2paddresshelper= is not resolvable. "+
     153         "It seems to be garbage data, or a mistyped b32. Check your URL "+
     154         "to try and fix the helper key to be either a b32 or a base64.")
    144155         .getBytes();
    145156
     
    458469                                    // Key contains data, lets not ignore it
    459470                                    if (ahelperKey != null) {
    460                                         if(ahelperKey.endsWith(".b32.i2p")) {
     471                                        if(ahelperKey.endsWith(".i2p")) {
    461472                                            // allow i2paddresshelper=<b32>.b32.i2p syntax.
     473                                            /*
     474                                              also i2paddresshelper=name.i2p for aliases
     475                                              i.e. on your eepsite put
     476                                              <a href="?i2paddresshelper=name.i2p">This is the name I want to be called.</a>
     477                                            */
    462478                                            Destination dest = _context.namingService().lookup(ahelperKey);
    463                                             if(dest==null)
    464                                                 throw new RuntimeException("Could not find destination for "+ahelperKey);
     479                                            if(dest==null) {
     480                                                if (_log.shouldLog(Log.WARN))
     481                                                    _log.warn(getPrefix(requestId) + "Could not find destination for "+ahelperKey);
     482                                                byte[] header = getErrorPage("ahelper-notfound", ERR_AHELPER_NOTFOUND);
     483                                                out.write(header);
     484                                                out.write(("<p>" + _("This seems to be a bad destination:") + " " + ahelperKey + " " + _("i2paddresshelper cannot help you with a destination like that!") + "</p>").getBytes("UTF-8"));
     485                                                writeFooter(out);
     486                                                // XXX: should closeSocket(s) be in a finally block?
     487                                                closeSocket(s);
     488                                                return;
     489                                            }
    465490                                            ahelperKey = dest.toBase64();
    466                                         }
     491                                        }
     492
    467493                                        ahelperPresent = true;
    468494                                        // ahelperKey will be validated later
     
    491517                                                        _log.warn(getPrefix(requestId) + "Addresshelper key conflict for site [" + destination +
    492518                                                                  "], trusted key [" + destB64 + "], specified key [" + ahelperKey + "].");
     519                                                   
    493520                                                }
    494521                                            }
     
    525552                                        out.write(header);
    526553                                        out.write(_("To visit the destination in your host database, click <a href=\"{0}\">here</a>. To visit the conflicting addresshelper destination, click <a href=\"{1}\">here</a>.", trustedURL, conflictURL).getBytes("UTF-8"));
    527                                         out.write(("<p></div>").getBytes());
     554                                        out.write(("</p></div>").getBytes());
    528555                                        writeFooter(out);
    529556                                    }
Note: See TracChangeset for help on using the changeset viewer.