* Notify a udp user of an asynchronous error; just wake up so that they can * collect error status. */
| 759 | * collect error status. |
| 760 | */ |
| 761 | struct inpcb * |
| 762 | udp_notify(struct inpcb *inp, int errno) |
| 763 | { |
| 764 | |
| 765 | INP_WLOCK_ASSERT(inp); |
| 766 | if ((errno == EHOSTUNREACH || errno == ENETUNREACH || |
| 767 | errno == EHOSTDOWN) && inp->inp_route.ro_nh) { |
| 768 | NH_FREE(inp->inp_route.ro_nh); |
| 769 | inp->inp_route.ro_nh = (struct nhop_object *)NULL; |
| 770 | } |
| 771 | |
| 772 | inp->inp_socket->so_error = errno; |
| 773 | sorwakeup(inp->inp_socket); |
| 774 | sowwakeup(inp->inp_socket); |
| 775 | return (inp); |
| 776 | } |
| 777 | |
| 778 | #ifdef INET |
| 779 | static void |
no outgoing calls
no test coverage detected