Lines Matching refs:so
85 struct socket *so; member
157 static int ng_ksocket_incoming(struct socket *so, void *arg, int waitflag);
580 error = socreate(family, &priv->so, type, protocol, in ng_ksocket_newhook()
607 struct socket *const so = priv->so; in ng_ksocket_connect() local
610 SOCKBUF_LOCK(&priv->so->so_rcv); in ng_ksocket_connect()
611 soupcall_set(priv->so, SO_RCV, ng_ksocket_incoming, node); in ng_ksocket_connect()
612 SOCKBUF_UNLOCK(&priv->so->so_rcv); in ng_ksocket_connect()
613 SOCKBUF_LOCK(&priv->so->so_snd); in ng_ksocket_connect()
614 soupcall_set(priv->so, SO_SND, ng_ksocket_incoming, node); in ng_ksocket_connect()
615 SOCKBUF_UNLOCK(&priv->so->so_snd); in ng_ksocket_connect()
616 SOCK_LOCK(priv->so); in ng_ksocket_connect()
617 priv->so->so_state |= SS_NBIO; in ng_ksocket_connect()
618 SOCK_UNLOCK(priv->so); in ng_ksocket_connect()
651 ng_send_fn(node, NULL, &ng_ksocket_incoming2, so, M_NOWAIT); in ng_ksocket_connect()
665 struct socket *const so = priv->so; in ng_ksocket_rcvmsg() local
684 if (so == NULL) in ng_ksocket_rcvmsg()
688 error = sobind(so, sa, td); in ng_ksocket_rcvmsg()
696 if (so == NULL) in ng_ksocket_rcvmsg()
700 so->so_state |= SS_NBIO; in ng_ksocket_rcvmsg()
701 error = solisten(so, *((int32_t *)msg->data), td); in ng_ksocket_rcvmsg()
710 if (so == NULL) in ng_ksocket_rcvmsg()
714 if (!(so->so_options & SO_ACCEPTCONN)) in ng_ksocket_rcvmsg()
741 if (so == NULL) in ng_ksocket_rcvmsg()
745 if ((so->so_state & SS_ISCONNECTING) != 0) in ng_ksocket_rcvmsg()
747 if ((error = soconnect(so, sa, td)) != 0) { in ng_ksocket_rcvmsg()
748 so->so_state &= ~SS_ISCONNECTING; in ng_ksocket_rcvmsg()
751 if ((so->so_state & SS_ISCONNECTING) != 0) { in ng_ksocket_rcvmsg()
764 int (*func)(struct socket *so, struct sockaddr **nam); in ng_ksocket_rcvmsg()
771 if (so == NULL) in ng_ksocket_rcvmsg()
776 if ((so->so_state in ng_ksocket_rcvmsg()
779 func = so->so_proto->pr_usrreqs->pru_peeraddr; in ng_ksocket_rcvmsg()
781 func = so->so_proto->pr_usrreqs->pru_sockaddr; in ng_ksocket_rcvmsg()
784 if ((error = (*func)(so, &sa)) != 0) in ng_ksocket_rcvmsg()
812 if (so == NULL) in ng_ksocket_rcvmsg()
829 if ((error = sogetopt(so, &sopt)) != 0) { in ng_ksocket_rcvmsg()
850 if (so == NULL) in ng_ksocket_rcvmsg()
860 error = sosetopt(so, &sopt); in ng_ksocket_rcvmsg()
888 struct socket *const so = priv->so; in ng_ksocket_rcvdata() local
924 error = sosend(so, sa, 0, m, 0, 0, td); in ng_ksocket_rcvdata()
939 if (priv->so != NULL) { in ng_ksocket_shutdown()
940 SOCKBUF_LOCK(&priv->so->so_rcv); in ng_ksocket_shutdown()
941 soupcall_clear(priv->so, SO_RCV); in ng_ksocket_shutdown()
942 SOCKBUF_UNLOCK(&priv->so->so_rcv); in ng_ksocket_shutdown()
943 SOCKBUF_LOCK(&priv->so->so_snd); in ng_ksocket_shutdown()
944 soupcall_clear(priv->so, SO_SND); in ng_ksocket_shutdown()
945 SOCKBUF_UNLOCK(&priv->so->so_snd); in ng_ksocket_shutdown()
946 soclose(priv->so); in ng_ksocket_shutdown()
947 priv->so = NULL; in ng_ksocket_shutdown()
1000 ng_ksocket_incoming(struct socket *so, void *arg, int waitflag) in ng_ksocket_incoming() argument
1013 ng_send_fn1(node, NULL, &ng_ksocket_incoming2, so, 0, wait)) { in ng_ksocket_incoming()
1030 struct socket *so = arg1; in ng_ksocket_incoming2() local
1035 KASSERT(so == priv->so, ("%s: wrong socket", __func__)); in ng_ksocket_incoming2()
1042 if ((error = so->so_error) != 0) { in ng_ksocket_incoming2()
1043 so->so_error = 0; in ng_ksocket_incoming2()
1044 so->so_state &= ~SS_ISCONNECTING; in ng_ksocket_incoming2()
1046 if (!(so->so_state & SS_ISCONNECTING)) { in ng_ksocket_incoming2()
1089 if ((error = soreceive(so, (so->so_state & SS_ISCONNECTED) ? in ng_ksocket_incoming2()
1111 if (so->so_type == SOCK_STREAM) { in ng_ksocket_incoming2()
1153 if (so->so_rcv.sb_state & SBS_CANTRCVMORE && in ng_ksocket_incoming2()
1167 struct socket *const head = priv->so; in ng_ksocket_accept()
1168 struct socket *so; in ng_ksocket_accept() local
1178 error = solisten_dequeue(head, &so, SOCK_NONBLOCK); in ng_ksocket_accept()
1187 if ((error = soaccept(so, &sa)) != 0) in ng_ksocket_accept()
1197 soclose(so); in ng_ksocket_accept()
1207 soclose(so); in ng_ksocket_accept()
1214 soclose(so); in ng_ksocket_accept()
1219 priv2->so = so; in ng_ksocket_accept()
1230 SOCKBUF_LOCK(&so->so_rcv); in ng_ksocket_accept()
1231 soupcall_set(so, SO_RCV, ng_ksocket_incoming, node); in ng_ksocket_accept()
1232 SOCKBUF_UNLOCK(&so->so_rcv); in ng_ksocket_accept()
1233 SOCKBUF_LOCK(&so->so_snd); in ng_ksocket_accept()
1234 soupcall_set(so, SO_SND, ng_ksocket_incoming, node); in ng_ksocket_accept()
1235 SOCKBUF_UNLOCK(&so->so_snd); in ng_ksocket_accept()