![]() | ||||
About | Download | Documentation | Source | |
Abouthcap is a small, highly configurable, asynchronous HTTP and/or SOCKS v5 proxy server. Its main purpose is to limit the bandwidth of HTTP requests and responses to and from the connecting client. As little modification as possible of the client and server data is done. hcap does not validate client requests or server responses unless required specifically by hcap. Such behavior allows non-standard servers or clients to use hcap.NoteWhile hcap works, it does not yet support keep-alive connections to the proxy where more than one request is sent on the same connection. This is due to the parser is not yet mature enough to handle connection pipelining or keep-alive connections to the proxy.There is also a bug with libevent2 that causes evdns requests to cause segmentation faults, this is perhaps due to using bufferevents just to connect (and libevent2 still being in alpha stage). Why HTTP?HTTP is a well-defined protocol. It's simple to parse and provides standard and non-standard options to increase performance of proxy connections. Specifically, HTTP provides mechanisms for sharing connections for multiple requests and pipelining requests on one connection to the proxy (hcap does not yet support this).Support for SOCKS v5 is currently being implemented into hcap. Prerequisiteshcap is written entirely in ANSI C (ISO/IEC 9899:1990) for portability... since the Microsoft compilers don't support C99.Other than an ANSI C compiler, hcap requires:
FeaturesNot all features have been implemented yet. A non-complete list of what hcap covers:
|
||||
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia License Copyright 2007-10, Zachary Sims. |