コード例 #1
0
 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
コード例 #2
0
ファイル: smtplib.py プロジェクト: ed-aicradle/monotone
 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
コード例 #3
0
ファイル: smtplib.py プロジェクト: mcruse/monotone
 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
コード例 #4
0
 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
コード例 #5
0
 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
コード例 #6
0
 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
コード例 #7
0
ファイル: httplib.py プロジェクト: mcruse/monotone
 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