Download

Releases

Notice: clumsy only support Windows Vista, Windows 7 and above. 64bit Windows users are strongly recommanded to download the 64bit build.

0.2 - Updated WinDivert to 1.1.7.

Install

Extract downloaded zip file to arbitrary directory and execute clumsy.exe. clumsy is alpha quality software and does have some gotchas. Be sure to read the manual page before using it.

Build

If you have Visual Studio 2012 or TDM-GCC 4.8.1 installed then building is rather easy. Currently no other environment is supported.

Clone the repository. Then you'll need premake 4.4-beta5 to build the solution or makefiles. premake currently can only generate VS2010 solution file. Open it in VS2012 and choose upgrade works fine. All external dependencies are included in the repo, so it should build out of the box.

git clone https://github.com/jagt/clumsy.git 
premake4 vs2010
premake4 gmake
            

If you choose to build using VS2012, remember the runtime MUST be dynamically linked. This is due to provided library binaries are using dynamic runtime. This means if you want to distribute your builds, the user needs to install VS2012 runtime. It is recommended to use the awesome TDM64-GCC 4.8.1 to build the project. It would generate binaries without other dependencies execpt those are included here. This is also how the provided clumsy binaries above are built.

mingw32-make -C build CC=gcc config=debug32
mingw32-make -C build CC=gcc config=debug64
mingw32-make -C build CC=gcc config=release32
mingw32-make -C build CC=gcc config=release64
            

Acknowledgements

Here's a list of things used to build clumsy.

  • WinDivert used to handle the magical Windows packet capturing/reinjecting. It installs network drivers at runtime and removes it when closing, encapsuled the underdocumented Windows Filtering Platform, does a bunch of things that non Windows developers can hardly figure out how in years. WinDivert jam all these into a handful of functions for you to use for free, while similar commercial solution costs thousands.
  • IUP Portable User Interface ANSI C library to build native cross platform GUI. It's so wonderfully designed and you can pick it up in a single day, and it's a full funcion GUI toolkit in C. Think about it.
  • LICEcap free and open source gif capturing that just works.

Similar softwares

Here's a list of simlilar softwares aiming to solve the same problem, provided in case of looking for alternatives.

  • Network Emulator for Windows Toolkit (Windows) - network emulator provided by Microsoft.
  • ipfw or pfctl (FreeBSD/OSX) - low level packet filter.
  • wipfw (Windows) - ipfw Windows port with only a subset of functions.
  • netem (Linux) - Linux kernel supported network emulation.
  • tc (Linux) - Configure traffic control in the Linux kernel.
  • Throttle (Mac) - Simulate 3G network through shared wireless network.
  • Network Link Conditioner (Mac) - XCode bundled network conditioner.

License

The MIT License (MIT)