def ntransfercmd(self, cmd, rest=None): timeout = self._timeout size = None if self.passiveserver: host, port = self.makepasv() tp = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM)[0] af, socktype, proto, canon, sa = tp if timeout is None: conn = socket.socket(af, socktype, proto) else: conn = socket.safety_socket(timeout,af,socktype,proto) conn.connect(sa) if rest is not None: self.sendcmd("REST %s" % rest) resp = self.sendcmd(cmd) if resp[0] != '1': raise error_reply, resp else: sock = self.makeport() if rest is not None: self.sendcmd("REST %s" % rest) resp = self.sendcmd(cmd) if resp[0] != '1': raise error_reply, resp conn, sockaddr = sock.accept() if resp[:3] == '150': # this is conditional in case we received a 125 size = parse150(resp) return conn, size
def connect(self, host='localhost', port=0, timeout=None): if timeout is None: timeout = self._timeout self._timeout = timeout if not port and (host.find(':') == host.rfind(':')): i = host.rfind(':') if i >= 0: host, port = host[:i], host[i + 1:] try: port = int(port) except ValueError: raise socket.error, "nonnumeric port" if not port: port = SMTP_PORT if self.debuglevel > 0: print 'connect:', (host, port) msg = "getaddrinfo returns an empty list" self.sock = None for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM): af, socktype, proto, canonname, sa = res try: if timeout is None: self.sock = socket.socket(af, socktype, proto) else: self.sock = socket.safety_socket(timeout, af, socktype, proto) if self.debuglevel > 0: print 'connect:', (host, port) self.sock.connect(sa) except socket.error, msg: if self.debuglevel > 0: print 'connect fail:', (host, port) if self.sock: self.sock.close() self.sock = None continue break
def connect(self,host='localhost',port=0,timeout=None): if timeout is None: timeout = self._timeout self._timeout = timeout if not port and (host.find(':') == host.rfind(':')): i = host.rfind(':') if i >= 0: host, port = host[:i], host[i+1:] try: port = int(port) except ValueError: raise socket.error, "nonnumeric port" if not port: port = SMTP_PORT if self.debuglevel > 0: print 'connect:', (host, port) msg = "getaddrinfo returns an empty list" self.sock = None for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM): af, socktype, proto, canonname, sa = res try: if timeout is None: self.sock = socket.socket(af, socktype, proto) else: self.sock = socket.safety_socket(timeout,af, socktype,proto) if self.debuglevel > 0: print 'connect:', (host, port) self.sock.connect(sa) except socket.error, msg: if self.debuglevel > 0: print 'connect fail:', (host, port) if self.sock: self.sock.close() self.sock = None continue break
def connect(self, timeout=None): if timeout is None: timeout = self._timeout self._timeout = timeout msg = "getaddrinfo returns an empty list" for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM): af, socktype, proto, canonname, sa = res try: if self._timeout is None: self.sock = socket.socket(af, socktype, proto) else: self.sock = socket.safety_socket(self._timeout, af, socktype, proto) if self.debuglevel > 0: print "connect: (%s, %s)" % (self.host, self.port) self.sock.connect(sa) except socket.error, msg: if self.debuglevel > 0: print 'connect fail:', (self.host, self.port) if self.sock: self.sock.close() self.sock = None continue break
def makeport(self): timeout = self._timeout msg = "getaddrinfo returns an empty list" sock = None for res in socket.getaddrinfo(None, 0, self.af, socket.SOCK_STREAM, 0, socket.AI_PASSIVE): af, socktype, proto, canonname, sa = res try: if timeout is None: sock = socket.socket(af, socktype, proto) else: sock = socket.safety_socket(timeout,af, socktype,proto) sock.bind(sa) except socket.error, msg: if sock: sock.close() sock = None continue break
def connect(self,host='',port=0,timeout=None): if timeout is None: timeout = self._timeout self._timeout = timeout if host: self.host = host if port: self.port = port self.passiveserver = 0 msg = "getaddrinfo returns an empty list" for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM): af, socktype, proto, canonname, sa = res try: if timeout is None: self.sock = socket.socket(af, socktype, proto) else: self.sock = socket.safety_socket(timeout,af, socktype,proto) self.sock.connect(sa) except socket.error, msg: if self.sock: self.sock.close() self.sock = None continue break
def connect(self,timeout=None): if timeout is None: timeout = self._timeout self._timeout = timeout msg = "getaddrinfo returns an empty list" for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM): af, socktype, proto, canonname, sa = res try: if self._timeout is None: self.sock = socket.socket(af, socktype, proto) else: self.sock = socket.safety_socket(self._timeout, af, socktype, proto) if self.debuglevel > 0: print "connect: (%s, %s)" % (self.host, self.port) self.sock.connect(sa) except socket.error, msg: if self.debuglevel > 0: print 'connect fail:', (self.host, self.port) if self.sock: self.sock.close() self.sock = None continue break