| 792 | } |
| 793 | |
| 794 | void |
| 795 | free_rt_data( |
| 796 | rt_data_t* rt_data, |
| 797 | osips_free_f free_f |
| 798 | ) |
| 799 | { |
| 800 | int j; |
| 801 | if(NULL!=rt_data) { |
| 802 | /* del GW list */ |
| 803 | del_pgw_list(rt_data->pgw_tree); |
| 804 | rt_data->pgw_tree = 0 ; |
| 805 | /* del prefix tree */ |
| 806 | del_tree(rt_data->pt, free_f); |
| 807 | rt_data->pt = 0 ; |
| 808 | /* del prefixless rules */ |
| 809 | if(NULL!=rt_data->noprefix.rg) { |
| 810 | for(j=0;j<rt_data->noprefix.rg_pos;j++) { |
| 811 | if(rt_data->noprefix.rg[j].rtlw !=NULL) { |
| 812 | del_rt_list(rt_data->noprefix.rg[j].rtlw, free_f); |
| 813 | rt_data->noprefix.rg[j].rtlw = 0; |
| 814 | } |
| 815 | } |
| 816 | func_free(free_f, rt_data->noprefix.rg); |
| 817 | rt_data->noprefix.rg = 0; |
| 818 | } |
| 819 | /* del carriers */ |
| 820 | del_carriers_list(rt_data->carriers_tree); |
| 821 | rt_data->carriers_tree=0; |
| 822 | /* del top level */ |
| 823 | func_free(free_f, rt_data); |
| 824 | } |
| 825 | } |
no test coverage detected