1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-28 02:19:04 +00:00
Commit Graph

209 Commits

Author SHA1 Message Date
henri
e623d8c9f1 Replaced strtok_r() calls by strtok().
The latter is more portable and can replace strtok_r in our case.
2013-05-02 17:32:15 +00:00
henri
6638f749d1 Added explicit pointer cast.
Reported by Jaebum Shin.
2013-05-02 16:51:46 +00:00
henri
371be36f88 Declare variables before executing any statement to follow
C standards.

Report and original patch by Gisle Vanem.
2013-05-02 08:36:08 +00:00
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
9b629aaec9 Express fields as uintX_t to ensure portability. 2013-04-30 18:24:50 +00:00
henri
153d3e695c Reverted r30784.
The socks4_data structure is not aligned. Sending sizeof(sock4) bytes
results in invalid requests.

Noticed and reported by David: http://seclists.org/nmap-dev/2013/q2/160
2013-04-30 18:01:24 +00:00
david
3b14d188cb Add a debug message when binding a socket. 2013-04-27 16:22:11 +00:00
david
67bc0819b4 Use get_localaddr_string in the connect bind log message.
This includes the port number, not just the address.
2013-04-27 16:22:09 +00:00
david
21077a93e1 Add get_localaddr_string. 2013-04-27 16:22:07 +00:00
david
d6d2a832db Factor out the guts of get_peeraddr_string. 2013-04-27 16:22:06 +00:00
henri
a687f70af3 Removed our copy of mkstr, which has been moved to nbase. 2013-04-22 19:37:03 +00:00
henri
b867fa4721 Fixed ID type in format string. 2013-04-22 19:36:55 +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
eda720a389 Style fixes 2013-04-22 19:36:30 +00:00
henri
1780d0a655 Refactored HTTP proxy code to highlight execution flow. 2013-04-22 19:36:22 +00:00
henri
8a260bc209 Refactored code to highlight execution flow. 2013-04-22 19:36:15 +00:00
henri
7c1f9aa780 Removed a kinda brutal assert(0);
Don't abort when a socks4 proxy returns an invalid message,
just ignore it instead.
2013-04-22 19:36:07 +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
5cf3780a93 Added a nsock log message to nsock_connect_internal.
Explicitely indicates that a connection is about to be
redirected through the proxy chain.
2013-04-22 19:35:50 +00:00
henri
1455bf0624 Declare local constant string as array instead of pointer to
follow coding best practices. Also made string static.
2013-04-22 19:35:30 +00:00
henri
5be3de1477 Minor style fixes. 2013-04-22 19:35:22 +00:00
henri
9d8c84b17f Replaced hardcoded value by a sizeof() call. 2013-04-22 19:35:14 +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
a729e0047c Reworked expression for readability. 2013-04-22 19:34:58 +00:00
henri
4998b3f20a Updated email addresses in licence terms of the new files. 2013-04-22 19:34:50 +00:00
henri
a5fee3f2b4 Updated nsock_proxy to use nsock_log_* 2013-04-22 19:34:41 +00:00
henri
11fdeed8fb Restrict proxying to TCP operations. 2013-04-22 19:34:18 +00:00
henri
ab6a7a4f9e Added SOCKS4 support
Beware socks4a extention is not supported. Target hostnames
therefore need to be resolved somehow.

Initial patch by David and sed :)
2013-04-22 19:34:11 +00:00
henri
a3fbe7d7d6 Style change, neater syntax. 2013-04-22 19:34:01 +00:00
henri
af59333757 Perform the proxy connexion hook in connect_internal().
This allows to generically handle all kinds of connexions instead of manually
providing a handler for tcp connect, ssl connect...

The drawback is that would it makes it harder to implement support of SSL
proxies. Not sure whether there's a need though, looks like regular clients
don't handle them at least.
2013-04-22 19:33:53 +00:00
henri
5906c97ff9 Enfore node=NULL on error. 2013-04-22 19:33:37 +00:00
henri
6700abe1e8 Added svn properties. 2013-04-22 19:33:08 +00:00
henri
71e23318e9 Removed list of todo items from source. 2013-04-22 19:33:00 +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
c9d237f26b Added a new NSE_STATUS_PROXYERROR status type to report proxy-related errors
back to caller.
2013-04-22 19:32:29 +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
26f918e310 Use an intermediate proxy_chain pointer for readability. 2013-04-22 19:31:47 +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
21327ee56c Return 1 on success to (try to) improve consistency. 2013-04-22 19:31:21 +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
4b9ff7f562 Removed unused macros. 2013-04-22 19:30:57 +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