Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/udp6_usrreq.c
Show First 20 Lines • Show All 189 Lines • ▼ Show 20 Lines | tmp_opts = sbcreatecontrol((caddr_t)&fromsa[1], | ||||
} | } | ||||
} | } | ||||
m_adj(n, off + sizeof(struct udphdr)); | m_adj(n, off + sizeof(struct udphdr)); | ||||
so = inp->inp_socket; | so = inp->inp_socket; | ||||
SOCKBUF_LOCK(&so->so_rcv); | SOCKBUF_LOCK(&so->so_rcv); | ||||
if (sbappendaddr_locked(&so->so_rcv, (struct sockaddr *)&fromsa[0], n, | if (sbappendaddr_locked(&so->so_rcv, (struct sockaddr *)&fromsa[0], n, | ||||
opts) == 0) { | opts) == 0) { | ||||
SOCKBUF_UNLOCK(&so->so_rcv); | soroverflow_locked(so); | ||||
m_freem(n); | m_freem(n); | ||||
if (opts) | if (opts) | ||||
m_freem(opts); | m_freem(opts); | ||||
UDPSTAT_INC(udps_fullsock); | UDPSTAT_INC(udps_fullsock); | ||||
} else | } else | ||||
sorwakeup_locked(so); | sorwakeup_locked(so); | ||||
return (0); | return (0); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 1,184 Lines • Show Last 20 Lines |