diff options
author | rrs <rrs@FreeBSD.org> | 2007-01-15 15:12:10 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2007-01-15 15:12:10 +0000 |
commit | 094d70fac7c91a2d4fa26601007f25c9d46b058e (patch) | |
tree | 7e51ed488736cee7b8b3fdcc5a1fa638803647b8 /sys/netinet6 | |
parent | af870dbd2eb2b7c401adbdae5995f68a5ff112a3 (diff) | |
download | FreeBSD-src-094d70fac7c91a2d4fa26601007f25c9d46b058e.zip FreeBSD-src-094d70fac7c91a2d4fa26601007f25c9d46b058e.tar.gz |
- Macroizes the V6ONLY flag check.
- Added a short time wait (not used yet) constant
- Corrected the type of the crc32c table (it was
unsigned long and really is a uint32_t
- Got rid of the user of MHeaders until they
are truely needed by lower layers.
- Fixed an initialization problem in the readq structure
(ordering was off).
- Found yet another collision bug when the random number
generator returns two numbers on one side (during a collision)
that are the same. Also added some tracking of cookies
that will go away when we know that we have the last collision
bug gone.
- Fixed an init bug for book_size_scale, that was causing
Early FR code to run when it should not.
- Fixed a flight size tracking bug that was associated with
Early FR but due to above bug also effected all FR's
- Fixed it so Max Burst also will apply to Fast Retransmit.
- Fixed a bug in the temporary logging code that allowed a
static log array overflow
- hashinit_flags is now used.
- Two last mcopym's were converted to the macro sctp_m_copym that
has always been used by all other places
- macro sctp_m_copym was converted to upper case.
- We now validate sinfo_flags on input (we did not before).
- Fixed a bug that prevented a user from sending data and immediately
shuting down with one send operation.
- Moved to use hashdestroy instead of free() in our macros.
- Fixed an init problem in our timed_wait vtag where we
did not fully initialize our time-wait blocks.
- Timer stops were re-positioned.
- A pcb cleanup method was added, however this probably will
not be used in BSD.. unless we make module loadable protocols
- I think this fixes the mysterious timer bug.. it was a
ordering of locks problem in the way we did timers. It
now conforms to the timeout(9) manual (except for the
_drain part, we had to do this a different way due
to locks).
- Fixed error return code so we get either CONNREUSED or CONNRESET
depending on where one is in progression
- Purged an unused clone macro.
- Fixed a read erro code issue where we were NOT getting the proper
error when the connection was reset.
- Purged an unused clone macro.
- Fixed a read erro code issue where we were NOT getting the proper
error when the connection was reset.
Approved by: gnn
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/sctp6_usrreq.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/sys/netinet6/sctp6_usrreq.c b/sys/netinet6/sctp6_usrreq.c index ab1141a..4d16816 100644 --- a/sys/netinet6/sctp6_usrreq.c +++ b/sys/netinet6/sctp6_usrreq.c @@ -656,9 +656,7 @@ sctp6_bind(struct socket *so, struct sockaddr *addr, struct thread *p) inp6 = (struct in6pcb *)inp; inp6->inp_vflag &= ~INP_IPV4; inp6->inp_vflag |= INP_IPV6; - if (addr != NULL && - (inp6->inp_flags & IN6P_IPV6_V6ONLY) - == 0) { + if ((addr != NULL) && (SCTP_IPV6_V6ONLY(inp6) == 0)) { if (addr->sa_family == AF_INET) { /* binding v4 addr to v6 socket, so reset flags */ inp6->inp_vflag |= INP_IPV4; @@ -944,10 +942,7 @@ sctp6_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr, } #ifdef INET sin6 = (struct sockaddr_in6 *)addr; - if ( - - (inp6->inp_flags & IN6P_IPV6_V6ONLY) - ) { + if (SCTP_IPV6_V6ONLY(inp6)) { /* * if IPV6_V6ONLY flag, we discard datagrams destined to a * v4 addr or v4-mapped addr @@ -1060,9 +1055,7 @@ sctp6_connect(struct socket *so, struct sockaddr *addr, struct thread *p) } #ifdef INET sin6 = (struct sockaddr_in6 *)addr; - if ( - (inp6->inp_flags & IN6P_IPV6_V6ONLY) - ) { + if (SCTP_IPV6_V6ONLY(inp6)) { /* * if IPV6_V6ONLY flag, ignore connections destined to a v4 * addr or v4-mapped addr @@ -1325,9 +1318,7 @@ sctp6_in6getaddr(struct socket *so, struct sockaddr **nam) } addr = *nam; /* if I'm V6ONLY, convert it to v4-mapped */ - if ( - (inp6->inp_flags & IN6P_IPV6_V6ONLY) - ) { + if (SCTP_IPV6_V6ONLY(inp6)) { struct sockaddr_in6 sin6; in6_sin_2_v4mapsin6((struct sockaddr_in *)addr, &sin6); @@ -1361,9 +1352,7 @@ sctp6_getpeeraddr(struct socket *so, struct sockaddr **nam) return (error); } /* if I'm V6ONLY, convert it to v4-mapped */ - if ( - (inp6->inp_flags & IN6P_IPV6_V6ONLY) - ) { + if (SCTP_IPV6_V6ONLY(inp6)) { struct sockaddr_in6 sin6; in6_sin_2_v4mapsin6((struct sockaddr_in *)addr, &sin6); |