mirror of
https://github.com/anthonyraymond/joal.git
synced 2024-09-20 15:26:25 +08:00
Ensure Thracker url are used in order
This commit is contained in:
parent
9ebfeba1f1
commit
362d1d1197
|
@ -21,6 +21,7 @@ import java.io.IOException;
|
|||
import java.net.URI;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
@ -31,7 +32,10 @@ public class NewTrackerClient {
|
|||
private final TrackerClientUriProvider trackerClientUriProvider;
|
||||
|
||||
public NewTrackerClient(final MockedTorrent torrent) {
|
||||
final Set<URI> trackerURIs = torrent.getAnnounceList().stream().flatMap(Collection::stream).collect(Collectors.toSet());
|
||||
final List<URI> trackerURIs = torrent.getAnnounceList().stream() // Use a list to keep it ordered
|
||||
.sequential()
|
||||
.flatMap(Collection::stream)
|
||||
.collect(Collectors.toList());
|
||||
this.trackerClientUriProvider = new TrackerClientUriProvider(trackerURIs);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import java.net.URI;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
class TrackerClientUriProvider {
|
||||
|
@ -14,7 +15,7 @@ class TrackerClientUriProvider {
|
|||
private final Iterator<URI> addressIterator;
|
||||
private URI currentURI = null;
|
||||
|
||||
TrackerClientUriProvider(@SuppressWarnings("TypeMayBeWeakened") final Set<URI> trackersURI) {
|
||||
TrackerClientUriProvider(@SuppressWarnings("TypeMayBeWeakened") final List<URI> trackersURI) {
|
||||
// TODO: sorted(new PreferHTTPSComparator())
|
||||
this.addressIterator = Iterators.cycle(trackersURI);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue