35 lines
917 B
Python
35 lines
917 B
Python
# -*- test-case-name: twisted.protocols.haproxy.test -*-
|
|
# Copyright (c) Twisted Matrix Laboratories.
|
|
# See LICENSE for details.
|
|
|
|
"""
|
|
IProxyInfo implementation.
|
|
"""
|
|
from typing import Optional
|
|
|
|
from zope.interface import implementer
|
|
|
|
import attr
|
|
|
|
from twisted.internet.interfaces import IAddress
|
|
from ._interfaces import IProxyInfo
|
|
|
|
|
|
@implementer(IProxyInfo)
|
|
@attr.s(frozen=True, slots=True, auto_attribs=True)
|
|
class ProxyInfo:
|
|
"""
|
|
A data container for parsed PROXY protocol information.
|
|
|
|
@ivar header: The raw header bytes extracted from the connection.
|
|
@type header: C{bytes}
|
|
@ivar source: The connection source address.
|
|
@type source: L{twisted.internet.interfaces.IAddress}
|
|
@ivar destination: The connection destination address.
|
|
@type destination: L{twisted.internet.interfaces.IAddress}
|
|
"""
|
|
|
|
header: bytes
|
|
source: Optional[IAddress]
|
|
destination: Optional[IAddress]
|