summaryrefslogtreecommitdiff
path: root/htroot/p2p
diff options
context:
space:
mode:
authorMichael Peter Christen <mc@yacy.net>2022-10-02 22:57:58 +0200
committerMichael Peter Christen <mc@yacy.net>2022-10-02 22:57:58 +0200
commit33889b4501a1724ea590b0d75fb431e358ea7e52 (patch)
tree7192feb21710b52c1e87ac2e9ca2723af1c138c7 /htroot/p2p
parent6d388bb7bfa79454ef63a1e227924fdab105b807 (diff)
moved more servlets to new location
Diffstat (limited to 'htroot/p2p')
-rw-r--r--htroot/p2p/seeds.java144
1 files changed, 0 insertions, 144 deletions
diff --git a/htroot/p2p/seeds.java b/htroot/p2p/seeds.java
deleted file mode 100644
index d734d9300..000000000
--- a/htroot/p2p/seeds.java
+++ /dev/null
@@ -1,144 +0,0 @@
-
-
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.Set;
-
-import org.json.JSONObject;
-
-import net.yacy.cora.protocol.HeaderFramework;
-import net.yacy.cora.protocol.RequestHeader;
-import net.yacy.peers.Seed;
-import net.yacy.search.Switchboard;
-import net.yacy.server.serverCore;
-import net.yacy.server.serverObjects;
-import net.yacy.server.serverSwitch;
-
-/**
- * this servlet generates the same file as the principal peers upload to a bootstrap position
- * you can call it either with
- * http://localhost:8090/p2p/seeds.json
- * http://localhost:8090/p2p/seeds.json?callback=seedlist
- * http://localhost:8090/p2p/seeds.json?node=true&me=false&address=true
- */
-public final class seeds {
-
- private static final int LISTMAX = 1000;
-
- public static serverObjects respond(final RequestHeader header, final serverObjects post, final serverSwitch env) {
- // return variable that accumulates replacements
- final Switchboard sb = (Switchboard) env;
- int maxcount = Math.min(LISTMAX, post == null ? Integer.MAX_VALUE : post.getInt("maxcount", Integer.MAX_VALUE));
- float minversion = Math.min(LISTMAX, post == null ? 0.0f : post.getFloat("minversion", 0.0f));
- boolean nodeonly = post == null || !post.containsKey("node") ? false : post.getBoolean("node");
- boolean includeme = post == null || !post.containsKey("me") ? true : post.getBoolean("me");
- boolean addressonly = post == null || !post.containsKey("address") ? false : post.getBoolean("address");
- String peername = post == null ? null : post.containsKey("my") ? sb.peers.myName() : post.get("peername");
- final ArrayList<Seed> v;
- if (post != null && post.containsKey("my")) {
- v = new ArrayList<Seed>(1);
- v.add(sb.peers.mySeed());
- } else if (post != null && post.containsKey("id")) {
- v = new ArrayList<Seed>(1);
- Seed s = sb.peers.get(post.get("id"));
- if (s != null) v.add(s);
- } else if (post != null && post.containsKey("name")) {
- v = new ArrayList<Seed>(1);
- Seed s = sb.peers.lookupByName(post.get("name"));
- if (s != null) v.add(s);
- } else {
- v= sb.peers.getSeedlist(maxcount, includeme, nodeonly, minversion);
- }
- final serverObjects prop = new serverObjects();
-
- // write simple-encoded seed lines or json
- String EXT = header.get(HeaderFramework.CONNECTION_PROP_EXT);
- boolean json = EXT != null && EXT.equals("json");
- boolean xml = EXT != null && EXT.equals("xml");
-
- if (json) {
- // check for JSONP
- if ( post != null && post.containsKey("callback") ) {
- prop.put("jsonp-start", post.get("callback") + "([");
- prop.put("jsonp-end", "]);");
- } else {
- prop.put("jsonp-start", "");
- prop.put("jsonp-end", "");
- }
- // construct json property lists
- int count = 0;
- for (int i = 0; i < v.size(); i++) {
- Seed seed = v.get(i);
- if (peername != null && !peername.equals(seed.getName())) continue;
- Set<String> ips = seed.getIPs();
- if (ips == null || ips.size() == 0) continue;
- prop.putJSON("peers_" + count + "_map_0_k", Seed.HASH);
- prop.put("peers_" + count + "_map_0_v", JSONObject.quote(seed.hash));
- prop.put("peers_" + count + "_map_0_c", 1);
- Map<String, String> map = seed.getMap();
- int c = 1;
- if (!addressonly) {
- for (Map.Entry<String, String> m: map.entrySet()) {
- prop.putJSON("peers_" + count + "_map_" + c + "_k", m.getKey());
- prop.put("peers_" + count + "_map_" + c + "_v", JSONObject.quote(m.getValue()));
- prop.put("peers_" + count + "_map_" + c + "_c", 1);
- c++;
- }
- }
- // construct a list of ips
- StringBuilder a = new StringBuilder();
- a.append('[');
- for (String ip: ips) a.append(JSONObject.quote(seed.getPublicAddress(ip))).append(',');
- a.setCharAt(a.length()-1, ']');
- prop.putJSON("peers_" + count + "_map_" + c + "_k", "Address");
- prop.put("peers_" + count + "_map_" + c + "_v", a.toString());
- prop.put("peers_" + count + "_map_" + c + "_c", 0);
- prop.put("peers_" + count + "_map", c + 1);
- prop.put("peers_" + count + "_c", 1);
- count++;
- }
-
- prop.put("peers_" + (count - 1) + "_c", 0);
- prop.put("peers", count);
- } else if (xml) {
- int count = 0;
- for (int i = 0; i < v.size(); i++) {
- Seed seed = v.get(i);
- if (peername != null && !peername.equals(seed.getName())) continue;
- Set<String> ips = seed.getIPs();
- if (ips == null || ips.size() == 0) continue;
- prop.putXML("peers_" + count + "_map_0_k", Seed.HASH);
- prop.putXML("peers_" + count + "_map_0_v", seed.hash);
- Map<String, String> map = seed.getMap();
- int c = 1;
- if (!addressonly) {
- for (Map.Entry<String, String> m: map.entrySet()) {
- prop.putXML("peers_" + count + "_map_" + c + "_k", m.getKey());
- prop.putXML("peers_" + count + "_map_" + c + "_v", m.getValue());
- c++;
- }
- }
- for (String ip: ips) {
- prop.putXML("peers_" + count + "_map_" + c + "_k", "Address");
- prop.putXML("peers_" + count + "_map_" + c + "_v", seed.getPublicAddress(ip));
- c++;
- }
- prop.put("peers_" + count + "_map", c);
- count++;
- }
-
- prop.put("peers_" + (count - 1) + "_c", 0);
- prop.put("peers", count);
- } else {
- final StringBuilder encoded = new StringBuilder(1024);
- for (Seed seed: v) {
- encoded.append(seed.genSeedStr(null)).append(serverCore.CRLF_STRING);
- }
- prop.put("encoded", encoded.toString());
- }
-
- // return rewrite properties
- return prop;
- }
-
-}