Net::Proxy::Connector::dual3pm
Y-shaped net::proxy connector
Overview
Net::Proxy::Connecter::dual is a Net::Proxy::Connector that can forward the connection to two distinct services, based on the client connection, before any data is exchanged.
Options
This connector can only work as an "in" connector.
The "server_first" and "client_first" options are required: they are hashrefs containing the options necessary to create two "out" Net::Proxy::Connector objects that will be used to connect to the requested service.
The Net::Proxy::Connector::dual object decides between the two services by waiting during a short timeout. If the client sends some data directly, then it is connected via the "client_first" connector. Otherwise, at the end of the timeout, it is connected via the "server_first" connector.
- host
-
The hostname on which the connector will listen for client connections. Default is
"localhost".
- port
-
The port on which the connector will listen for client connections.
- server_first
-
Typically an
"out"connector to a SSH server or any service that sends a banner line.
- client_first
-
Typically an
"out"connectrot to a web server or SSL server.
- timeout
-
The timeout in seconds (can be decimal) to make a decision. Default is 1 second.
Acknowledgments
This module is based on a script named sslh, which I wrote with Frédéric Plé "<[email protected]>" (who had the original insight about the fact that not all servers speak first on the wire).
Frédéric wrote a C program, while I wrote a Perl script (based on my experience with connect-tunnel).
Now that "Net::Proxy" is available, I've ported the Perl script to use it.
Releases
9 releases since Debian 5.0 (Lenny); the text changed 5 times.