Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
MonoTorrent
The official repository for MonoTorrent, a bittorrent library for .NET
Collective -
Host: opensource -
https://opencollective.com/monotorrent
- Code: https://github.com/alanmcgovern/monotorrent
We require the full path to the file where the metadata
will be written to. Let's not make guess...
There were some off-by-one errors and casting bugs.
I should add more tests covering this.
github.com/alanmcgovern/monotorrent - a73c6ca1f6dfdeb062c2a236a307dbd31eefaf2c authored about 4 years ago by Sam Hocevar <[email protected]>
github.com/alanmcgovern/monotorrent - fcab9e71e5e29b5cbfee0427c2843d4025c490ca authored about 4 years ago by justscribe <[email protected]>
Remove an extra variable we don't need.
github.com/alanmcgovern/monotorrent - ad9424c674710b75086e3c5be4acf15d02e320dd authored over 4 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - b56f07328e78fd6652646dbacb9ac3bb30e21449 authored over 4 years ago by Vladimir Strizhakov <[email protected]>
Clean up some code by adding the 'Async' suffix to
async methods, removing dead code, and ensuri...
As per code comment - if ReceiveYAsync completes synchronously
it will immediately call SendAsyn...
github.com/alanmcgovern/monotorrent - 0bcbd2566ff7b2d2f463c4b01fd04ae93110b265 authored over 4 years ago by Alan McGovern <[email protected]>
This has an API break (methods were removed).
github.com/alanmcgovern/monotorrent - 93d6eabc6223859086de05336ede963a6d860b9d authored over 4 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - 47d275e70b02a96be8649676d2166fc8840c436a authored over 4 years ago by Alan McGovern <[email protected]>
Just use a simple IList<IList<string>>, or IList<string>
for these. No need to have funky wrappers!
If we call StopAsync while actively downloading we may
be writing to the file when we go to try ...
We should update the offset *after* we have finished
hashing data. This ensures that anything ca...
github.com/alanmcgovern/monotorrent - 8ba56448ed3330ea0bc1737889c310c6eac764f4 authored over 4 years ago by Alan McGovern <[email protected]>
This approach is threadsafe and simple.
github.com/alanmcgovern/monotorrent - 03a711e24eb5f45f9c276b7db40383fe6fe67228 authored over 4 years ago by Alan McGovern <[email protected]>
The main goal of this is to make ITorrentFile and Torrent immutable.
It also clearly separates t...
github.com/alanmcgovern/monotorrent - 3f392c5d97f0db722c42747ac7fde890244d1583 authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 7373f73620b6143f118598c6f2b1ab73c14795f0 authored over 4 years ago by Alan McGovern <[email protected]>
Run CancellationToken through the tracker APIs. Add a cleaner
API for dynamically adding/removin...
If dozens, or hundreds, of torrents are started
concurrently then we should limit the announces
...
We can now cache a buffer to re-use for our receive loop.
This reduces the amount of times we ha...
This is a small tweak to allow significantly less context
switching while sending messages to a ...
It's a little more efficient this way as we're reading from the socket
in parallel with actually...
Buffers used to send/receive from sockets should be
stored separately to ones used to retain blo...
This is a bit better performance wise as the final
hash will be performed while on the threadpool.
Ensure we have *either* an 'announce' key or an
'announce-list' key.
If all the tiers are empty...
github.com/alanmcgovern/monotorrent - ef43b13c4c4ef1cb0418dc7eb40e003c36da8e11 authored over 4 years ago by Alan McGovern <[email protected]>
This unblocks the disk io loop so it can process more
reads/writes concurrently.
Spin up a few monotorrent instances and have them connect to
each other. It's the easiest way to...
github.com/alanmcgovern/monotorrent - 319d5b373dbe8870eb41bd34cc10c73093b36213 authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 68ffa61c8b4d53f1f2202d33585c7d16e9266c12 authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - f9a25f0802c42e34e1e8222b996d1149863941a1 authored over 4 years ago by Alan McGovern <[email protected]>
We still need to pass the 'Peers' list into the event args.
Oops.
github.com/alanmcgovern/monotorrent - d406be2fed436a10dad0324c1fd514bc179cd516 authored over 4 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - f50cb4bb445cd278093b9c7d03b959ee1ee4d2dc authored over 4 years ago by Alan McGovern <[email protected]>
As this is controlled via an IDispoable now, we don't need
to verify the correct buffer is being...
github.com/alanmcgovern/monotorrent - 3617f1dd9ae9c4f0c812b84d8c2f9ad493ca6acf authored over 4 years ago by Alan McGovern <[email protected]>
Now we're consistently on the threadpool regardless of
whether we need to test an encrypted conn...
github.com/alanmcgovern/monotorrent - c25ab58a347f128ef33f8a846710a0ebc948c1b7 authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - f49c92387f8181f56ba594266756c02d49c6fe10 authored over 4 years ago by Alan McGovern <[email protected]>
Use the 'Async' ones nowadays.
github.com/alanmcgovern/monotorrent - 56ef46cff9b657ebd2ef5dd9e868907de7deb3ed authored over 4 years ago by Alan McGovern <[email protected]>
Now all the message encoding/decoding, encrypting/decrypting
as well as the actual network io ha...
We can drop them a little faster if we check peerid
while deciding if we should re-use the conne...
github.com/alanmcgovern/monotorrent - 7e637d38fc97c6f60be08986b09c033e3d032e41 authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 979f1280203c69bb5b4a0f832333db737a628af4 authored over 4 years ago by Alan McGovern <[email protected]>
Make it internal, and now that it's internal API we can simplify
it. We only ever want SHA1 and ...
The async methods are fairly awful perf-wise and appear
to do a lot of work synchronously (accor...
If we are listening at an endpoint which ends with
'/announce/' then we should additionally list...
This breaks the API for anyone implementing a custom
connection. They'll need to return a Reusab...
This is a relatively small change in the grand scheme
of things, but it allows for a few improve...
Make BufferPool return an object which allows us to
cache the SocketAsyncEventArgs alongside the...
github.com/alanmcgovern/monotorrent - 53c382fdd3c93e9281046f1cf372dfdb43bb3339 authored over 4 years ago by Alan McGovern <[email protected]>
If you have not called WaitForMetadataAsync and try to create a
stream, you must have passed in ...
github.com/alanmcgovern/monotorrent - f360a69c53e319c801ee3e19f02f3e23ba456091 authored over 4 years ago by Alan McGovern <[email protected]>
Fixes https://github.com/alanmcgovern/monotorrent/issues/314
Patch suggested by usikpavel
github.com/alanmcgovern/monotorrent - 31c0027638ab39b9da0676b7faf0ee9b24b4dad6 authored over 4 years ago by Alan McGovern <[email protected]>
Now we can wrap buffer usage in a 'using' statement in the
majority of cases, which is a neater ...
github.com/alanmcgovern/monotorrent - d7ee65799f55838cf6da9c3e24961b5ac0cb60c1 authored over 4 years ago by justscribe <[email protected]>
We cannot have proper piece picking in metadata mode as we do
not acutally know how many pieces ...
This should be created inside PieceManager like everything else.
This way when we swap between m...
github.com/alanmcgovern/monotorrent - c51c8c211fc4ce91820f31e2ae0bbf2aa0f928fa authored over 4 years ago by Alan McGovern <[email protected]>
As soon as we create a PeerId we put it in the Connected list.
This means that if we are in meta...
github.com/alanmcgovern/monotorrent - e8bb197507df5e73858ad6a066f9381d6970b3f8 authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - e04fc963d2ac6fcaed06115eb8ee2c5dbd7eca2a authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - c4b1460f001c781e5536fb929ff8a496c9bd95a7 authored over 4 years ago by Alan McGovern <[email protected]>
This reduces the chance of a collision when tests run
in parallel.
We should ignore them when they're received. This is
implemented by special casing the situation...
If you create a torrent from a magnetlink with trackers,
ensure those trackers are maintained as...
github.com/alanmcgovern/monotorrent - 27b8ea5fd1c85ec5a03ce248348b83f94a5c3fac authored over 4 years ago by Aleksey Vlasenko <[email protected]>
github.com/alanmcgovern/monotorrent - adc69a0edc605c4e40b76aee595d3aef6a47a7de authored over 4 years ago by Alan McGovern <[email protected]>
Now they can be trivially executed under .NET Core as
well as desktop .NET 4.7.2.
Also, the HttpTracker tests are flakey under .NET Core
as it appears to have a buggy implementat...
In the event there's a bug we may cancel the tcs in the test. When
this happens we don't want to...
Sometimes we *want* to time out and do something with the
exception, so don't force tests to fai...
We can handle a null IDisposable :)
github.com/alanmcgovern/monotorrent - 5a85faf6dd27124357dd29f6e63717d5767e64e2 authored over 4 years ago by Alan McGovern <[email protected]>
This typically fastpaths and exits early, so make it a ReusableTask
so it becomes zero-allocatin...
Save some repeated allocations by caching the array used
to hold the infohashes. We are likely t...
github.com/alanmcgovern/monotorrent - bb678867f2ed6236b068378927548da0b6170ea3 authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 69a07221f7a1927d8e567bb8ffb62814f50ea664 authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - b237c05416684079759d6c48f183ff28e715415a authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 5d8c2fa043f73e9fb232587c7e8f3d1ac7e8ac30 authored over 4 years ago by Alan McGovern <[email protected]>
We should throw the pending exception after the args
have been prepared for reuse to avoid an in...
It's needed in a few places, so ensure we set it consistently
and can easily tweak it in future.
If we receive a libtorrent extension handshake with no value
set for the max pending requests, i...
github.com/alanmcgovern/monotorrent - 81c7255593b5406cb08d5dbc2e614206d359149f authored over 4 years ago by Alan McGovern <[email protected]>
Ensure the incremental hasher takes the torrent manager
as well as the piece index into account....
The state changed event is asynchronous.
github.com/alanmcgovern/monotorrent - 7dc9025275adbc1a4258ae2ae743aaece6aa3771 authored over 4 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - 2f54e799dbf4931cd6d8dfee7bbb697af12198a3 authored over 4 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - c407ba02618254358398369424dc967445389b51 authored over 4 years ago by Aleksey Vlasenko <[email protected]>
Fixes https://github.com/alanmcgovern/monotorrent/issues/287
github.com/alanmcgovern/monotorrent - 57f7c224fe5737cb64d2f65bc135586c5474a93e authored over 4 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - ae2e4077a45a40de82d4294722abadd1cd12309a authored over 4 years ago by Alan McGovern <[email protected]>
This support is built on top of Mono.Nat but can be swapped
to any other implementation if neede...
Greatly simplify the code in ChokeUnchokeManager. We now run a review every minimumTimeBetweenRe...
github.com/alanmcgovern/monotorrent - c9b1ebca329e5d89ccdfc4bf2dff1de66c9673ed authored almost 5 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - 55a4b7f6c7ba49c687f223ca4c1fc6ebe81a411b authored almost 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 9cb51410bfc95f802848ae4485d729bfeca5af13 authored almost 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 661342853df67269b5db9ce980c1f3eaea90b5d7 authored almost 5 years ago by Alan McGovern <[email protected]>
This is currently slower than regular seeding mode.
I'd like to fix this to avoid frequent choki...
If the TorrentSettings has set the upload slots to 0 it
is supposed to mean 'unlimited'.
This c...
github.com/alanmcgovern/monotorrent - ef171db11a542050bf4c85df85697071605b3779 authored almost 5 years ago by Alan McGovern <[email protected]>Remove lots of dead commented out code.
github.com/alanmcgovern/monotorrent - f13e073e0ee0ed65500f3e5dc071a07c8320e508 authored almost 5 years ago by Alan McGovern <[email protected]>
This is better than Task.Run and then calling a
blocking API to download the data.
github.com/alanmcgovern/monotorrent - 22fb6f12b0d54e3f64f0d7f9a2745656ba202470 authored almost 5 years ago by Alan McGovern <[email protected]>
Simplify the code by making it throw an exception
if someone uses a 2 digit version number. As w...