/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/http_server.py

  • Committer: Vincent Ladeuil
  • Date: 2009-10-08 08:29:47 UTC
  • mto: (4731.2.5 392127-thread-leak)
  • mto: This revision was merged to the branch mainline in revision 5396.
  • Revision ID: v.ladeuil+lp@free.fr-20091008082947-avilzu93drofi82n
Reduce patch for review purposes.

* bzrlib/tests/http_server.py:
(TestingHTTPServerMixin.connect_socket): Fix python-2.4 missing
feature more simply.

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
import urllib
31
31
import urlparse
32
32
 
33
 
from bzrlib import (
34
 
    transport,
35
 
    osutils,
36
 
    )
 
33
from bzrlib import transport
37
34
from bzrlib.transport import local
38
35
 
39
36
 
345
342
        self.server_close()
346
343
        self.is_shut_down.set()
347
344
 
 
345
    def connect_socket(self):
 
346
        msg = "getaddrinfo returns an empty list"
 
347
        for res in socket.getaddrinfo(*self.server_address):
 
348
            af, socktype, proto, canonname, sa = res
 
349
            sock = None
 
350
            try:
 
351
                sock = socket.socket(af, socktype, proto)
 
352
                sock.connect(sa)
 
353
                return sock
 
354
 
 
355
            except socket.error, msg:
 
356
                if sock is not None:
 
357
                    sock.close()
 
358
        raise socket.error, msg
 
359
 
348
360
    def shutdown(self):
349
361
        """Stops the serve() loop.
350
362
 
356
368
        self.serving = False
357
369
        # The server is listening for a last connection, let's give it:
358
370
        try:
359
 
            fake_conn = osutils.connect_socket(self.server_address)
 
371
            fake_conn = self.connect_socket()
360
372
            fake_conn.close()
361
373
        except socket.error, e:
362
374
            # But ignore connection errors as the point is to unblock the