diff --git a/python/opendht.pyx b/python/opendht.pyx index 6b4af8ffe606968b6612daa853c770660cef66ba..bf4872e60b3cbd0b536ea97e01ed019b860cbdef 100644 --- a/python/opendht.pyx +++ b/python/opendht.pyx @@ -158,6 +158,15 @@ cdef class SockAddr(object): return self.toString().decode() def __repr__(self): return "<%s '%s'>" % (self.__class__.__name__, str(self)) + @staticmethod + def resolve(str host, str service=None): + vals = [] + result = cpp.SockAddr.resolve(host.encode(), service.encode() if service else b'') + for val in result: + a = SockAddr() + a._addr = val + vals.append(a) + return vals cdef class Node(_WithID): cdef shared_ptr[cpp.Node] _node diff --git a/python/opendht_cpp.pxd b/python/opendht_cpp.pxd index 3cc145ee20bd02cb213a6b9c545bb9bfcf1673de..74c0a015b677b076d08ab0b8f59a4df142b83fc0 100644 --- a/python/opendht_cpp.pxd +++ b/python/opendht_cpp.pxd @@ -86,6 +86,8 @@ cdef extern from "opendht/sockaddr.h" namespace "dht": bool isLoopback() const bool isPrivate() const bool isUnspecified() const + @staticmethod + vector[SockAddr] resolve(string host, string service) except + ctypedef vector[uint8_t] Blob