From a4729aba1686e4ad1c0e36a4660f4e2941df39e4 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 28 Apr 2025 07:32:52 -0400 Subject: [PATCH] remove seedless --- src/java/net/i2p/zzzot/SeedlessAnnouncer.java | 60 -------------- src/jsp/seedless.jsp | 79 ------------------- 2 files changed, 139 deletions(-) delete mode 100644 src/java/net/i2p/zzzot/SeedlessAnnouncer.java diff --git a/src/java/net/i2p/zzzot/SeedlessAnnouncer.java b/src/java/net/i2p/zzzot/SeedlessAnnouncer.java deleted file mode 100644 index cd5df69..0000000 --- a/src/java/net/i2p/zzzot/SeedlessAnnouncer.java +++ /dev/null @@ -1,60 +0,0 @@ -package net.i2p.zzzot; -/* - * Copyright 2010 zzz (zzz@mail.i2p) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -import java.io.IOException; -import java.io.OutputStream; - -import net.i2p.I2PAppContext; -import net.i2p.client.streaming.I2PSocketEepGet; -import net.i2p.client.streaming.I2PSocketManager; -import net.i2p.data.Base64; -import net.i2p.i2ptunnel.TunnelController; -import net.i2p.util.EepGet; - -/** - * Announce to seedless - * @since 0.6 - */ -public class SeedlessAnnouncer { - - private static final String SPONGE = - "VG4Bd~q1RA3BdoF3z5fSR7p0xe1CTVgDMWVGyFchA9Wm2iXUkIR35G45XE31Uc9~IOt-ktNLL2~TYQZ13Vl8udosngDn8RJG1NtVASH4khsbgkkoFLWd6UuvuOjQKBFKjaEPJgxOzh0kxolRPPNHhFuuAGzNLKvz~LI2MTf0P6nwmRg1lBoRIUpSVocEHY4X306nT2VtY07FixbJcPCU~EeRin24yNoiZop-C3Wi1SGwJJK-NS7mnkNzd8ngDJXDJtR-wLP1vNyyBY6NySgqPiIhENHoVeXd5krlR42HORCxEDb4jhoqlbyJq-PrhTJ5HdH4-~gEq09B~~NIHzy7X02XgmBXhTYRtl6HbLMXs6SI5fq9OFgVp5YZWYUklJjMDI7jOrGrEZGSHhnJK9kT6D3CqVIM0cYEhe4ttmTegbZvC~J6DrRTIAX422qRQJBPsTUnv4iFyuJE-8SodP6ikTjRH21Qx73SxqOvmrOiu7Bsp0lvVDa84aoaYLdiGv87AAAA"; - - private static final String ANNOUNCE = "announce " + Base64.encode("seedless,eepsite,torrent"); - - public void announce(TunnelController controller) { - // get the I2PTunnel from the controller (no method now) - - // get the I2PTunnelTask from I2PTunnel - - // cast to an I2PTunnelServer - - // get the SocketManager from the server (no method now) - I2PSocketManager mgr = null; - - I2PAppContext ctx = I2PAppContext.getGlobalContext(); - String url = "http://" + SPONGE + "/Seedless/seedless"; - EepGet get = new I2PSocketEepGet(ctx, mgr, 1, -1, 1024, null, new DummyOutputStream(), url); - get.addHeader("X-Seedless", ANNOUNCE); - get.fetch(); - } - - private static class DummyOutputStream extends OutputStream { - public void write(int b) {} - } -} diff --git a/src/jsp/seedless.jsp b/src/jsp/seedless.jsp index 6c0ad92..450d9d9 100644 --- a/src/jsp/seedless.jsp +++ b/src/jsp/seedless.jsp @@ -17,86 +17,7 @@ * */ - String req = request.getHeader("X-Seedless"); - // extension for ease of eepget and browser - if (req == null) - req = request.getParameter("X-Seedless"); - // we should really put in our own b32 - String me = request.getHeader("Host"); - if (me == null) - me = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.b32.i2p"; - // unused, we don't accept announces - String him = request.getHeader("X-I2P-DestB32"); - if (him == null) - him = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.b32.i2p"; - String xff = request.getHeader("X-Forwarded-For"); - String xfs = request.getHeader("X-Forwarded-Server"); - - response.setContentType("text/plain"); - response.setHeader("X-Seedless", him); - - final int US_MINUTES = 360; - final int PEER_MINUTES = 60; - - if (xff != null || xfs != null) { - String msg = "Non-I2P access denied"; - //response.setStatus(403, msg); - response.setStatus(403); - out.println(msg); - } else if (req == null) { - // probe - out.println("tracker " + US_MINUTES); - out.println("eepsite " + US_MINUTES); - out.println("seedless " + US_MINUTES); - } else if (req.startsWith("announce")) { - out.println("thanks"); - } else if (req.startsWith("locate c2VlZGxlc")) { // locate b64(seedless) - // ignore the search string, if any, in the request - // us - out.println(Base64.encode(me + ' ' + US_MINUTES + " tracker")); - out.println(Base64.encode(me + ' ' + US_MINUTES + " seedless")); - out.println(Base64.encode(me + ' ' + US_MINUTES + " eepsite")); - } else if (req.startsWith("locate ZWVwc2l0Z")) { // locate b64(eepsite) - // ignore the search string, if any, in the request - // us - out.println(Base64.encode(me + ' ' + US_MINUTES + " zzzot")); - } else if (req.startsWith("locate dG9ycmVud")) { // locate b64(torrent) - // all the peers - Torrents torrents = ZzzOTController.getTorrents(); - if (torrents == null) { - //response.setStatus(503, "Down"); - response.setStatus(503); - return; - } - for (InfoHash ihash : torrents.keySet()) { - Peers peers = torrents.get(ihash); - if (peers == null) - continue; - for (Peer p : peers.values()) { - // dest to b32 - String ip = (String) p.get("ip"); - if (ip.endsWith(".i2p")) - ip = ip.substring(0, ip.length() - 4); - String b32 = Base32.encode(SHA256Generator.getInstance().calculateHash(Base64.decode(ip)).getData()) + ".b32.i2p "; - // service type - String role; - if (p.isSeed()) - role = "seed"; - else - role = "leech"; - // spg wants UTF-8 but all we have is binary data, so hex it - String ihs = DataHelper.toHexString(ihash.getData()); - String ids = DataHelper.toHexString((byte[])p.get("peer id")); - out.println(Base64.encode(b32 + PEER_MINUTES + ihs + '\n' + - ids + '\n' + - role)); - } - } - } else { - // error code - //response.setStatus(406, "Bad request"); response.setStatus(406); out.println("SC_NOT_ACCEPTABLE"); - } %> \ No newline at end of file