Ticket #1136: 1136.patch

File 1136.patch, 4.3 KB (added by Inondle, 5 years ago)

patch to allow ssl or non-ssl preferences on custom reseed url lists

  • .i2p/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java

    old new  
    403403            boolean defaulted = URLs == null;
    404404            boolean SSLDisable = _context.getBooleanProperty(PROP_SSL_DISABLE);
    405405            boolean SSLRequired = _context.getBooleanPropertyDefaultTrue(PROP_SSL_REQUIRED);
     406            StringTokenizer tok;
     407
    406408            if (defaulted) {
    407409                if (SSLDisable)
    408410                    URLs = DEFAULT_SEED_URL;
    409411                else
    410412                    URLs = DEFAULT_SSL_SEED_URL;
    411             }
    412             StringTokenizer tok = new StringTokenizer(URLs, " ,");
    413             while (tok.hasMoreTokens()) {
    414                 String u = tok.nextToken().trim();
    415                 if (!u.endsWith("/"))
    416                     u = u + '/';
    417                 try {
    418                     URLList.add(new URL(u));
    419                 } catch (MalformedURLException mue) {}
    420             }
    421             Collections.shuffle(URLList, _context.random());
    422             if (defaulted && !SSLDisable && !SSLRequired) {
    423                 // put the non-SSL at the end of the SSL
    424                 List<URL> URLList2 = new ArrayList<URL>();
    425                 tok = new StringTokenizer(DEFAULT_SEED_URL, " ,");
     413                tok = new StringTokenizer(URLs, ",");
    426414                while (tok.hasMoreTokens()) {
    427415                    String u = tok.nextToken().trim();
    428416                    if (!u.endsWith("/"))
    429417                        u = u + '/';
    430418                    try {
    431                         URLList2.add(new URL(u));
     419                        URLList.add(new URL(u));
    432420                    } catch (MalformedURLException mue) {}
    433421                }
    434                 Collections.shuffle(URLList2, _context.random());
    435                 URLList.addAll(URLList2);
     422                Collections.shuffle(URLList, _context.random());
     423                if (!SSLDisable && !SSLRequired) {
     424                    // put the non-SSL at the end of the SSL
     425                    List<URL> URLList2 = new ArrayList<URL>();
     426                    tok = new StringTokenizer(DEFAULT_SEED_URL, " ,");
     427                    while (tok.hasMoreTokens()) {
     428                        String u = tok.nextToken().trim();
     429                        if (!u.endsWith("/"))
     430                            u = u + '/';
     431                        try {
     432                            URLList2.add(new URL(u));
     433                        } catch (MalformedURLException mue) {}
     434                    }
     435                    Collections.shuffle(URLList2, _context.random());
     436                    URLList.addAll(URLList2);
     437                }
     438            }
     439            // custom list given
     440            else {
     441                List<URL> SSLList = new ArrayList<URL>();
     442                List<URL> nonSSLList = new ArrayList<URL>();
     443                tok = new StringTokenizer(URLs, ",");
     444                while (tok.hasMoreTokens()) {
     445                    // format tokens
     446                    String u = tok.nextToken().trim();
     447                    if (!u.endsWith("/"))
     448                        u = u + '/';
     449                    // check if ssl or not then add to respective list
     450                    if (u.startsWith("https")) {
     451                        try {
     452                            SSLList.add(new URL(u));
     453                        } catch (MalformedURLException mue) {}
     454                    } else {
     455                        try {
     456                            nonSSLList.add(new URL(u));
     457                        } catch (MalformedURLException mue) {}
     458                    }
     459                }
     460                // shuffle lists
     461                Collections.shuffle(SSLList,_context.random());
     462                Collections.shuffle(nonSSLList, _context.random());
     463                // depending on preferences, add lists to URLList
     464                if (SSLDisable) {
     465                    URLList.addAll(nonSSLList);
     466                }
     467                else if (SSLRequired) {
     468                    URLList.addAll(SSLList);
     469                }
     470                else {
     471                    URLList.addAll(SSLList);
     472                    URLList.addAll(nonSSLList);
     473                }
    436474            }
    437475            return reseed(URLList, echoStatus);
    438476        }