Go to the latest version of this document.

# ``twisted`.`protocols`.`haproxy`.`_wrapper`.`HAProxyProtocolWrapper``

class documentation

`class HAProxyProtocolWrapper(policies.ProtocolWrapper): (source)`

Constructor: `HAProxyProtocolWrapper(factory, wrappedProtocol)`

View In Hierarchy

A Protocol wrapper that provides HAProxy support.

This protocol reads the PROXY stream header, v1 or v2, parses the provided connection data, and modifies the behavior of getPeer and getHost to return the data provided by the PROXY header.

Method | `__init__` | Undocumented
Method | `dataReceived` | Called whenever data is received.
Method | `getHost` | Undocumented
Method | `getPeer` | Undocumented
Instance Variable | `_parser` | Undocumented
Instance Variable | `_proxyInfo` | Undocumented

Inherited from `ProtocolWrapper`:

Method | `__getattr__` | Undocumented
Method | `connectionLost` | Called when the connection is shut down.
Method | `logPrefix` | Use a customized log prefix mentioning both the wrapped protocol and the current one.
Method | `loseConnection` | Undocumented
Method | `makeConnection` | When a connection is made, register this wrapper with its factory, save the real transport, and connect the wrapped protocol to this `ProtocolWrapper` to intercept any transport calls it makes.
Method | `registerProducer` | Undocumented
Method | `stopConsuming` | Undocumented
Method | `unregisterProducer` | Undocumented
Method | `write` | Undocumented
Method | `writeSequence` | Undocumented
Instance Variable | `disconnecting` | Undocumented
Instance Variable | `factory` | The `WrappingFactory` which created this `ProtocolWrapper`.
Instance Variable | `wrappedProtocol` | An `IProtocol` provider to which `IProtocol` method calls onto this `ProtocolWrapper` will be proxied.

Inherited from `BaseProtocol` (via `ProtocolWrapper`, `Protocol`):

Method | `connectionMade` | Called when a connection is made.
Instance Variable | `connected` | Undocumented
Instance Variable | `transport` | Undocumented

def __init__(self, factory: `policies.WrappingFactory`, wrappedProtocol: `interfaces.IProtocol`): (source)
overrides `twisted.protocols.policies.ProtocolWrapper.__init__`

Undocumented

def dataReceived(self, data: `bytes`): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.protocols.policies.ProtocolWrapper.dataReceived`

Called whenever data is received.

Use this method to translate to a higher-level message. Usually, some callback will be made upon the receipt of each complete protocol message.

Parameters
data:`bytes` | a string of indeterminate length. Please keep in mind that you will probably need to buffer some data, as partial (or multiple) protocol messages may be received! I recommend that unit tests for protocols call through to this method with differing chunk sizes, down to one byte at a time.

def getHost(self) -> `interfaces.IAddress`: (source)
overrides `twisted.protocols.policies.ProtocolWrapper.getHost`

Undocumented

def getPeer(self) -> `interfaces.IAddress`: (source)
overrides `twisted.protocols.policies.ProtocolWrapper.getPeer`

Undocumented

_parser: `V2Parser | V1Parser | None` = (source)

Undocumented

_proxyInfo: `_info.ProxyInfo | None` = (source)

Undocumented