diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2006-11-20 20:02:01 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-03 00:26:24 -0500 |
commit | 04afd8b282d702bc122051751466000e9513ef96 (patch) | |
tree | 1a5bc840fbc322daaf71b1e9fdd83b27274f9cc9 /include/net | |
parent | dbc16db1e58da6c346ca3e63870c17b93fbed0f0 (diff) |
[SCTP]: Beginning of sin_port fixes.
That's going to be a long series. Introduced temporary helpers
doing copy-and-convert for sctp_addr; they are used to kill
flip-in-place in global data structures and will be used
to gradually push host-endian uses of sctp_addr out of existence.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/sctp/structs.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index ca77bc5b7ff5..2aa61ac9a9f3 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -74,6 +74,28 @@ union sctp_addr { | |||
74 | struct sockaddr sa; | 74 | struct sockaddr sa; |
75 | }; | 75 | }; |
76 | 76 | ||
77 | static inline void flip_to_n(union sctp_addr *to, const union sctp_addr *from) | ||
78 | { | ||
79 | size_t len; | ||
80 | if (from->sa.sa_family == AF_INET6) | ||
81 | len = sizeof(struct sockaddr_in6); | ||
82 | else | ||
83 | len = sizeof(struct sockaddr); | ||
84 | memcpy(to, from, len); | ||
85 | to->v4.sin_port = htons(from->v4.sin_port); | ||
86 | } | ||
87 | |||
88 | static inline void flip_to_h(union sctp_addr *to, const union sctp_addr *from) | ||
89 | { | ||
90 | size_t len; | ||
91 | if (from->sa.sa_family == AF_INET6) | ||
92 | len = sizeof(struct sockaddr_in6); | ||
93 | else | ||
94 | len = sizeof(struct sockaddr); | ||
95 | memcpy(to, from, len); | ||
96 | to->v4.sin_port = ntohs(from->v4.sin_port); | ||
97 | } | ||
98 | |||
77 | /* Forward declarations for data structures. */ | 99 | /* Forward declarations for data structures. */ |
78 | struct sctp_globals; | 100 | struct sctp_globals; |
79 | struct sctp_endpoint; | 101 | struct sctp_endpoint; |