def _connect_ssh(self, host): (user, host) = urlparse.splituser(host) if user is not None: (user, password) = urlparse.splitpassword(user) else: password = None (host, port) = urlparse.splitnport(host, 22) self._tunnel = get_ssh_vendor().connect_ssh(user, password, host, port, ["svnserve", "-t"]) return (self._tunnel.recv, self._tunnel.send)
def extract_remote_address(address): if address is not None: if type(address) == tuple: host, port = address elif isinstance(address, basestring): import urlparse host, port = urlparse.splitnport(address, 22) else: raise ValueError("address is neither (host,port) nor host:port") return host, port
def _connect_ssh(self, host): (user, host) = urlparse.splituser(host) if user is not None: (user, password) = urlparse.splitpassword(user) else: password = None (host, port) = urlparse.splitnport(host, 22) self._tunnel = get_ssh_vendor().connect_ssh( user, password, host, port, ["svnserve", "-t"]) return (self._tunnel.recv, self._tunnel.send)
def _connect(self, host): (host, port) = urlparse.splitnport(host, SVN_PORT) sockaddrs = socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM, 0, 0) self._socket = None for (family, socktype, proto, canonname, sockaddr) in sockaddrs: try: self._socket = socket.socket(family, socktype, proto) self._socket.connect(sockaddr) except socket.error as err: if self._socket is not None: self._socket.close() self._socket = None continue break if self._socket is None: raise err self._socket.setblocking(True) return (self._socket.recv, self._socket.send)
def _connect(self, host): (host, port) = urlparse.splitnport(host, SVN_PORT) sockaddrs = socket.getaddrinfo( host, port, socket.AF_UNSPEC, socket.SOCK_STREAM, 0, 0) self._socket = None err = RuntimeError('no addresses for %s:%s' % (host, port)) for (family, socktype, proto, canonname, sockaddr) in sockaddrs: try: self._socket = socket.socket(family, socktype, proto) self._socket.connect(sockaddr) except socket.error as err: if self._socket is not None: self._socket.close() self._socket = None continue break if self._socket is None: raise err self._socket.setblocking(True) return (self._socket.recv, self._socket.send)