Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/raw_ip6.c
Show First 20 Lines • Show All 208 Lines • ▼ Show 20 Lines | #endif /* IPSEC */ | ||||
if (last->inp_flags & INP_CONTROLOPTS || | if (last->inp_flags & INP_CONTROLOPTS || | ||||
last->inp_socket->so_options & SO_TIMESTAMP) | last->inp_socket->so_options & SO_TIMESTAMP) | ||||
ip6_savecontrol(last, n, &opts); | ip6_savecontrol(last, n, &opts); | ||||
/* strip intermediate headers */ | /* strip intermediate headers */ | ||||
m_adj(n, *offp); | m_adj(n, *offp); | ||||
if (sbappendaddr(&last->inp_socket->so_rcv, | if (sbappendaddr(&last->inp_socket->so_rcv, | ||||
(struct sockaddr *)&fromsa, | (struct sockaddr *)&fromsa, | ||||
n, opts) == 0) { | n, opts) == 0) { | ||||
soroverflow(last->inp_socket); | |||||
m_freem(n); | m_freem(n); | ||||
if (opts) | if (opts) | ||||
m_freem(opts); | m_freem(opts); | ||||
RIP6STAT_INC(rip6s_fullsock); | RIP6STAT_INC(rip6s_fullsock); | ||||
} else | } else | ||||
sorwakeup(last->inp_socket); | sorwakeup(last->inp_socket); | ||||
opts = NULL; | opts = NULL; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 95 Lines • ▼ Show 20 Lines | #endif /* IPSEC */ | ||||
if (last != NULL) { | if (last != NULL) { | ||||
if (last->inp_flags & INP_CONTROLOPTS || | if (last->inp_flags & INP_CONTROLOPTS || | ||||
last->inp_socket->so_options & SO_TIMESTAMP) | last->inp_socket->so_options & SO_TIMESTAMP) | ||||
ip6_savecontrol(last, m, &opts); | ip6_savecontrol(last, m, &opts); | ||||
/* Strip intermediate headers. */ | /* Strip intermediate headers. */ | ||||
m_adj(m, *offp); | m_adj(m, *offp); | ||||
if (sbappendaddr(&last->inp_socket->so_rcv, | if (sbappendaddr(&last->inp_socket->so_rcv, | ||||
(struct sockaddr *)&fromsa, m, opts) == 0) { | (struct sockaddr *)&fromsa, m, opts) == 0) { | ||||
soroverflow(last->inp_socket); | |||||
m_freem(m); | m_freem(m); | ||||
if (opts) | if (opts) | ||||
m_freem(opts); | m_freem(opts); | ||||
RIP6STAT_INC(rip6s_fullsock); | RIP6STAT_INC(rip6s_fullsock); | ||||
} else | } else | ||||
sorwakeup(last->inp_socket); | sorwakeup(last->inp_socket); | ||||
INP_RUNLOCK(last); | INP_RUNLOCK(last); | ||||
} else { | } else { | ||||
▲ Show 20 Lines • Show All 609 Lines • Show Last 20 Lines |