From 1ea75a9d5427da3bc7cbb0410567e0469cdea2df Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Wed, 3 Jul 2019 16:19:23 -0700 Subject: [PATCH] scoutfs: add scoutfs_addr sin conversion functions Add some quick functions that let us convert between our persistent packed inet addr struct and native sockaddr_in structs. Signed-off-by: Zach Brown --- kmod/src/net.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/kmod/src/net.h b/kmod/src/net.h index c144c69e..a15e005a 100644 --- a/kmod/src/net.h +++ b/kmod/src/net.h @@ -2,10 +2,26 @@ #define _SCOUTFS_NET_H_ #include +#include "endian_swap.h" #define SIN_FMT "%pIS:%u" #define SIN_ARG(sin) sin, be16_to_cpu((sin)->sin_port) +static inline void scoutfs_addr_to_sin(struct sockaddr_in *sin, + struct scoutfs_inet_addr *addr) +{ + sin->sin_family = AF_INET; + sin->sin_addr.s_addr = cpu_to_be32(le32_to_cpu(addr->addr)); + sin->sin_port = cpu_to_be16(le16_to_cpu(addr->port)); +} + +static inline void scoutfs_addr_from_sin(struct scoutfs_inet_addr *addr, + struct sockaddr_in *sin) +{ + addr->addr = be32_to_le32(sin->sin_addr.s_addr); + addr->port = be16_to_le16(sin->sin_port); +} + struct scoutfs_net_connection; /* These are called in their own blocking context */