Lines Matching defs:so
237 struct socket *so = inp->inp_socket;
241 if (inp->inp_flags & INP_CONTROLOPTS || so->so_options & SO_TIMESTAMP)
244 mtx_enter(&so->so_rcv.sb_mtx);
246 ret = sbappendaddr(so, &so->so_rcv, sintosa(ripsrc), m, opts);
247 mtx_leave(&so->so_rcv.sb_mtx);
254 sorwakeup(so);
262 rip_output(struct mbuf *m, struct socket *so, struct sockaddr *dstaddr,
270 inp = sotoinpcb(so);
417 rip_ctloutput(int op, struct socket *so, int level, int optname,
420 struct inpcb *inp = sotoinpcb(so);
456 error = ip_mrouter_set(so, optname, m);
459 error = ip_mrouter_get(so, optname, m);
470 return (ip_ctloutput(op, so, level, optname, m));
477 rip_attach(struct socket *so, int proto, int wait)
482 if (so->so_pcb)
484 if ((so->so_state & SS_PRIV) == 0)
489 if ((error = soreserve(so, rip_sendspace, rip_recvspace)))
492 if ((error = in_pcballoc(so, &rawcbtable, wait)))
494 inp = sotoinpcb(so);
500 rip_detach(struct socket *so)
502 struct inpcb *inp = sotoinpcb(so);
504 soassertlocked(so);
510 if (so == ip_mrouter[inp->inp_rtableid])
511 ip_mrouter_done(so);
519 rip_bind(struct socket *so, struct mbuf *nam, struct proc *p)
521 struct inpcb *inp = sotoinpcb(so);
525 soassertlocked(so);
530 if (!((so->so_options & SO_BINDANY) ||
545 rip_connect(struct socket *so, struct mbuf *nam)
547 struct inpcb *inp = sotoinpcb(so);
551 soassertlocked(so);
559 soisconnected(so);
565 rip_disconnect(struct socket *so)
567 struct inpcb *inp = sotoinpcb(so);
569 soassertlocked(so);
571 if ((so->so_state & SS_ISCONNECTED) == 0)
574 soisdisconnected(so);
583 rip_shutdown(struct socket *so)
589 soassertlocked(so);
590 socantsendmore(so);
596 rip_send(struct socket *so, struct mbuf *m, struct mbuf *nam,
599 struct inpcb *inp = sotoinpcb(so);
603 soassertlocked(so);
612 if (so->so_state & SS_ISCONNECTED) {
632 error = rip_output(m, so, sintosa(&dst), NULL);