---
name: "Net::Proxy::Connector"
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"
---

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

Base class for Net::Proxy protocols

## NAME

Net::Proxy::Connector - Base class for Net::Proxy protocols

## SYNOPSIS

```
    #
    # template for the zlonk connector
    #
    package Net::Proxy::Connector::zlonk;
    use strict;
    use Net::Proxy::Connector;
    our @ISA = qw( Net::Proxy::Connector );
    # here are the methods you need to write for your connector
    # if it can be used as an 'in' connector
    sub listen { }
    sub accept_from { }
    # if it can be used as an 'out' connector
    sub connect { }
    # to process data
    sub read_from { }
    sub write_to { }
    1;
```

## DESCRIPTION

Net::Proxy::Connector is the base class for all specialised protocols used by Net::Proxy.

## METHODS

### Class methods

The base class provides the following methods:

*new*

The constructor.

### Instance methods

*set\_proxy*

```
    $connector->set_proxy( $proxy );
```

Define the proxy that "owns" the connector.

*get\_proxy*

```
    my $proxy = $connector->get_proxy();
```

Return the Net::Proxy object that "owns" the connector.

*is\_in*

```
    $connector->is_in();
```

Return a boolean value indicating if the Net::Proxy::Connector object is the `"in"` connector of its proxy.

*is\_out*

```
    $connector->is_out();
```

Return a boolean value indicating if the Net::Proxy::Connector object is the `"out"` connector of its proxy.

*new\_connection\_on*

```
    $connector->new_connection_on( $socket );
```

This method is called by Net::Proxy to handle incoming connections, and in turn call `accept_from()` on the 'in' connector and `connect()` on the 'out' connector.

*raw\_read\_from*

```
    my $data = $connector->raw_read_from( $socket );
```

This method can be used by Net::Proxy::Connector subclasses in their `read_from()` methods, to fetch raw data on a socket.

*raw\_write\_to*

```
    $connector->raw_write_to( $socket, $data );
```

This method can be used by Net::Proxy::Connector subclasses in their `write_to()` methods, to send raw data on a socket.

*raw\_listen*

```
    my $sock = $connector->raw_listen();
```

This method can be used by Net::Proxy::Connector subclasses in their `listen()` methods, to create a listening socket on their `"host"` and `"port"` parameters.

*raw\_accept\_from*

```
    my $sock = $connector->raw_accept_from( $socket );
```

This method can be used internaly by Net::Proxy::Connector subclasses in their `accept_from()` methods, to accept a newly connected socket.

## SUBCLASS METHODS

The following methods should be defined in Net::Proxy::Connector subclasses:

### Initialisation

*init*

```
    $connector->init;
```

This method initalizes the connector.

### Processing incoming/outgoing data

*read\_from*

```
    my $data = $connector->read_from( $socket );
```

Return the data that was possibly decapsulated by the connector.

*write\_to*

```
    $connector->write_to( $socket, $data );
```

Write `$data` to the given `$socket`, according to the connector scheme.

### "in" connector

*listen*

```
    my $sock = $connector->listen();
```

Initiate listening sockets and return them.

This method can use the `raw_listen()` method to do the low-level listen call.

*accept\_from*

```
    my $sock = $connector->accept_from( $socket );
```

`$socket` is a listening socket created by `listen()`. This method returns the connected socket.

This method can use the `raw_accept_from()` method to do the low-level accept call.

### "out" connector

*connect*

```
    my $sock = $connector->connect();
```

Return a socket connected to the remote server.

## AUTHOR

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

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