openvswitch / ovs-issues

Issue tracker repo for Open vSwitch
10 stars 3 forks source link

Python try to connect a stream to a remote peer, remote address don't support use domain name #204

Open lucheng0127 opened 3 years ago

lucheng0127 commented 3 years ago

When I try to connect a remote ovsdb via domain name, it can't parse correctly. Support it to convert domain name to ip address string in (ovs.socket_util.inet_open_active) Do like this will be works

def inet_open_active(style, target, default_port, dscp):
    address = inet_parse_active(target, default_port)
    try:
        # If address is domain name convert it to ip address string
        address_list = list(address)
        address_list[0] = socket.gethostbyname(address_list[0])
        address = tuple(address_list)
    except socket.gaierror as e:
        return get_exception_errno(e), None
    try:
        is_addr_inet = is_valid_ipv4_address(address[0])
        if is_addr_inet:
            sock = socket.socket(socket.AF_INET, style, 0)
            family = socket.AF_INET
        else:
            sock = socket.socket(socket.AF_INET6, style, 0)
            family = socket.AF_INET6
    except socket.error as e:
        return get_exception_errno(e), None
...
igsilya commented 3 years ago

Hi, @lucheng0127 . There is a patch on our mail-list that is targeted to this issue, submitted back in october: http://patchwork.ozlabs.org/project/openvswitch/patch/5f863a8f.49B7DC8/gVsdoIuP%25thomas.neuman@nutanix.com/ https://mail.openvswitch.org/pipermail/ovs-dev/2020-October/376104.html It would be great if you can help with review.