henri
cce3012ac4
Removed designated structure initializers that break
...
compilation with MSVC.
This was reported by Gisle Vanem.
2013-05-02 08:27:20 +00:00
henri
f90d107b40
Added checks to avoid including netdb.h on platforms that don't provide it.
2013-05-01 15:15:57 +00:00
henri
c8f7d4b7ac
Refactored the proxy object model to enforce speration between operations and data.
2013-04-22 19:36:47 +00:00
henri
03ff0651c7
Made proxy handlers return errors to caller when unable to handle proxy replies.
...
Errors are returned internally as -1 * <errno code>.
2013-04-22 19:36:38 +00:00
henri
1780d0a655
Refactored HTTP proxy code to highlight execution flow.
2013-04-22 19:36:22 +00:00
henri
157922dfe0
Replaced proxy_chain->specstr by node->nodestr.
...
The global proxy chain specification string wasn't
used anywhere, and I'd need a string to represent
each node of the chain.
2013-04-22 19:35:59 +00:00
henri
b54590c344
Don't artificially increase timeouts to establish proxy
...
connections. It's now up to the caller to adjust timeout
values accordingly.
2013-04-22 19:35:07 +00:00
henri
4998b3f20a
Updated email addresses in licence terms of the new files.
2013-04-22 19:34:50 +00:00
henri
5906c97ff9
Enfore node=NULL on error.
2013-04-22 19:33:37 +00:00
henri
6e8b30d721
Added support to resolve proxy hostnames.
2013-04-22 19:32:52 +00:00
henri
b7b3b4bd3e
Default port is set to -1 (and not zero) when not specified in proxy specification string.
2013-04-22 19:32:44 +00:00
henri
da1559b237
Replaced a couple macros by corresponding static inline functions.
...
Removed unused PROXY_CTX_NODES() macro.
2013-04-22 19:32:20 +00:00
henri
6c0d537efb
Removed unused http_proxy_info structure.
2013-04-22 19:32:11 +00:00
henri
152490e630
Removed per-node information structures as well as data encoding/decoding
...
interface.
These were unused and I think won't be required by any proxy type (HTTP and
SOCKS).
2013-04-22 19:32:04 +00:00
henri
173adc678b
Implemented a more robust URI parser. Code largely adapted from ncat/http.c.
2013-04-22 19:31:56 +00:00
henri
ba27c10458
Removed the proxy-specific tcp_connect hook.
...
This simplifies the interface that proxies export to the library but also relies
upon the assumption that a proxy chain starts with a TCP connection from the
scanner to the next hop proxy. That will be enough ATM.
2013-04-22 19:31:40 +00:00
henri
4d5bb41361
Added skeletton for having px_info list in each Nsock IOD.
...
When establishing the tunnel through proxy chain, we need to track status of
each proxy (storing R/W buffers, stats, retries...).
This patch lets proxies store and manage whatever structure they want to have
for this in a Nsock IOD. Since types can differ between proxy types, the
proxy_info are stored as a list of void *, ordered like the proxy nodes.
2013-04-22 19:31:30 +00:00
henri
af65c7448f
Removed 'data_' prefixes to encoding/decoding functions to avoid confusion with functions that deal with proxy internal data structures.
2013-04-22 19:31:14 +00:00
henri
5168ff9113
Moved prototypes to nsock_proxy.h
2013-04-22 19:31:06 +00:00
henri
f1a04abd6b
Removed the global ProxyOps list.
...
Each proxy node now provides a pointer to its operations struct.
2013-04-22 19:30:49 +00:00
henri
3451220630
Refactored proxy code to use a "strategy" design pattern.
...
Proxy backends are selected at runtime. Each proxy exports a list of operations
to the rest of the library. This is similar to the way IO engines are
implemented within nsock.
2013-04-22 19:30:40 +00:00