| import pydevd_constants |
| from _pydev_imps import _pydev_socket as socket |
| |
| _cache = None |
| def get_localhost(): |
| ''' |
| Should return 127.0.0.1 in ipv4 and ::1 in ipv6 |
| |
| localhost is not used because on windows vista/windows 7, there can be issues where the resolving doesn't work |
| properly and takes a lot of time (had this issue on the pyunit server). |
| |
| Using the IP directly solves the problem. |
| ''' |
| #TODO: Needs better investigation! |
| |
| global _cache |
| if _cache is None: |
| try: |
| for addr_info in socket.getaddrinfo("localhost", 80, 0, 0, socket.SOL_TCP): |
| config = addr_info[4] |
| if config[0] == '127.0.0.1': |
| _cache = '127.0.0.1' |
| return _cache |
| except: |
| #Ok, some versions of Python don't have getaddrinfo or SOL_TCP... Just consider it 127.0.0.1 in this case. |
| _cache = '127.0.0.1' |
| else: |
| _cache = 'localhost' |
| |
| return _cache |
| |
| |
| def get_socket_name(): |
| sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
| sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
| sock.bind(('', 0)) |
| return sock.getsockname() |