]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
timesyncd: use CMSG_FIND_DATA() macro where appropriate
authorLennart Poettering <lennart@poettering.net>
Fri, 18 Mar 2022 14:52:06 +0000 (15:52 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 18 Mar 2022 22:53:27 +0000 (23:53 +0100)
src/timesync/timesyncd-manager.c

index 4781fcadc13d532a6facd28bbeebc468915a8ca3..302f09125f6e128fcd97e3a9dedeeda8e27dc0c8 100644 (file)
@@ -422,7 +422,6 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
                 .msg_name = &server_addr,
                 .msg_namelen = sizeof(server_addr),
         };
-        struct cmsghdr *cmsg;
         struct timespec *recv_time = NULL;
         ssize_t len;
         double origin, receive, trans, dest, delay, offset, root_distance;
@@ -458,21 +457,9 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
                 return 0;
         }
 
-        CMSG_FOREACH(cmsg, &msghdr) {
-                if (cmsg->cmsg_level != SOL_SOCKET)
-                        continue;
-
-                switch (cmsg->cmsg_type) {
-                case SCM_TIMESTAMPNS:
-                        assert(cmsg->cmsg_len == CMSG_LEN(sizeof(struct timespec)));
-
-                        recv_time = (struct timespec *) CMSG_DATA(cmsg);
-                        break;
-                }
-        }
+        recv_time = CMSG_FIND_DATA(&msghdr, SOL_SOCKET, SCM_TIMESTAMPNS, struct timespec);
         if (!recv_time)
-                return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
-                                       "Invalid packet timestamp.");
+                return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Packet timestamp missing.");
 
         if (!m->pending) {
                 log_debug("Unexpected reply. Ignoring.");