chiark / gitweb /
update TODO
[elogind.git] / src / shared / socket-util.c
index e3e54e8e089aeeec135b65e0754b8cf2cf1dec81..c6f64876be4485f6a9c2b4aab41b04b2a094563d 100644 (file)
@@ -633,20 +633,18 @@ int socknameinfo_pretty(union sockaddr_union *sa, socklen_t salen, char **_ret)
         r = getnameinfo(&sa->sa, salen, host, sizeof(host), NULL, 0,
                         NI_IDN|NI_IDN_USE_STD3_ASCII_RULES);
         if (r != 0) {
-                _cleanup_free_ char *sockname = NULL;
                 int saved_errno = errno;
 
-                r = sockaddr_pretty(&sa->sa, salen, true, &sockname);
+                r = sockaddr_pretty(&sa->sa, salen, true, &ret);
                 if (r < 0)
-                        log_error("sockadd_pretty() failed: %s", strerror(-r));
-                else
-                        log_error("getnameinfo(%s) failed: %s", sockname, strerror(-r));
-                return -saved_errno;
-        }
+                        return log_error_errno(r, "sockadd_pretty() failed: %m");
 
-        ret = strdup(host);
-        if (!ret)
-                return log_oom();
+                log_debug_errno(saved_errno, "getnameinfo(%s) failed: %m", ret);
+        } else {
+                ret = strdup(host);
+                if (!ret)
+                        return log_oom();
+        }
 
         *_ret = ret;
         return 0;
@@ -659,10 +657,8 @@ int getnameinfo_pretty(int fd, char **ret) {
         assert(fd >= 0);
         assert(ret);
 
-        if (getsockname(fd, &sa.sa, &salen) < 0) {
-                log_error("getsockname(%d) failed: %m", fd);
-                return -errno;
-        }
+        if (getsockname(fd, &sa.sa, &salen) < 0)
+                return log_error_errno(errno, "getsockname(%d) failed: %m", fd);
 
         return socknameinfo_pretty(&sa, salen, ret);
 }