'Proxy C{buildProtocol} to our C{self._wrappedFactory} or errback the
C{self._onConnection} L{Deferred} if the wrapped factory raises an
exception or returns L{None}.
@return: An instance of L{_WrappingProtocol} or L{None}'

def buildProtocol(self, addr):

    try:
        proto = self._wrappedFactory.buildProtocol(addr)
        if (proto is None):
            raise error.NoProtocol()
    except:
        self._onConnection.errback()
    else:
        return self.protocol(self._onConnection, proto)
