Lines Matching defs:so

138 				/* Clear any time so NO RTT is being done */
225 struct socket *so;
284 so = SCTP_INP_SO(inp);
287 SCTP_SOCKET_LOCK(so, 1);
294 SCTP_SOCKET_UNLOCK(so, 1);
441 sctp_abort(struct socket *so)
446 inp = (struct sctp_inpcb *)so->so_pcb;
462 SOCK_LOCK(so);
463 SCTP_SB_CLEAR(so->so_snd);
468 SCTP_SB_CLEAR(so->so_rcv);
471 so->so_pcb = NULL;
472 SOCK_UNLOCK(so);
483 sctp_attach(struct socket *so, int proto SCTP_UNUSED, struct thread *p SCTP_UNUSED)
490 inp = (struct sctp_inpcb *)so->so_pcb;
495 if (so->so_snd.sb_hiwat == 0 || so->so_rcv.sb_hiwat == 0) {
496 error = SCTP_SORESERVE(so, SCTP_BASE_SYSCTL(sctp_sendspace), SCTP_BASE_SYSCTL(sctp_recvspace));
501 error = sctp_inpcb_alloc(so, vrf_id);
505 inp = (struct sctp_inpcb *)so->so_pcb;
516 sctp_bind(struct socket *so, struct sockaddr *addr, struct thread *p)
520 inp = (struct sctp_inpcb *)so->so_pcb;
532 return (sctp_inpcb_bind(so, addr, NULL, p));
537 sctp_close(struct socket *so)
542 inp = (struct sctp_inpcb *)so->so_pcb;
556 if (((so->so_options & SO_LINGER) && (so->so_linger == 0)) ||
557 (so->so_rcv.sb_cc > 0)) {
574 SOCK_LOCK(so);
575 SCTP_SB_CLEAR(so->so_snd);
580 SCTP_SB_CLEAR(so->so_rcv);
583 so->so_pcb = NULL;
584 SOCK_UNLOCK(so);
596 sctp_sendm(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr,
601 sctp_sendm(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr,
607 inp = (struct sctp_inpcb *)so->so_pcb;
686 sctp_disconnect(struct socket *so)
690 inp = (struct sctp_inpcb *)so->so_pcb;
720 if (((so->so_options & SO_LINGER) &&
721 (so->so_linger == 0)) ||
722 (so->so_rcv.sb_cc > 0)) {
757 /* there is nothing queued to send, so done */
788 * so set SHUTDOWN_PENDING
842 soisdisconnecting(so);
857 sctp_flush(struct socket *so, int how)
867 inp = (struct sctp_inpcb *)so->so_pcb;
889 so->so_rcv.sb_cc = 0;
890 so->so_rcv.sb_mbcnt = 0;
891 so->so_rcv.sb_mb = NULL;
898 so->so_snd.sb_cc = 0;
899 so->so_snd.sb_mbcnt = 0;
900 so->so_snd.sb_mb = NULL;
907 sctp_shutdown(struct socket *so)
911 inp = (struct sctp_inpcb *)so->so_pcb;
921 SOCKBUF_LOCK(&so->so_rcv);
922 so->so_rcv.sb_state &= ~SBS_CANTRCVMORE;
923 SOCKBUF_UNLOCK(&so->so_rcv);
938 if ((so->so_state &
943 socantsendmore(so);
985 /* there is nothing queued to send, so I'm done... */
995 * We still got (or just got) data to send, so set
1409 sctp_do_connect_x(struct socket *so, struct sctp_inpcb *inp, void *optval,
1493 error = sctp_inpcb_bind(so, NULL, NULL, p);
1513 /* Set the connected flag so we can queue data */
1514 soisconnecting(so);
1558 /* Set the connected flag so we can queue data */
1559 soisconnecting(so);
1602 sctp_getopt(struct socket *so, int optname, void *optval, size_t *optsize,
1613 inp = (struct sctp_inpcb *)so->so_pcb;
2467 * No destination so return default
3750 sctp_setopt(struct socket *so, int optname, void *optval, size_t optsize,
3764 inp = (struct sctp_inpcb *)so->so_pcb;
3871 if (*value > SCTP_SB_LIMIT_RCV(so)) {
4814 error = sctp_do_connect_x(so, inp, optval, optsize, p, 0);
4822 error = sctp_do_connect_x(so, inp, optval, optsize, p, 1);
5912 sctp_bindx_add_address(so, inp, addrs->addr,
6039 * of events, so return an error for
6754 sctp_ctloutput(struct socket *so, struct sockopt *sopt)
6764 inp = (struct sctp_inpcb *)so->so_pcb;
6766 SCTP_LTRACE_ERR_RET(so->so_pcb, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOBUFS);
6770 inp->fibnum = so->so_fibnum;
6777 if (INP_CHECK_SOCKAF(so, AF_INET6))
6778 error = ip6_ctloutput(so, sopt);
6784 error = ip_ctloutput(so, sopt);
6792 SCTP_LTRACE_ERR_RET(so->so_pcb, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOBUFS);
6803 error = sctp_setopt(so, sopt->sopt_name, optval, optsize, p);
6805 error = sctp_getopt(so, sopt->sopt_name, optval, &optsize, p);
6807 SCTP_LTRACE_ERR_RET(so->so_pcb, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
6822 sctp_connect(struct socket *so, struct sockaddr *addr, struct thread *p)
6830 inp = (struct sctp_inpcb *)so->so_pcb;
6902 error = sctp_inpcb_bind(so, NULL, NULL, p);
6954 /* Set the connected flag so we can queue data */
6955 soisconnecting(so);
6976 sctp_listen(struct socket *so, int backlog, struct thread *p)
6990 inp = (struct sctp_inpcb *)so->so_pcb;
7087 SOCK_LOCK(so);
7088 error = solisten_proto_check(so);
7089 SOCK_UNLOCK(so);
7118 if ((error = sctp_inpcb_bind(so, NULL, NULL, p))) {
7123 SOCK_LOCK(so);
7125 solisten_proto(so, backlog);
7128 so->so_options &= ~SO_ACCEPTCONN;
7132 so->so_options &= ~SO_ACCEPTCONN;
7134 SOCK_UNLOCK(so);
7141 sctp_accept(struct socket *so, struct sockaddr **addr)
7151 inp = (struct sctp_inpcb *)so->so_pcb;
7163 if (so->so_state & SS_ISDISCONNECTED) {
7259 sctp_ingetaddr(struct socket *so, struct sockaddr **addr)
7274 inp = (struct sctp_inpcb *)so->so_pcb;
7356 sctp_peeraddr(struct socket *so, struct sockaddr **addr)
7372 inp = (struct sctp_inpcb *)so->so_pcb;