Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/alanmcgovern/monotorrent

The official repository for MonoTorrent, a bittorrent library for .NET
https://github.com/alanmcgovern/monotorrent

[git] Mark all csproj files as 'text' in the gitattributes

6b8e86c9209e6d87cb9050315f87d9f766cd2603 authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Update to LangVersion 8.0 as CI supports it

And we can use some of the newer features.

6ea6e3f5fede391a52c3755576b9e1d48969acfb authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Remove some commented out code

2cc9c25fbe28c5241bb4cceb63b46c1e5aff3e1a authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Remove unneccessary methods from the IUnchoker interface

This internal interface should only expose a method which allows
a choke/unchoke review to occur...

1cb0f6851211db7bdac10ee97bedd206e77231d2 authored almost 5 years ago by Alan McGovern <[email protected]>
Add partial hash checking as a feature

087079d1e08f2d7d13ed9ae2625c504dfd849461 authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Minor internal cleanups

d53071215a5dfca3ce5338c92d88c143fe0b5c63 authored almost 5 years ago by Alan McGovern <[email protected]>
[core] Fix some xml comment issues

6458d078fab285cb16a34ea1f57adbab6f15bf6a authored almost 5 years ago by Alan McGovern <[email protected]>
[build] Bump version number for next release

a3d8ffda86c208294f1da10c2cc46ceec0a41fcf authored about 5 years ago by Alan McGovern <[email protected]>
[core] Add a PartialProgress public property

When some files are marked as DoNotDownload then this property
tracks the completion rate for th...

5731d65f9e8e95fd8b78a14a2c86380de4ed7541 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Tweak the modes to better use the CancellationTokenSource

ad279e59da9c5dc271a65d9f4958bc9eab2aafbc authored about 5 years ago by Alan McGovern <[email protected]>
[core] Integrate partial hash checking with FastResume

2e961510dfa344495f052e03a7a2e72689d56204 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Ensure HaveMessages are sent when partially hash checking

89fd617f2d71871d417f12ee3c65a3f99b5dd505 authored about 5 years ago by Alan McGovern <[email protected]>
WIP: skip hashing donotdownload files

4e625133a7d14223378d877d5375f68b1e05e745 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Handle cancellation when partial hash checking

555433844e9117d739c6007ac231c6aea5c0c623 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Hash check files as soon as they're set to download

If we have skipped hashchecking files because they were set to
DoNotDownload, we need to hash ch...

557223776329ba9b135c471b4ed54bc500a1c7d4 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Move the CancellationTokenSource to the base class

Every mode should be using this nowadays!

46a275cb0732e0d08a83da8a5efe59e653d81355 authored about 5 years ago by Alan McGovern <[email protected]>
[build] Bump to 1.0.2 for release

7ba9bebb7bd63eda5026c01b31f78c616567a9da authored about 5 years ago by Alan McGovern <[email protected]>
[core] Ensure HashingMode cancellation propagates correctly

This adds a test to ensure the Mode changes correctly and that
the CancellationException does pr...

ce68c75bc077df24482165c0a5ca26b3d3923787 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Properly change the state when pausing HashingMode

34e07e7e2b12a62b2373b3d2566441bd21b69e23 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Add the ability to pause hashing

Adds the feature requested in https://github.com/mono/monotorrent/issues/138

6b01976bc4c1c715e3519bbd601e04cebfa91d93 authored about 5 years ago by Alan McGovern <[email protected]>
Handle NullReferenceException for initialNodes in DhtEngine.InitializeAsync() method

a67e47d22f754e0c5fe95494882fadeaa06b7a42 authored about 5 years ago by Andrei <[email protected]>
[core] Remove IRateLimiter.UpdateChunks from the interface

RateLimiterGroup should not expose an UpdateChunks method as
it is dangerous to do so. If there'...

f47dd95c4eafb0b48cc1c6f90a9714365b3aa7f1 authored about 5 years ago by Alan McGovern <[email protected]>
[samples] Update the sample to emit more info

It logs successful/failing connections now, and also does not
set 'PrefersEncryption' to false a...

c2d9192febc7ee220f69d5c93769af8bd2623fe3 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Make the implementation match the documentation for PrefersEncryption

This should default to true!

009425802a1d0b2b631bc60c1d4a7b95b145bc58 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Ensure we send/receive only what the ratelimiter allows

It looks like there was a bug here and we could pass 'ChunkLength'
to the ratelimiter, and then ...

799fa64388d5c83af1293ee3f1c2c0f6e638e23f authored about 5 years ago by Alan McGovern <[email protected]>
[core] Use Interlocked.Read for this variable

This is supposed to be threadsafe without locking, which means
we should really be using an inte...

0abb0175d3f8f5d0008fc965dbd8f4ea2b78a0ad authored about 5 years ago by Alan McGovern <[email protected]>
Restore old missed but needed functionality (#135)

* Expose the base picker in PiecePicker

* Handle null reference for manager in DhtEnginePeers...

4f0f303f6e5f42745f11e6b5739f0a85769c5820 authored about 5 years ago by Andrei <[email protected]>
Update README.md

0558daa145ebf16863e438e7fcc6cf5a3ec6ddbf authored about 5 years ago by Alan McGovern <[email protected]>
Update README.md

6dab0db92da06d3b76afc89b3d3ec840580898ca authored about 5 years ago by Alan McGovern <[email protected]>
Update README.md

180d787ff3ee64077856ef4cb9ad6c3a4168e9d7 authored about 5 years ago by Alan McGovern <[email protected]>
[build] version to 1.0.1

79d99f2916de0101c0a924167da2c81de5711f3e authored about 5 years ago by Alan McGovern <[email protected]>
[core] Tweak the changes from e6fd97ebdb08a a little more

Rather than using a random to seed a random, let's just create
a single static, unseeded, Random...

2edd7092a367c873e0d522c5e87229a7439fb4ee authored about 5 years ago by Alan McGovern <[email protected]>
Use a random seed for generating peer id

e6fd97ebdb08aa91a1bacddea53493fb3771a6b0 authored about 5 years ago by Ben Origas <[email protected]>
[build] Build the new style symbol packages for nuget.org

e0486f1955ac29d388bebffc645d237c738134b3 authored about 5 years ago by Alan McGovern <[email protected]>
[build] Prepare for a 1.0 stable release.

Sure why not!

46c0a69e4d55c6e6ef678cfedac43dd25c021081 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Allow SpeedMonitor to handle very fast speeds

Over a decade ago speeds in excess of 2GB/sec would've been
fairly unthinkable, but nowadays tha...

44654cf672299ccfe17d48d97a89b67fc3b58c09 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Reorder some comparisons in an if

THe majority case will be that the Piece has blocks ready to
be requested, so in that scenario w...

8ab63c37a2df90c84939d5a2e2cffc2ddd064eff authored about 5 years ago by Alan McGovern <[email protected]>
[build] Bump to beta

I think all the API breaks are done for now.

1c4f928775057e4348f53dc7402e989a6b3e56ea authored about 5 years ago by Alan McGovern <[email protected]>
[core] Rename GetTorrents and GetManager to 'GetTrackerItem[s]'

These should have a consistent naming scheme.

c9e7ee3b66d21fcfc734ffddb4833a632ae7312a authored about 5 years ago by Alan McGovern <[email protected]>
[core] Update code comments in TrackerServer

52c0143a58f5e1e7cf12efa388b9a4ae3da14628 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Hide SimpleTorrentManager behind ITrackerItem

This lets me change around the actual implementation
later.

fa88873e6d4d03683bdb04fd3cef179a0617c7a5 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Hide some properties which shouldn't be public

ConnectionManager shouldn't re-expose things which are already
exposed in an easy-to-access plac...

6ef2a9763a15a79de074d59e596801bd9ab79cff authored about 5 years ago by Alan McGovern <[email protected]>
[core] Readonly structs are a C# 7.2 thing

Bump the lang version to require 7.2.

808321b5b8a47dc4817e21db02009db013084522 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Make AddressRange a readonly struct

It's supposed to be immutable!

7135d16d7fa67c4fd6caf16e0367c4c7e77595fe authored about 5 years ago by Alan McGovern <[email protected]>
[core] Hide two classes which are implementation details

The BanList happens to be backed by a 'RangeCollection' at
the moment, but RangeCollection is no...

9612907a8a77a1601e0a0b4129dbed2e1da55f48 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Fix issues in EngineSettings and TorrentSettings

* Renamed some properties to 'Allow*' to better indicate that
this is not a guarantee that the f...

18a9544a58209daaa36ce5db3309c71557f71e89 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Make two constructors internal

These are created by the engine and passed to events

595aaa9d4a0ee0c4dcd97d198d840c36d847bda3 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Renamespace 'EncryptionTypes' to MonoTorrent.Client

It's used by types in this namespace, so rather than having it
be the only public type in MonoTo...

1f929068089773cb6708885d39ccebabe969c057 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Improve the Equals impl for PieceRequest

This should generate better IL as this will turn into 4
simple comparisons.

133f6c90a69df937bfaa50b28d4cc930914b8cae authored about 5 years ago by Alan McGovern <[email protected]>
[core] Renamespace 'Error' to MonoTorrent.Client

It's used by TorrentManager so it should be in the same
namespace.

d62aec46c63d409f39234b329ff7a0104ce64c2a authored about 5 years ago by Alan McGovern <[email protected]>
[build] Generate the xml documentation file for intellisense

This will be included in the nupkg.

680a51cd3afa50bb9c3f0f6b297a786f2339d163 authored about 5 years ago by Alan McGovern <[email protected]>
Method for getting the list of currect active torrents (#130)

* Add a threadsafe way of getting the torrent list.

9eae6007998d4fb07fa127a65e99ec26c8ac0039 authored about 5 years ago by Volodymyr Sedler <[email protected]>
[build] Make it easier to make alpha/beta releases

Create (and commit!) a file called alpha.txt or beta.txt
to postfix releases as alpha or beta.

25d31275b872a097541456df7f7ef99b8b29ca37 authored about 5 years ago by Alan McGovern <[email protected]>
[build] Fix some more packaging

1012c0cd24b6eb01a9b765a6e9149789ce9c49fb authored about 5 years ago by Alan McGovern <[email protected]>
[build] Make the new nupkg more closely match the old one

a6fe4ff7deef4c341ba167f614f571c01be4817f authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Split this test into parts to cover edge cases

We should cover the case where we choose a reasonable number
of blocks, all the remaining blocks...

27a2c6ccdae53f771724c881613de3562ffce23f authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Don't use the real LocalPeerManager for the tests

c89a36b2683eb3ff8d556d60c450a0256bf1e4cf authored about 5 years ago by Alan McGovern <[email protected]>
[dht] Make the bucket refresh logic a little more testable

69810cf4e51cffecde4b75f5692c05525bb2a58e authored about 5 years ago by Alan McGovern <[email protected]>
[core] Add a Stopwatch which is a ValueType

dd40f7c5f4f7079033c1d886e7f7b0c144f7016d authored about 5 years ago by Alan McGovern <[email protected]>
[core] Use ValueStopwatch instead of Stopwatch

The only kind of timing we need is a comparison between
different Stopwatch timestamps. This can...

6299ffebfc37b1059489e565fbc859862a953f33 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Remove the dependency on PeerId.TorrentManager

38e0d8c74d1dec32a269bad4a622a48cd6fe6275 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Remove TorrentManager/ConnectionManager/ClientEngine from PeerId

We can get that data from a more natural place in the code rather than
shoving everything into P...

22be700fc489ad628d76adab3ed0a2405405db92 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Reformat the PeerId class a little for readability

51a2d91dc05b186751bd4e0c189b0086203ae263 authored about 5 years ago by Alan McGovern <[email protected]>
Allow the IDE to rewrite the csproj

I'm tired of fighting the IDE. It makes this diff every time I do
anything.

ce03efa4c9ed12db1359a66754e25c904bf67b2a authored about 5 years ago by Alan McGovern <[email protected]>
[core] Make the PieceHashedEventArgs constructor internal

b31ae940dcecf0b194a0a6d06eea8ac2aa15701c authored about 5 years ago by Alan McGovern <[email protected]>
[core] Add some more code comments on public events

39b82bb787dcbeb9829d1c79370ec2de790830fe authored about 5 years ago by Alan McGovern <[email protected]>
[test] Add some more checks to the ReregisterManager test

6f5024fe2f3c4a04aaddcc5020fda274d49d0af6 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Add some tests covering Peer.Equals

I fixed a bug in this in an earlier commit where
the Equals method preferred the PeerId, but the...

1afd92a9caaeaaa11fdcc83a403bb2b629f9f628 authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Reduce lengthy timeouts in the Dht tests

86a35f3f78db912d39ebbbe2a6812a449e52059a authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Refactor Mode, and subclasses, to be testable

Split up the monolithic TorrentManagerTests.cs into separate
sets of tests, each verifying the b...

b4ee76b33a32698a79bcde8204f4ae328e9da04b authored about 5 years ago by Alan McGovern <[email protected]>
[core] Add a StartingMode to simplify testing

TorrentManager.StartAsync ensures the TorrentManager has been
registered with a ClientEngine, an...

1b8cc1c109f3e767979447c3fca35589b7de31d4 authored about 5 years ago by Alan McGovern <[email protected]>
[core] MetadataMode handles all announces when it starts

We should announce using Local Peer Discovery, DHT and any
available trackers.

3d63f8a71060f79404688562ff3da2effd28cacb authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Add a timeout to our extension method

If the torrentmanager does not enter the desired state within
a certain amount of time, then we ...

fe85d0f97e0fa8eb887a0e56b5475b0c8777ac40 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Respect the actual MaxPendingConnections value

Now we'll have one more connection attempt, as was expected :p
It'll be a tad faster spinning up...

2ef429452b030a33c54682aa7ce74bb078b1184f authored about 5 years ago by Alan McGovern <[email protected]>
[core] Remove usages of id.TorrentManager

8c3cf516bc687de5c5b3cb1767c73005a39af457 authored about 5 years ago by Alan McGovern <[email protected]>
[tests] This may or may not throw an exception

This test is just ensuring that the returned task is marked as
complete. We don't care whether i...

9f098106b3fff4aada331c5979cd9bdd4a3a9ee4 authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Misc cleanup

de57f8534d77c0a181732c3b612a2592e487482c authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Use Assert.ThrowsAsync instead of try/catch

db53204664292d6d4c47d822c21b152e9dd46be2 authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Tighten up some timeouts now that it's all async/await

Now that the codebase is all async/await we can make these timeouts
much shorter as we can be su...

5909826c2ffc2d6c1c8b6e464234a2ae31e333cf authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Speed the tests up by removing long timeouts

We don't need to wait 500ms, twice, in order to test the timeout
behaviour of HttpTracker. We ca...

450017297111a78fefe21b507629b16578084609 authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Use the WithTimeout extension method

3f461e1acac8cb04abfe64d01c14636a812eb97c authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Remove TransferTest.cs and create PeerIOTests.cs

The code has two classes, NetworkIO for raw reading/writing, and
PeerIO when we want to send/rec...

bc7c11d1a6e8a357a1608f38a3c47ebbccfc40b9 authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Add a simpler way to time out on async network tests

Build in a timeout for ConnectionPair so that we can add a simple
timeout when we create the fak...

e038facbd0e3d41b0a49bb266bb2f80a8435707d authored about 5 years ago by Alan McGovern <[email protected]>
[core] Fix some edge cases in RandomPicker

Ensure that the chosen midpoint is always greater than the
start index.

If there is no midpoint...

59f8a93afa7165fbdce64dfb89ed55b4b9f9d2a2 authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Ensure the webseed tests don't use a random picker

This makes the tests a little unpredictable as we can't make
direct asserions on which files wer...

b8631bdbfceb6ff4cada6145d118a6d9a6a7cadb authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Remove class level variables from some tests

The buffers can/should just be instantiated inside the
tests which need them.

8720d38a96e107bdf44df6e4930ae3ea5e9b0fbf authored about 5 years ago by Alan McGovern <[email protected]>
[core] Make PiecePicker.PickPiece Pass the Bitfield we choose from

If we change the semantics slightly we can make this a bit easier
to work with. PiecePicker.Pick...

01e5219c03fc970d2def3b6fece0c71c46b41d57 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Clean up the PeerMessage creation code

Now that it's moved to ITorrentData i should rename the variables,
and while i'm at it i should ...

c2046821f71057a41f37e899b27c3df2c64bdf75 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Move PiecePicker to use an IPieceRequestor instead of PeerId

PeerId is a massive grab-bag of everything imaginable. Attempt to
keep things separated, and eas...

75b9bc8034d8516cbd03115487338bfafca2bb75 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Make PiecePicker use ITorrentData to get it's data.

Rewrite EndGamePickerTests to rely on ITorrentData instead of
spinning up an entire ClientEngine...

ba8c0c78c716c4fd1ad0c38a079166b0792295a5 authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Remove TestRig from LibTorrent and Standard message tests

729dc2e86784b3ecd3d291db88a4b14aaa428ca5 authored about 5 years ago by Alan McGovern <[email protected]>
[core] Redo PriorityPicker and PriorityPickerTests

This picker now calculates and caches the bitfields it needs
to select pieces in prioritised ord...

13808ac3f03f3efe69d382e0a017823502d4e0be authored about 5 years ago by Alan McGovern <[email protected]>
[core] Update RarestFirstPickerTests for the new world

Use ITorrentData rather than a TorrentManager+TestRig

a8d29b2839523c3515c8f9c321de5d19942ab38c authored about 5 years ago by Alan McGovern <[email protected]>
[core] Make some more of IPieceRequestor readonly

The consumer of this interface shouldn't be able to set the
'IsChoking' status. That's controlle...

edc0ea1d5ef3659d95449bb65e7ae0d91fc97f9f authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Remove duplicate tests and message send/receive helpers

TransferTest does not have to cover every possible encryption
combination as that's what Encrypt...

d68f100445d795b91f4303e76bfc408cf2fa73bd authored about 5 years ago by Alan McGovern <[email protected]>
[core] Send the handshake as part of the encryption negotiation

This is what attaching the payload is supposed to be used for,
so why not use it! It's easy to d...

3c3a4e9882a20cf3780312cbf0e0c49f9828572a authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Rewrite the encryption tests and EncryptorFactory

Rename TestEncryption.cs to EncryptorFactoryTests.cs and then redo
the tests to not rely on Torr...

fdc1b8f3e0f0c535d6b523126877c70bf20b7137 authored about 5 years ago by Alan McGovern <[email protected]>
[tests] Don't use an actual Socket for the tests

Use a simple(ish?) implementation of a Stream that acts like
a socket instead. To mock a connect...

e02222b88b8d0fb3d02cfc8cc8602002b42b907e authored about 5 years ago by Alan McGovern <[email protected]>
[core] More severe cleanup of the EncryptedSocket code

This is still mostly superficial changes.

c4bb4183711d71cb2f19777e2e2318913e0ba86f authored about 5 years ago by Alan McGovern <[email protected]>
[core] Add tests covering most aspects of DiskManager

This includes adding the capability to test the ratelimiting
code by faking how fast time is pro...

2f5254ecf886f60d975a6dd28fcfa651e3ac7a95 authored about 5 years ago by Alan McGovern <[email protected]>