HTTP Proxy Client is the small set of libraries and scripts, which provides transparent access to Internet via HTTP proxy for programs, which uses TCP/IP for communication.
The list of programs includes: telnet, ftp, licq, cvs, smth else? Project implements dynamic library, that can be preloaded before program run. The library substitutes some system calls (connect(), gethostbyaddr(), gethostbyname()), with calls, which makes TCP/IP connection through HTTP proxy. This allows client programs behind HTTP proxy work with Internet without limitations.
At the moment tested on i386 Linux, i386/sparc Solaris.
The library provides the following functions as replacement for system functions:
|connect()||connect via proxy in case of external host|
|gethostbyaddr()||DNS reverse resolving|
|gethostbyaddr_r()*||DNS reverse resolving|
|getaddrinfo()||network address and service translation|
Library httppcd can be used to add proxy tunneling capability to any program. All you need - is to make final link with -lhttppcd or set LD_PRELOAD to `libhttppcd.so' full path.
The package provides also aliases for common Internet tools: telnetx, ftpx, cvsx, licqx which invokes `proxed *' command.
NOTE: instead of setting LD_PRELOAD to full path of `libhttppcd.so', you can specify the path in LD_LIBRARY_PATH variable.
|proxy host:port||HTTP_PROXY||HTTP proxy host in format <host>[:<port>]. Default port is 8080.|
|auth user:pass||HTTP_PROXY_AUTH||HTTP proxy user and password in format <user>:<password>.|
|log verbose|quiet||HTTP_PROXY_LOG||Driver mode: verbose quiet.|
|libs lib1:lib2:...||HTTP_PROXY_LIBS||Libraries, separated by ':', where original functions are located.|
|xdns dnsip||HTTP_PROXY_XDNS||External DNS server address, must be in dot notation; by default is set to isi.edu (22.214.171.124).|
|ldns||Use local DNS resolving with native gethostbyname() prior external resolving with ADNS; disabled by default.|
|local network/mask ...||HTTP_PROXY_LOCAL||The list of local networks in format <network>/<mask>, separated by space.|
|extern network/mask ...||HTTP_PROXY_EXTERN||The list of external networks in format <network>/<mask>, separated by space.|
|useragent Mozilla...||HTTP_PROXY_USERAGENT||Add to connection request header string:|
|nocache||Add to connection request header strings:|
|keepalive||Add to connection request header string:|
|timeout 5||HTTP_PROXY_TIMEOUT||Connection timeout in seconds. -1 wait forever.|
Networks checking algorithm:
httppc: <- CONNECT 126.96.36.199:80 HTTP/1.1 httppc: -> HTTP/1.0 405 Method Not Allowedmean, that your proxy doesn't supports "CONNECT" and httppc will not work at all;