Commit Graph

39 Commits

Author SHA1 Message Date
Justin Li
87c68f1973 2015 2015-01-01 12:02:25 -05:00
Jimmy Zelinskie
d754b5b376 Return PeerMap by reference.
In accordance with `go vet`, locks should only be returned by reference.
2014-10-28 12:28:51 -04:00
Jimmy Zelinskie
deb44da5f0 add missing json struct tag 2014-09-29 15:14:46 -04:00
Paul Saab
be2ddb7e4d Fix IPv4 stats
net.ParseIP() will return a v4mapped address which makes len(ip) ==
IPv6len and breaks stats for IPv4 requests.
2014-09-29 11:55:18 -07:00
Paul Saab
2b8dec07fe Use atomics to track peermap size 2014-09-24 16:24:36 -07:00
Jimmy Zelinskie
b910fdabf5 Organize peers by subnet.
This commit restructures PeerMaps to be a map from Subnet to
PeerID to Peer. This reduces the complexity require to gather peers from
the same subnet.
2014-09-23 23:00:50 -04:00
Jimmy Zelinskie
6a96245d90 AppendPeers now uses readlock. 2014-09-15 22:14:27 -04:00
Justin Li
976a983aa7 go fmt [ci skip] 2014-09-03 10:18:26 -04:00
Cooper Lees
26de6d2e9c Respect a clients AF Optional Support - config driven 2014-08-21 07:11:35 -07:00
Jimmy Zelinskie
fc18028796 Fix Purge reporting all peers as Seeders
PeerMaps now are constructed with a boolean value that tells the map
whether they are hosting seeders or leechers.
2014-08-05 06:57:48 -04:00
Jimmy Zelinskie
01fa778ce2 JSON Encoding for PeerMaps 2014-08-04 07:05:13 -04:00
Jimmy Zelinskie
9e45f77efe Create peermap.go, add documentation 2014-08-04 06:37:31 -04:00
Jimmy Zelinskie
3cb286fb40 Introduce thread-safe PeerMap 2014-08-04 06:15:08 -04:00
Justin Li
d610b4ebb0 Address easy golint comments 2014-08-01 16:16:38 -04:00
Justin Li
ac61c7880d Record raw upload/download 2014-08-01 16:07:10 -04:00
Jimmy Zelinskie
f747a79c8c Calculate up/down delta before altering peer 2014-08-01 15:11:37 -04:00
Justin Li
6f514cbad5 Fix snatched logic to read seeder list before updating it
Refactor more
2014-08-01 13:35:35 -04:00
Justin Li
14fd5612af Remove user snatches (should be handled by backend) 2014-08-01 13:25:30 -04:00
Justin Li
24b4437edd Initial refactor to store more in the Announce 2014-08-01 13:24:24 -04:00
Justin Li
bfd8e110ea Add a comment explaining why Peer.IP is unambiguous 2014-08-01 12:50:24 -04:00
Justin Li
b628b934ac Only keep one IP in the Peer type 2014-08-01 12:37:35 -04:00
Jimmy Zelinskie
e52e4d5f1d Introduce PeerKey
PeerKeys are used to prevent overwriting of peers which want to announce
for both IPv4 and IPv6.
2014-08-01 11:21:57 -04:00
Jimmy Zelinskie
ffb3c57181 move whitelist into cfg 2014-07-25 16:58:26 -04:00
Justin Li
818bef28d7 More refactoring of error handling 2014-07-25 03:05:43 -04:00
Jimmy Zelinskie
941de3d12e goimports 2014-07-25 01:46:58 -04:00
Jimmy Zelinskie
788b349dd7 ClientError base type struct -> string 2014-07-24 19:34:17 -04:00
Justin Li
02f67b4259 Create a ClientError type to distinguish between failure modes 2014-07-24 17:57:44 -04:00
Justin Li
b227fc1fcd Support dual-stacked peers 2014-07-23 13:15:04 -04:00
Justin Li
6396990e52 Move errors to tracker/models 2014-07-23 00:37:30 -04:00
Justin Li
ba1ad7f5bf Prevent non-active peers from announcing events 2014-07-23 00:30:11 -04:00
Justin Li
e17c984ec8 Fix semantics of seed stats, fix Peer.IPv6() always returning true 2014-07-22 01:06:30 -04:00
Jimmy Zelinskie
2c8894fbda rollout more stats 2014-07-21 20:24:51 -04:00
Justin Li
af57763882 Commit some staged changes 2014-07-21 10:53:26 -04:00
Jimmy Zelinskie
78d94d1e99 Change PeerMap key to PeerID 2014-07-19 04:21:28 -04:00
Jimmy Zelinskie
5bd3b3efb3 update docs all around 2014-07-18 19:09:06 -04:00
Justin Li
67a8473f6e Clean up types more 2014-07-17 01:14:50 -04:00
Justin Li
9dde295b7c Move AnnounceResponse and ScrapeResponse to models 2014-07-17 01:10:50 -04:00
Justin Li
343b3358a1 Move NewAnnounce and NewScrape to http, since they are an implementation detail 2014-07-17 00:54:53 -04:00
Justin Li
da19ed3e21 Separate tracker logic from the http package, step 1 2014-07-17 00:09:56 -04:00