Changeset 4574

Show
Ignore:
Timestamp:
11/05/08 08:38:55 (2 months ago)
Author:
martin
Message:

do not install route if interface lookup failed

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c

    r4562 r4574  
    15071507            route->prefixlen = policy->sel.prefixlen_s; 
    15081508             
    1509             switch (charon->kernel_interface->add_route(charon->kernel_interface, 
    1510                     route->dst_net, route->prefixlen, route->gateway, 
    1511                     route->src_ip, route->if_name)) 
     1509            if (route->if_name) 
     1510            {            
     1511                switch (charon->kernel_interface->add_route( 
     1512                                    charon->kernel_interface, route->dst_net, 
     1513                                    route->prefixlen, route->gateway, 
     1514                                    route->src_ip, route->if_name)) 
     1515                { 
     1516                    default: 
     1517                        DBG1(DBG_KNL, "unable to install source route for %H", 
     1518                             route->src_ip); 
     1519                        /* FALL */ 
     1520                    case ALREADY_DONE: 
     1521                        /* route exists, do not uninstall */ 
     1522                        route_entry_destroy(route); 
     1523                        break; 
     1524                    case SUCCESS: 
     1525                        /* cache the installed route */ 
     1526                        policy->route = route; 
     1527                        break; 
     1528                } 
     1529            } 
     1530            else 
    15121531            { 
    1513                 default: 
    1514                     DBG1(DBG_KNL, "unable to install source route for %H", 
    1515                          route->src_ip); 
    1516                     /* FALL */ 
    1517                 case ALREADY_DONE: 
    1518                     /* route exists, do not uninstall */ 
    1519                     route_entry_destroy(route); 
    1520                     break; 
    1521                 case SUCCESS: 
    1522                     /* cache the installed route */ 
    1523                     policy->route = route; 
    1524                     break; 
     1532                route_entry_destroy(route); 
    15251533            } 
    15261534        } 
     
    15301538        } 
    15311539    } 
    1532  
    15331540    return SUCCESS; 
    15341541}