Lines Matching defs:sock
129 struct sock {
131 RB_ENTRY(sock) socket_tree; /* tree of pcbs with socket */
132 SLIST_ENTRY(sock) socket_list; /* list of pcbs w/o socket */
134 RB_ENTRY(sock) pcb_tree;
152 static RB_HEAD(socks_t, sock) socks = RB_INITIALIZER(&socks);
154 socket_compare(const struct sock *a, const struct sock *b)
158 RB_GENERATE_STATIC(socks_t, sock, socket_tree, socket_compare);
160 static RB_HEAD(pcbs_t, sock) pcbs = RB_INITIALIZER(&pcbs);
162 pcb_compare(const struct sock *a, const struct sock *b)
166 RB_GENERATE_STATIC(pcbs_t, sock, pcb_tree, pcb_compare);
168 static SLIST_HEAD(, sock) nosocks = SLIST_HEAD_INITIALIZER(&nosocks);
367 free_socket(struct sock *sock)
371 cur = sock->laddr;
377 cur = sock->faddr;
383 free(sock);
389 struct sock *sock;
425 if ((sock = calloc(1, sizeof *sock)) == NULL)
427 sock->socket = xinpcb->socket;
428 sock->proto = IPPROTO_SCTP;
429 sock->protoname = "sctp";
431 sock->state = SCTP_CLOSED;
433 sock->state = SCTP_LISTEN;
435 sock->family = AF_INET6;
441 sock->vflag = INP_IPV6 | INP_IPV4;
443 sock->family = AF_INET;
444 sock->vflag = INP_IPV4;
481 sock->laddr = laddr;
486 if (sock->laddr == NULL) {
487 if ((sock->laddr =
490 sock->laddr->address.ss_family = sock->family;
491 if (sock->family == AF_INET)
492 sock->laddr->address.ss_len =
495 sock->laddr->address.ss_len =
499 if ((sock->faddr = calloc(1, sizeof(struct addr))) == NULL)
501 sock->faddr->address.ss_family = sock->family;
502 if (sock->family == AF_INET)
503 sock->faddr->address.ss_len =
506 sock->faddr->address.ss_len =
513 if (opt_l && (sock->vflag & vflag) &&
517 RB_INSERT(socks_t, &socks, sock);
519 free_socket(sock);
526 if ((sock = calloc(1, sizeof *sock)) == NULL)
528 sock->socket = xinpcb->socket;
529 sock->proto = IPPROTO_SCTP;
530 sock->protoname = "sctp";
531 sock->state = (int)xstcb->state;
533 sock->family = AF_INET6;
539 sock->vflag = INP_IPV6 | INP_IPV4;
541 sock->family = AF_INET;
542 sock->vflag = INP_IPV4;
585 sock->laddr = laddr;
632 sock->faddr = faddr;
638 if ((sock->vflag & vflag) &&
642 RB_INSERT(socks_t, &socks, sock);
644 free_socket(sock);
661 struct sock *sock;
766 if ((sock = calloc(1, sizeof(*sock))) == NULL)
772 sock->socket = so->xso_so;
773 sock->splice_socket = so->so_splice_so;
774 sock->proto = proto;
775 sock->inp_gencnt = xip->inp_gencnt;
776 sock->fibnum = so->so_fibnum;
778 sock->family = AF_INET;
779 sockaddr(&laddr->address, sock->family,
781 sockaddr(&faddr->address, sock->family,
784 sock->family = AF_INET6;
785 sockaddr(&laddr->address, sock->family,
787 sockaddr(&faddr->address, sock->family,
794 sock->laddr = laddr;
795 sock->faddr = faddr;
796 sock->vflag = xip->inp_vflag;
798 sock->state = xtp->t_state;
799 memcpy(sock->stack, xtp->xt_stack,
801 memcpy(sock->cc, xtp->xt_cc, TCP_CA_NAME_MAX);
803 sock->protoname = protoname;
804 if (sock->socket != 0)
805 RB_INSERT(socks_t, &socks, sock);
807 SLIST_INSERT_HEAD(&nosocks, sock, socket_list);
818 struct sock *sock;
877 if ((sock = calloc(1, sizeof(*sock))) == NULL)
883 sock->socket = xup->xu_socket.xso_so;
884 sock->pcb = xup->xu_unpp;
885 sock->proto = proto;
886 sock->family = AF_UNIX;
887 sock->protoname = protoname;
896 sock->laddr = laddr;
897 sock->faddr = faddr;
898 RB_INSERT(socks_t, &socks, sock);
899 RB_INSERT(pcbs_t, &pcbs, sock);
1020 check_ports(struct sock *s)
1108 displaysock(struct sock *s, int pos)
1156 struct sock *p;
1161 &(struct sock){ .pcb = faddr->conn });
1181 struct sock *p;
1189 &(struct sock){ .pcb = ref })) != 0) {
1217 struct sock *sp;
1219 sp = RB_FIND(socks_t, &socks, &(struct sock)
1340 struct sock *s;
1375 &(struct sock){ .socket = xf->xf_data});