diff options
Diffstat (limited to 'src/psock.c')
-rw-r--r-- | src/psock.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/psock.c b/src/psock.c index 8e1cbc3..78ecbff 100644 --- a/src/psock.c +++ b/src/psock.c @@ -76,6 +76,14 @@ void psock_free(struct psock * psock) psock->epoll_fd = -1; } +static void psock_process_cmsg(struct msghdr * hdr) +{ + for (struct cmsghdr * cmsg = CMSG_FIRSTHDR(hdr); cmsg != NULL; cmsg = CMSG_NXTHDR(hdr, cmsg)) + { + printf("CMSG TYPE/LEVEL/LEN: %d / %d / %zu\n", cmsg->cmsg_type, cmsg->cmsg_level, cmsg->cmsg_len); + } +} + static int psock_recvmsg(struct psock * psock) { struct sockaddr_storage peer; @@ -98,15 +106,7 @@ static int psock_recvmsg(struct psock * psock) if (nread >= 0) { psock->packet.used = nread; - - struct cmsghdr *cmsg = CMSG_FIRSTHDR(&hdr); - while (cmsg != NULL) - { - printf("CMSG TYPE/LEVEL/LEN: %d / %d / %zu\n", cmsg->cmsg_type, cmsg->cmsg_level, cmsg->cmsg_len); - - cmsg = CMSG_NXTHDR(&hdr, cmsg); - } - + psock_process_cmsg(&hdr); return 0; } else { psock->packet.used = 0; |