Lines Matching defs:so
281 struct socket *so = inp->inp_socket;
290 mtx_enter(&so->so_rcv.sb_mtx);
292 ret = sbappendaddr(so, &so->so_rcv, sin6tosa(rip6src), m, opts);
293 mtx_leave(&so->so_rcv.sb_mtx);
300 sorwakeup(so);
389 rip6_output(struct mbuf *m, struct socket *so, struct sockaddr *dstaddr,
402 inp = sotoinpcb(so);
405 if ((so->so_state & SS_PRIV) != 0)
410 priv, so->so_proto->pr_protocol)) != 0)
430 if (so->so_proto->pr_protocol == IPPROTO_ICMPV6) {
482 if (so->so_proto->pr_protocol == IPPROTO_ICMPV6 ||
490 if (so->so_proto->pr_protocol == IPPROTO_ICMPV6)
520 so->so_proto->pr_protocol != IPPROTO_ICMPV6)
526 if (so->so_proto->pr_protocol == IPPROTO_ICMPV6) {
548 rip6_ctloutput(int op, struct socket *so, int level, int optname,
566 error = ip6_mrouter_set(optname, so, m);
568 error = ip6_mrouter_get(optname, so, m);
574 return (ip6_raw_ctloutput(op, so, level, optname, m));
576 return (ip6_ctloutput(op, so, level, optname, m));
584 return (icmp6_ctloutput(op, so, level, optname, m));
595 rip6_attach(struct socket *so, int proto, int wait)
600 if (so->so_pcb)
602 if ((so->so_state & SS_PRIV) == 0)
607 if ((error = soreserve(so, rip6_sendspace, rip6_recvspace)))
610 if ((error = in_pcballoc(so, &rawin6pcbtable, wait)))
613 inp = sotoinpcb(so);
628 rip6_detach(struct socket *so)
630 struct inpcb *inp = sotoinpcb(so);
632 soassertlocked(so);
637 if (so == ip6_mrouter[inp->inp_rtableid])
638 ip6_mrouter_done(so);
649 rip6_bind(struct socket *so, struct mbuf *nam, struct proc *p)
651 struct inpcb *inp = sotoinpcb(so);
655 soassertlocked(so);
677 rip6_connect(struct socket *so, struct mbuf *nam)
679 struct inpcb *inp = sotoinpcb(so);
684 soassertlocked(so);
698 soisconnected(so);
704 rip6_disconnect(struct socket *so)
706 struct inpcb *inp = sotoinpcb(so);
708 soassertlocked(so);
710 if ((so->so_state & SS_ISCONNECTED) == 0)
713 soisdisconnected(so);
722 rip6_shutdown(struct socket *so)
727 soassertlocked(so);
728 socantsendmore(so);
733 rip6_send(struct socket *so, struct mbuf *m, struct mbuf *nam,
736 struct inpcb *inp = sotoinpcb(so);
740 soassertlocked(so);
751 if (so->so_state & SS_ISCONNECTED) {
769 error = rip6_output(m, so, sin6tosa(&dst), control);