[Python-Dev] Re: [Python-checkins] CVS: python/dist/src/Lib BaseHTTPServer.py,1.15,1.16 SocketServer.py,1.25,1.26 ftplib.py,1.53,1.54 httplib.py,1.35,1.36 poplib.py,1.14,1.15 smtplib.py,1.36,1.37 telnetlib.py,1.11,1.12

Michael Hudson mwh@python.net
24 Jul 2001 18:56:32 -0400


"Martin v. L?wis" <loewis@users.sourceforge.net> writes:

> Update of /cvsroot/python/python/dist/src/Lib
> In directory usw-pr-cvs1:/tmp/cvs-serv11791
> 
> Modified Files:
> 	BaseHTTPServer.py SocketServer.py ftplib.py httplib.py 
> 	poplib.py smtplib.py telnetlib.py 
> Log Message:
> Patch #401196: Use getaddrinfo and AF_INET6 in TCP servers and clients.

> ! 	for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM):
> ! 	    af, socktype, proto, canonname, sa = res
> ! 	    try:
> ! 		self.sock = socket.socket(af, socktype, proto)
> ! 		self.sock.connect(sa)
> ! 	    except socket.error, msg:
> ! 		self.sock.close()
> ! 		self.sock = None
> ! 		continue
> ! 	    break
> ! 	if not self.sock:
> ! 	    raise socket.error, msg

> ! 	for res in socket.getaddrinfo(None, 0, self.af, socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
> ! 	    af, socktype, proto, canonname, sa = res
> ! 	    try:
> ! 		sock = socket.socket(af, socktype, proto)
> ! 		sock.bind(sa)
> ! 	    except socket.error, msg:
> ! 		sock.close()
> ! 		sock = None
> ! 		continue
> ! 	    break
> ! 	if not sock:
> ! 	    raise socket.error, msg

> !  	for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM):
> !  	    af, socktype, proto, canonname, sa = res
> !  	    try:
> !  		self.sock = socket.socket(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)
> ! 		self.sock.close()
> ! 		self.sock = None
> ! 		continue
> ! 	    break
> ! 	if not self.sock:
> ! 	    raise socket.error, msg

> ! 	for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM):
> ! 	    af, socktype, proto, canonname, sa = res
> ! 	    try:
> ! 		self.sock = socket.socket(af, socktype, proto)
> ! 		self.sock.connect(sa)
> ! 	    except socket.error, msg:
> ! 		self.sock.close()
> ! 		self.sock = None
> ! 		continue
> ! 	    break
> ! 	if not self.sock:
> ! 	    raise socket.error, msg

> !  	for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
> !  	    af, socktype, proto, canonname, sa = res
> !  	    try:
> !  		self.sock = socket.socket(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)
> !  		self.sock.close()
> !  		self.sock = None
> !  		continue
> !  	    break
> ! 	if not self.sock:
> !  	    raise socket.error, msg

> ! 	for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
> ! 	    af, socktype, proto, canonname, sa = res
> ! 	    try:
> ! 		self.sock = socket.socket(af, socktype, proto)
> ! 		self.sock.connect(sa)
> ! 	    except socket.error, msg:
> ! 		self.sock.close()
> ! 		self.sock = None
> ! 		continue
> ! 	    break
> !         if not self.sock:
> ! 	    raise socket.error, msg

Excuse my ignorance, but: A case for refactoring?

Also this patch introduced some hard tabs, but I guess Tim'll beat
these to death with reindent.py at some point...

Cheers,
M.