| 570 | } |
| 571 | |
| 572 | static struct radix_mask * |
| 573 | rn_new_radix_mask(struct radix_node *tt, struct radix_mask *next) |
| 574 | { |
| 575 | struct radix_mask *m; |
| 576 | |
| 577 | R_Malloc(m, struct radix_mask *, sizeof (struct radix_mask)); |
| 578 | if (m == NULL) { |
| 579 | log(LOG_ERR, "Failed to allocate route mask\n"); |
| 580 | return (0); |
| 581 | } |
| 582 | bzero(m, sizeof(*m)); |
| 583 | m->rm_bit = tt->rn_bit; |
| 584 | m->rm_flags = tt->rn_flags; |
| 585 | if (tt->rn_flags & RNF_NORMAL) |
| 586 | m->rm_leaf = tt; |
| 587 | else |
| 588 | m->rm_mask = tt->rn_mask; |
| 589 | m->rm_mklist = next; |
| 590 | tt->rn_mklist = m; |
| 591 | return (m); |
| 592 | } |
| 593 | |
| 594 | struct radix_node * |
| 595 | rn_addroute(void *v_arg, void *n_arg, struct radix_head *head, |
no test coverage detected