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
53ff056ad499c0162db4108f93e502bfb07be3a1 authored almost 5 years ago
Target a 'FromMagnetLink' method for removal.
If we have a magnet link we should use the
MagnetL...
b27a1a1059bd5aef84b04565e1ad55c8e1728f5e authored almost 5 years ago
502a76ff71648f68eae14fdf64a266ccc00b7a4e authored almost 5 years ago
Ensure we download the first and last pieces before giving the user
the Stream. This means a str...
StreamProvider can only work when we know which file
needs to be streamed. Add a simple way for ...
Most of the corner cases should be tested! I tweaked
several internal aspects of the library to ...
a25155ba9f99f5d304e0b801acbd7f763ca163c4 authored almost 5 years ago
This reverts commit 615e6872e731b65fe896d834117d9a607451cdfc.
I'm going to finalise the API and ...
Hopefully this will make it easy to understand how
to use this class :)
Now it can more easily (and properly) be detected as MIT licensed code.
f6557463add1a93983ea581a372f61790870fa12 authored almost 5 years agoc438bdc9e363e7f297bbb7c81a873be1e45dfe9b authored almost 5 years ago
This also adds an internal WithCancellationToken
method.
I should do it as two commits... but...
c04864fbcb0d4340c218d2f59f3f898265897243 authored almost 5 years ago
We need to do this in order to throw any stored
exceptions.
Torrents in MetadataMode do not have torrent metadata and
so will have a null 'Torrent'. Don't t...
12b9b4fde9db1f63da885b5fc5cf11491022a034 authored almost 5 years ago
We don't *have* to throw and catch exceptions when
loading these files. We can check if they exi...
If the tracker gives us a peerid we should not *required*
the peer to have the exact same peerid...
Ensure a file exists before trying to load it. This
reduces the amount of exceptions thrown, whi...
Add a method on ClientEngine which allows someone to
download the metadata for a torrent without...
Ensure we properly allocate data/protocol bytes sent/received.
d78d5527591e1ccca54f7027aca9a4173e4ff5bb authored almost 5 years ago9b158b2450a9d292666ac369ba3bb6919035b769 authored almost 5 years ago
Add an 'Unknown' state to represent when we haven't
sent an announce or scrape request to a trac...
Let's release this as stable
b28e6df3ddae7835fd8c5a95dd04a5d6dcf78b4e authored almost 5 years ago615e6872e731b65fe896d834117d9a607451cdfc authored almost 5 years ago
If a player requests too much data, clamp the request
and only return the data we have.
23abf8171443df53fed5439348e0065af6d574e6 authored almost 5 years ago
We don't want to use the short-lived TorrentFileStreams from
the DiskManager class as those can ...
ff68ee49df3bec69899cf15620cc131ce68fbae6 authored almost 5 years ago
8a522fdd0c21c138d1d5b5455caccc3558045b67 authored almost 5 years ago
This is a built in way to stream media while it is
actively being downloaded.
This feature supp...
fed2404ea62479ef7b18fd4771ace1a77f895170 authored almost 5 years agof23f93ce45d2de4487baeb168a749f0c5f9e37d3 authored almost 5 years ago
This is the intent of the spec. The fact MonoTorrent did not do
this before is a bug.
Fixes htt...
b2976a0259ec3d613b2df4f186c877426a50e2eb authored almost 5 years ago
Don't let these accidentally run on the main client loop.
If the DNS server is slow to respond i...
Push all the socket crypto work to a background thread.
While it's not a lot of CPU time, it's s...
We can fastpath the async invoke codepaths for cases
where no event handlers have been attached....
When we're hashing torrents with hundreds or thousands of files
we can update the bitfield more ...
Save a fair few allocations when emitting a lot of
async events. Should reduce time spent in the...
ClientEngine and TorrentManager can be instantiated without
forcing people to pass in a settings...
This was not part of my previous push, oops. It ensures
the same type of exception continues to ...
Realistically websites could add any number query parameters
to the link, so we should just igno...
aa5f6a8e607e57215c8e800ea0b2cd961d36424e authored almost 5 years ago
8b94c1e47fa896cd945b19e34835d5bb87a4ae08 authored almost 5 years ago
The logic is all shared in one class now.
As part of this there was a mild refactoring
of the lo...
We can reuse the 'peek' buffer when reading 1
byte at a time to avoid lots of unnecessary
additi...
c3ab926c4f740b630c1c5db3ddd59e4da0dba47a authored almost 5 years ago
Users can tell how complete the hashing progress is. This takes
into account the fact that files...
ea99919d95de8a659fe2089b967600e1437f8e04 authored almost 5 years ago
The LPD code should take into account the fact that multiple torrents
may announce in a relative...
5554f454532cbb40022840aec3e4449b12fbec95 authored almost 5 years ago
Thanks to vlasenkoalexey for the original patch.
1bdb99a2dc3ac34ec4f1ddf98797c12561876446 authored almost 5 years ago
If you're loading torrents in a UI application you nearly
definitely want them to load without b...
The profiler shows these as being potentially slow operations,
so ensure we bounce them to the t...
If it's not HTTP or HTTPS we'll simply ignore the url and move
on.
Oops :p
86d43bcbaf4b94d03c89d02ccba4bf3f1b024671 authored almost 5 years ago
Ensure this executes on a threadpool thread to reduce the
chance of the UI thread, or main monot...
It allows naming the various parameters, which makes
it much easier to consume tuples throughout...
Rather than storing one bitfield per TorrentFile just
to represent the start/end piece, we can u...
I thought .NET optimised static local methods passed
so that when they were passed as a delegate...
8cdfb95bb163b9091eb44301d18879674c416f80 authored almost 5 years ago
0f5688c4965424a0fe8bed3202470cf3c73369b5 authored almost 5 years ago
Clarify the names of parameters and slightly simplify the
logic.
Patch primarily by @ilyalatt, ...
e01e537901deb8f4efa5c664ac9c0c8f2c77cd1b authored almost 5 years ago98f2dfee9a591376d872b50683fa42cb3f708f10 authored almost 5 years ago
These overloads allow passing a state object, which
means we can pass a ValueTuple and have allo...
This breaks under some versions of UWP because it
has a bug.
https://github.com/dotnet/corert/i...
15a290d6966eaf7c18b73730d76caa4724c70429 authored almost 5 years agod5ffede75f1a0a0fac89bb524bf73b861f1773f4 authored almost 5 years ago
62c86c563d51228648ba23aea6d071dea5d447cc authored almost 5 years ago
c1006d2e3c069c0483009be924c803bc65f178fb authored almost 5 years ago
This is going to be much faster than a linear search
if a torrent contains hundreds, or thousand...
We no longer clear the peer list when stopping
a torrent manager. Instead the peers are marked
a...
* apply resharper global refactorings
* reformat after updating editorconfig
* unbreak aft...
353090e6f0751ade9bd1531743847a9161e45425 authored almost 5 years ago
Generate the InternalsVisibleTo attributes using msbuild instead
of C#.
82b9083aeb80fdd8e4ed0b94bbe3538004bac09a authored almost 5 years ago
We should be asserting on the default value
rather than setting it in the ctor.
Also the assert...
eddedc10db927f985bfc940673fcb2e4b5509e8f authored about 5 years agoa85a5aa27a09d41a9cd40b04115d398d748c661a authored about 5 years ago
37a932fde79456adc4e31f0b6438a7b4b161968a authored about 5 years ago
fab197d5951f754d243d5c89f6ddc01bb842746b authored about 5 years ago
Add tests ensuring the semantics of when items are
initialised is explicitly covered.
We should have one test covering this
codepath.
Use different build definitions for each branch because azure devops
seems to have lost the abi...
383a0e23ef9d95570e27947597c05353253f3a67 authored about 5 years ago
If the port is already in use we definitely enter
the correct listener state now.
Also fix an off-by-one error when validating the index.
9c50931d4e33d859bbebf263fd675541b5706aae authored about 5 years ago
If you click on something the list of builds will be pre-filtered to the
correct branch now.
Badges all the way!
7a9b6385fc61036b8e39f56ce61432466e7406ea authored about 5 years ago
Add tests covering some of the remaining cases. These
are mostly just parameter validations.
This only exists to make debugging easier, but the VS debugger
works well with the DebuggerDispl...
I'm a monster! This will make traversing git history a little trickier,
but it's probably better...
As long as people use an editor which supports .editorconfig
files then everything will be forma...
This was introduced in the recent refactoring.
\
3d0cc79364a83acd159c06bcdced7b7589f646f0 authored about 5 years ago
b79c791029266d5f95317745dc7730f71c8ebd1e authored about 5 years ago
Added build status and code coverage badges for `master`
and `monotorrent-1.0`.
d607dfb48398d9468dc438fdbfcf45dc6ebd6563 authored about 5 years ago
2ad4a7f04a39f07bb2312da207df872c68afa9f3 authored about 5 years ago
d6c14c50d2ea88f2b5f5d17ea1024b633ff5c03d authored about 5 years ago
617e4bc48750db3309ff57dbe456c3eb059354fc authored about 5 years ago
This allows a relatively simple override for the final announce
so that the returned task doesn'...
Ensure path traversal attacks are prevented by disallowing
torrents with embedded path traversal...
f540ac984ff66ac2ce99bb33dff27aa474f9c45a authored about 5 years ago