~indicator-network-developers/connman/trunk

« back to all changes in this revision

Viewing changes to src/rtnl.c

  • Committer: Kalle Valo
  • Date: 2010-06-03 12:36:13 UTC
  • Revision ID: kalle.valo@canonical.com-20100603123613-dz460zkyolp1obv3
Set default interface if no gateway found

Currently connman does not support the situation with point-to-point links
when there is no default gateway, instead the interface is the default
route.

Unfortunately there's (at least) one bug:

1. Connect to 3G with ppp
2. Connect to wifi
3. Disconnect 3G
4. Default gateway for wifi is not set as it should be

This patch was sent upstream but it's still under discussion what's the
best aproach to fix this.

Show diffs side-by-side

added added

removed removed

Lines of Context:
485
485
 
486
486
        __connman_ipconfig_newroute(index, scope, dststr, gatewaystr);
487
487
 
488
 
        if (scope != RT_SCOPE_UNIVERSE || dst.s_addr != INADDR_ANY)
 
488
        /* skip host specific routes */
 
489
        if (scope != RT_SCOPE_UNIVERSE &&
 
490
                        !(scope == RT_SCOPE_LINK && dst.s_addr == INADDR_ANY))
 
491
                return;
 
492
 
 
493
        if (dst.s_addr != INADDR_ANY)
489
494
                return;
490
495
 
491
496
        for (list = rtnl_list; list; list = list->next) {
514
519
 
515
520
        __connman_ipconfig_delroute(index, scope, dststr, gatewaystr);
516
521
 
517
 
        if (scope != RT_SCOPE_UNIVERSE || dst.s_addr != INADDR_ANY)
 
522
        /* skip host specific routes */
 
523
        if (scope != RT_SCOPE_UNIVERSE &&
 
524
                        !(scope == RT_SCOPE_LINK && dst.s_addr == INADDR_ANY))
 
525
                return;
 
526
 
 
527
        if (dst.s_addr != INADDR_ANY)
518
528
                return;
519
529
 
520
530
        for (list = rtnl_list; list; list = list->next) {