Lines Matching full:so

90 	struct socket	*so;
175 static int ng_ksocket_listen_upcall(struct socket *so, void *arg,
179 static int ng_ksocket_incoming(struct socket *so, void *arg, int waitflag);
666 error = socreate(family, &priv->so, type, protocol,
692 struct socket *const so = priv->so;
695 SOCK_RECVBUF_LOCK(so);
696 soupcall_set(priv->so, SO_RCV, ng_ksocket_incoming, node);
697 SOCK_RECVBUF_UNLOCK(so);
698 SOCK_SENDBUF_LOCK(so);
699 soupcall_set(priv->so, SO_SND, ng_ksocket_incoming, node);
700 SOCK_SENDBUF_UNLOCK(so);
701 SOCK_LOCK(priv->so);
702 priv->so->so_state |= SS_NBIO;
703 SOCK_UNLOCK(priv->so);
736 ng_send_fn(node, NULL, &ng_ksocket_incoming2, so, M_NOWAIT);
750 struct socket *const so = priv->so;
768 if (so == NULL)
772 error = sobind(so, sa, td);
780 if (so == NULL)
784 so->so_state |= SS_NBIO;
785 error = solisten(so, *((int32_t *)msg->data), td);
787 SOLISTEN_LOCK(so);
788 solisten_upcall_set(so,
790 SOLISTEN_UNLOCK(so);
800 if (so == NULL)
804 if (!(so->so_options & SO_ACCEPTCONN))
835 if (so == NULL)
839 if ((so->so_state & SS_ISCONNECTING) != 0)
841 if ((error = soconnect(so, sa, td)) != 0) {
842 so->so_state &= ~SS_ISCONNECTING;
845 if ((so->so_state & SS_ISCONNECTING) != 0) {
858 int (*func)(struct socket *so, struct sockaddr *sa);
864 if (so == NULL)
869 if ((so->so_state & SS_ISCONNECTED) == 0)
876 error = (*func)(so, (struct sockaddr *)&ss);
899 if (so == NULL)
916 if ((error = sogetopt(so, &sopt)) != 0) {
937 if (so == NULL)
947 error = sosetopt(so, &sopt);
975 struct socket *const so = priv->so;
1011 error = sosend(so, sa, 0, m, 0, 0, td);
1023 struct socket *so = priv->so;
1027 if (priv->so != NULL) {
1028 if (SOLISTENING(so)) {
1029 SOLISTEN_LOCK(so);
1030 solisten_upcall_set(so, NULL, NULL);
1031 SOLISTEN_UNLOCK(so);
1033 SOCK_RECVBUF_LOCK(so);
1034 soupcall_clear(so, SO_RCV);
1035 SOCK_RECVBUF_UNLOCK(so);
1036 SOCK_SENDBUF_LOCK(so);
1037 soupcall_clear(so, SO_SND);
1038 SOCK_SENDBUF_UNLOCK(so);
1040 soclose(so);
1041 priv->so = NULL;
1083 * asynchronous event. This is because in doing so you are ignoring the
1087 * time (several millisecs away) so don't give it any arguments
1094 ng_ksocket_incoming(struct socket *so, void *arg, int waitflag)
1107 ng_send_fn1(node, NULL, &ng_ksocket_incoming2, so, 0, wait)) {
1123 struct socket *so = arg1;
1128 KASSERT(so == priv->so, ("%s: wrong socket", __func__));
1135 if ((error = so->so_error) != 0) {
1136 so->so_error = 0;
1137 so->so_state &= ~SS_ISCONNECTING;
1139 if (!(so->so_state & SS_ISCONNECTING)) {
1178 if ((error = soreceive(so, (so->so_state & SS_ISCONNECTED) ?
1196 * Stream sockets do not have packet boundaries, so
1200 if (so->so_type == SOCK_STREAM) {
1242 if (so->so_rcv.sb_state & SBS_CANTRCVMORE &&
1256 struct socket *const head = priv->so;
1257 struct socket *so;
1267 error = solisten_dequeue(head, &so, SOCK_NONBLOCK);
1276 if ((error = soaccept(so, (struct sockaddr *)&ss)) != 0)
1285 soclose(so);
1295 soclose(so);
1302 soclose(so);
1307 priv2->so = so;
1318 SOCK_RECVBUF_LOCK(so);
1319 soupcall_set(so, SO_RCV, ng_ksocket_incoming, node);
1320 SOCK_RECVBUF_UNLOCK(so);
1321 SOCK_SENDBUF_LOCK(so);
1322 soupcall_set(so, SO_SND, ng_ksocket_incoming, node);
1323 SOCK_SENDBUF_UNLOCK(so);
1337 ng_ksocket_listen_upcall(struct socket *so, void *arg, int waitflag)