diff --git a/src/utils.cpp b/src/utils.cpp
index 9cd9f4927c70b33a084a0690d16311f59abdc1b9..850f3768b3c12cf06d020604e68c9c88eb1429e4 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -38,7 +38,7 @@ SockAddr::resolve(const std::string& host, const std::string& service)
     memset(&hints, 0, sizeof(hints));
     hints.ai_socktype = SOCK_DGRAM;
     addrinfo* info = nullptr;
-    int rc = getaddrinfo(host.c_str(), service.c_str(), &hints, &info);
+    int rc = getaddrinfo(host.c_str(), service.empty() ? nullptr : service.c_str(), &hints, &info);
     if(rc != 0)
         throw std::invalid_argument(std::string("Error: `") + host + ":" + service + "`: " + gai_strerror(rc));