Windows, P2P, network freezes and the TCP `half-open’ state

Have you ever tried to run a very network-intensive P2P application on Windows XP SP2 or higher? If so, you may have encountered very strange behaviour with the Windows TCP/IP network stack. Specifically, you won’t be able to open any new TCP/IP connections, so web-browsing, email checking, SSH, etc will all be basically unusable. At [...]

Importing a CVS repository to Google Code Subversion

My C BitTorrent implementation, Unworkable, used to be hosted on an anonymous CVS repository I had running on my server at home. This was fine, until I reinstalled the machine from scratch and didn’t feel like setting up the whole anonymous CVS access again. Its a pretty painful process, unfortunately, although there is this guide [...]

OpenBSD’s omalloc: Bug and buffer overflow detection

For quite a long time now, OpenBSD has, among numerous exploit mitigation techniques, had a very strict mmap()-based malloc() implementation. Recently re-written by Otto Moerbeek, it is even harsher now. I find that this feature makes OpenBSD one of the best platforms to develop C programs on. If you have a double-free, use-after-free, off-by-one, or [...]

Top 10 Torrented Films of 2007

Over at the Peer to Peer Research Institute, we have performed analysis on over 128,959 film torrents. From this data, we were able to extract the most torrented films of 2007. Without futher ado, here is the list: Harry Potter and the Order of the Phoenix 300 Transformers Ghost Rider Ratatouille Shrek The Third The [...]

Unworkable 0.4 released

I have just tagged, packaged and announced version 0.4 of my BitTorrent implementation, Unworkable. Here are the release notes: Implemented sending peer keep-alives. Trace log now contains timestamps. Make us more tolerant of intermittent tracker failures. Added support for Arch Linux. Fixed an off-by-four bug which could cause segfaults on some platforms. Fix zero padding [...]