'@param domain: The domain to connect to.  If passed as a unicode
string, it will be encoded using C{idna} encoding.
@type domain: L{bytes} or L{unicode}
@param defaultPort: Optional default port number to be used when SRV
lookup fails and the service name is unknown. This should be the
port number associated with the service name as defined by the IANA
registry.
@type defaultPort: L{int}'

def __init__(self, reactor, service, domain, factory, protocol='tcp', connectFuncName='connectTCP', connectFuncArgs=(), connectFuncKwArgs={}, defaultPort=None):

    self.reactor = reactor
    self.service = service
    if isinstance(domain, unicode):
        domain = domain.encode('idna')
    self.domain = nativeString(domain)
    self.factory = factory
    self.protocol = protocol
    self.connectFuncName = connectFuncName
    self.connectFuncArgs = connectFuncArgs
    self.connectFuncKwArgs = connectFuncKwArgs
    self._defaultPort = defaultPort
    self.connector = None
    self.servers = None
    self.orderedServers = None
