---
name: "Net::Proxy::Connector::dual"
section: "3pm"
platform: "linux"
package: "libnet-proxy-perl"
version: "0.13-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::Proxy::Connector::dual"
---

# Net::Proxy::Connector::dual(3pm)

Y-shaped Net::Proxy connector

## NAME

Net::Proxy::Connector::dual - Y-shaped Net::Proxy connector

## DESCRIPTION

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.

## CONNECTOR 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.

## AUTHOR

Philippe 'BooK' Bruhat, `"<book@cpan.org>"`.

## ACKNOWLEDGMENTS

This module is based on a script named **sslh**, which I wrote with Frédéric Plé `"<frederic.ple+sslh@gmail.com>"` (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.

## COPYRIGHT

Copyright 2006-2014 Philippe 'BooK' Bruhat, All Rights Reserved.

## LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
