| 690 | } |
| 691 | |
| 692 | static void |
| 693 | rip6_detach(struct socket *so) |
| 694 | { |
| 695 | struct inpcb *inp; |
| 696 | |
| 697 | inp = sotoinpcb(so); |
| 698 | KASSERT(inp != NULL, ("rip6_detach: inp == NULL")); |
| 699 | |
| 700 | if (so == V_ip6_mrouter && ip6_mrouter_done) |
| 701 | ip6_mrouter_done(); |
| 702 | /* xxx: RSVP */ |
| 703 | INP_INFO_WLOCK(&V_ripcbinfo); |
| 704 | INP_WLOCK(inp); |
| 705 | free(inp->in6p_icmp6filt, M_PCB); |
| 706 | in_pcbdetach(inp); |
| 707 | in_pcbfree(inp); |
| 708 | INP_INFO_WUNLOCK(&V_ripcbinfo); |
| 709 | } |
| 710 | |
| 711 | /* XXXRW: This can't ever be called. */ |
| 712 | static void |
nothing calls this directly
no test coverage detected