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
Add some tests verifying that writing the blocks for a Piece
with 3 blocks, in every permutation...
DiskManager now uses 'ITorrentData' to retrieve the list
of files, the torrent size and the piec...
This includes adding the capability to test the ratelimiting
code by faking how fast time is pro...
Add some APIs so we can check the cache hits and misses from
the MemoryWriter.
The DiskManager now stores/uses an IPieceWriter rather than
the old PieceWriter abstract class. ...
It's a bit nicer to have an extension method 'InvokeAsync' as it
is more natural. It allows usin...
The Dht engine is something we can Announce to, in order to inform
other peers we are downloadin...
github.com/alanmcgovern/monotorrent - d01245e9c00713a97618099db8da4d1f12ebeb59 authored over 5 years ago by Alan McGovern <[email protected]>
PeerExchange messages would never be sent, or processed, for
private torrents. However to be a l...
Just makes sure that external peers cannot be added
to a private torrent using a bad ILocalPeerL...
The DhtEngine is registered at the ClientEngine, so the ClientEngine
should be the only one addi...
Also we need to call the new method when adding peers from
trackers!
Covers fix in a863bba8a202dbb3033357f4eda8ad0b712e454f
github.com/alanmcgovern/monotorrent - 70378fa6f2f5fee77d483c43a1db9ea57c163544 authored over 5 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - f55ba6a2246815bd0fef33ffa4381c49cb7d80ec authored over 5 years ago by skelder <[email protected]>
Some small renaming and better handling of default values.
github.com/alanmcgovern/monotorrent - a86ba7fedffdc368904fcbee5c8f24c565da8e05 authored over 5 years ago by Alan McGovern <[email protected]>
Take advantage of the ability to await the hash checking code
to simplify concerns.
HashingMode...
github.com/alanmcgovern/monotorrent - edb68f00ed68606a05416c187db4adb2ed9a4ac3 authored over 5 years ago by Alan McGovern <[email protected]>
Use autoprops. Rely on the base implementation of HandlePeerConnected
to do the right thing when...
Use auto props, use spaces instead of tabs, rely on the base
implementation of 'HandlePeerConnec...
Only one place in the code created this before the TorrentManager
was known. It is trivial to de...
Two different connections to the same ip/port/peerid should be treated
as distinct sessions as i...
StartAsync should signal that it is 'Complete' as soon as the mode
transitions to anything that ...
The PeerConnected/PeerDisconnected events expose the PeerId which
has Connected/Disconnected. Th...
github.com/alanmcgovern/monotorrent - 0fe62dad2fea16f5cf2fbe8f83c9f441d01194f6 authored over 5 years ago by Alan McGovern <[email protected]>
As stopping a torrentmanager boils down to waiting for a few
Tasks to complete, we can simplify ...
This has been reworked to provide better insight into why
an outgoing connection attempt may hav...
github.com/alanmcgovern/monotorrent - 3b23a4cacf0b4fb02715f127fa45ab348ed3ca50 authored over 5 years ago by Alan McGovern <[email protected]>
This is consistent with the rest of the codebase and indicates that
these are just the range of ...
github.com/alanmcgovern/monotorrent - 3528e979a64e4ac2c55822c34f02669f36301be7 authored over 5 years ago by Alan McGovern <[email protected]>
If the project has not been restored and something directly, or
indirectly, results in the custo...
Now releases can be independently re-created in a bit-identical
way. It still relies on having t...
The task returned by this method will transition to the
'Completed' state only when the Mode has...
We still default to using IPAddress/Port as some bittorrent
clients randomise their peerid, maki...
Also add a lot of code comments to explain the properties/methods.
github.com/alanmcgovern/monotorrent - 2ee0e417c3ca888df27bb56946c8b17ffeef8ad8 authored over 5 years ago by Alan McGovern <[email protected]>
The underlying SpeedMonitor is threadsafe, so there's no
need to add additional locking inside R...
The infohash should just be a 20byte BEncodedString. Only the
original http scrape request needs...
I wanted to clean up some naming collisions between namespaces.
In the MonoTorrent.Tracker name...
github.com/alanmcgovern/monotorrent - ab72c54d2bad7ee90601945964779b55d0e4b5ba authored over 5 years ago by Alan McGovern <[email protected]>
A bad blocking Wait or .Result could hang the loop, so ensure
that nothing deadlocks for both th...
We don't need a custom collection implementation.
github.com/alanmcgovern/monotorrent - daafb0ba196afdc5e434e5e7313518d0cb5686a5 authored over 5 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - 2728a26d43eee36c01ce549c815a4c36da078da0 authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 026ca8ffa7502b29256f5a5f61c7241d197bbc65 authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - d6fa20b44191e2acc286c3df8fe5023ae1a41077 authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - c4f1f5c69b4fc454067d8e3ed1f0ed6285cbaa69 authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 87317e55fc45d421a3fcaeb00e277e2398f27add authored over 5 years ago by Alan McGovern <[email protected]>
This is just code hygiene, these are never null at runtime.
github.com/alanmcgovern/monotorrent - 053cf159b07671fa6b91702ce0188b02ae8857e4 authored over 5 years ago by Alan McGovern <[email protected]>
These ones were right after an 'await' so they are guaranteed to
succeed every time, but for cod...
We don't need to do a blocking .Result anymore as the containing
method (StartAsync) is now async!
Blocking is bad in general, so remove blocking calls. Also
add a ConfigureAwait false to reduce ...
github.com/alanmcgovern/monotorrent - b99a3132043c2800ce46bf47bc7703474fb942b9 authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - ea527251c342028a18d7dedffba64cacec99e5bd authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 15250d1a207c0664d40fae651624913af85a9cbf authored over 5 years ago by Alan McGovern <[email protected]>
If we used to have a list of trackers and it was removed, ensure
we remove the 'announce-list' k...
The connection ID should be written in network byte order, which
is handled automatically by the...
Less code is better!
github.com/alanmcgovern/monotorrent - 1d9c7badc151cc1a5d30228df2fb464f00cfb78c authored over 5 years ago by Alan McGovern <[email protected]>
This needs to be treated as a BEncodedString and not a normal
.NET string
github.com/alanmcgovern/monotorrent - e9bfa7d8f405e656d9127ba9308c505cbbb40299 authored over 5 years ago by Alan McGovern <[email protected]>
These should all be maintained as BEncodedStrings so the raw
bytes are never corrupted. The test...
The tracker response should be kept as it's original
BEncodedString instead of being converted t...
Nothing used DataOffset anymore as the data is always at the start
of the 'Data' byte array.
Ta...
github.com/alanmcgovern/monotorrent - 506acd276e2b27d77d7a70cda0b14671021e8430 authored over 5 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - 753dbb0cee4e3dc2c0c021634e63447144346021 authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 8bdbe78082edd9e66e631ffdff65d7efed8c8f51 authored over 5 years ago by Alan McGovern <[email protected]>
[doc] Update the README with list of implemented BEPs
github.com/alanmcgovern/monotorrent - 8949ce69b335759244ad505b9eefe4be63170d68 authored over 5 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - cc190b5801d563994a950b69b435c57a7df90b79 authored over 5 years ago by Alan McGovern <[email protected]>
In the majority case we request blocks (more or less) in order
and so we can hash each block as ...
If the initial buffer is unencrypted we can return it straight away
if plain text connections ar...
This is one fewer places where the catch-all 'PeerId' is not
actually needed. This simplifies th...
If the test takes more than 5 seconds then let's dispose
the connection and allow the test to fa...
This can be arbitrary bytes, but must be exactly 20 bytes in length.
As such we should treat it ...
The first block when requesting a piece using the fast peer extensions
was silently discarded in...
github.com/alanmcgovern/monotorrent - 55c8e4d106c249f6b9a3c0c6fea13cdfaabc3d16 authored over 5 years ago by Alan McGovern <[email protected]>
They indicate that monotorrent is used, the version which is running
and then end in a random un...
Some tests were added to cover cases where different strings
contained characters which need esc...
github.com/alanmcgovern/monotorrent - 15db91d1ca00d9d99f516f57d649779dd6cc2f8b authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 6a31bbffc4538f2c60b3a9c0c4633a4f79b9f7aa authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 691885217530272d1622860e1593542a4bfa211b authored over 5 years ago by Alan McGovern <[email protected]>
MonoTorrentCollection is not really needed, so hide it so it
can be removed later. Also remove s...
github.com/alanmcgovern/monotorrent - dfbcc08caf904c2cfca1d7fecb5dac7dd7066c99 authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 115ea40cfec0bc30b29767220875a80afa8a14b4 authored over 5 years ago by Alan McGovern <[email protected]>
It's easier to maintain if I don't expose the implementations of
all the listeners as public API...
github.com/alanmcgovern/monotorrent - f0c0c93cdaf7b8d61e47ed86d21941e2991ab4a6 authored over 5 years ago by Alan McGovern <[email protected]>
Share more code for these common tasks :)
github.com/alanmcgovern/monotorrent - 4280202ae4050975f04bd8c1085d86dd23df1b71 authored over 5 years ago by Alan McGovern <[email protected]>
This was just to save some lines of code writing argument null
checkers.
github.com/alanmcgovern/monotorrent - c12dadebc7344ec4223813bd2352134d12a72676 authored over 5 years ago by Alan McGovern <[email protected]>
Move things from MonoTorrent.Common -> MonoTorrent.
If it's a common type then it should be in ...
github.com/alanmcgovern/monotorrent - edf7c95f765c66fc73c60487bcdccc4b60eec21d authored over 5 years ago by Alan McGovern <[email protected]>Users of the library don't need to interact with these at all.
github.com/alanmcgovern/monotorrent - dcd7b5509bb185bac0de6b5d890ca9b52f391679 authored over 5 years ago by Alan McGovern <[email protected]>The tests cover all the cases nowadays, so this shouldn't be needed.
github.com/alanmcgovern/monotorrent - af491b2cc71c3ac389ea878718a6633a77ea8110 authored over 5 years ago by Alan McGovern <[email protected]>github.com/alanmcgovern/monotorrent - 392b92e3be2c756cb575dd67f7174e5d3510fb96 authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - ee5336ad71618ee6b366b38c532396946f043d90 authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 8c90a90a271a90ae91e5857c4e1f514b9fead272 authored over 5 years ago by Alan McGovern <[email protected]>
Huzzah!
github.com/alanmcgovern/monotorrent - e97f8656e65eec10608a2454f6ab65afef14809d authored over 5 years ago by Alan McGovern <[email protected]>
The original reason for this split is that OpenSUSE wanted to ship
a build of MonoTorrent which ...
The MagnetLink object is immutable. There's a static Parse method
which takes the raw string, an...
Expose them as IListener and use ListenerFactory to obtain
either a UDP or HTTP listener. This a...
github.com/alanmcgovern/monotorrent - 9c67647b31e953203b8ab94aaa307beea94adfda authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - 5e35d947372317ffdebde3215abdb566c2d08a4f authored over 5 years ago by Alan McGovern <[email protected]>
github.com/alanmcgovern/monotorrent - a5c1e4e3fb1eb56662891939d1695b43630d8476 authored over 5 years ago by Alan McGovern <[email protected]>
Change IListener to ITrackerListener so I don't have two different
IListener interfaces in the l...
github.com/alanmcgovern/monotorrent - 24d68153eac1920f9cfd6816d5da87a320274cbb authored over 5 years ago by Alan McGovern <[email protected]>
Expose the trackers as a readonly IList.
github.com/alanmcgovern/monotorrent - 8538a28c04e00cea77d38f84d826eafa41cf7956 authored over 5 years ago by Alan McGovern <[email protected]>
Document this as returning the Tracker which will be used for
Announce/Scrape requests (when no ...
github.com/alanmcgovern/monotorrent - ee5429f6a5af11b0deaf9c97090f95300f3200bf authored over 5 years ago by Alan McGovern <[email protected]>