def __init__(self, config):
        DNSRelay.__init__(self, config)

        self._id_to_addr = lru_cache.LRUCache(CACHE_TIMEOUT)
        self._local_sock = None
        self._remote_sock = None

        sockets = []
        for addr in (self._local_addr, self._remote_addr):
            addrs = socket.getaddrinfo(addr[0], addr[1], 0,
                                       socket.SOCK_DGRAM, socket.SOL_UDP)
            if len(addrs) == 0:
                raise Exception(addr % "can't get addrinfo for %s:%d")
            af, socktype, proto, canonname, sa = addrs[0]
            sock = socket.socket(af, socktype, proto)
            sock.setblocking(False)
            sockets.append(sock)

        self._local_sock, self._remote_sock = sockets
        self._local_sock.bind(self._local_addr)
dataset/ETHPy150Open shadowsocks/ShadowDNS/shadowdns/dnsrelay.py/UDPDNSRelay.__init__/swapped operands of `%`