~shakaran/ubuntu/quantal/connman/bug-pattern-update

« back to all changes in this revision

Viewing changes to src/inet.c

  • Committer: Bazaar Package Importer
  • Author(s): Mathieu Trudel
  • Date: 2010-02-12 10:08:03 UTC
  • mfrom: (1.1.8 upstream) (0.1.5 sid)
  • Revision ID: james.westby@ubuntu.com-20100212100803-s8iaj8g1dmgwm2uz
Tags: 0.48+dfsg-2
* Ubuntu/Debian sync upload
* Re-add missing changes from 0.45+dfsg that made it only in Ubuntu:
  - ship development parts in a connman-dev package (Closes: 546616)
    - add debian/connman-dev.install
    - update debian/control
* Update long descriptions for connman and connman-dev
  - update debian/control
* Add missing Depends on libglib2.0-dev, libdbus-1-dev for connman-dev
  - update debian/control
* Don't run bootstrap twice during build.
  - update debian/rules
* Remove old configure option: enable-ppp, with-pppd, enable-novatel,
  enable-huawei and enable-modemmgr are no longer recognized.
  - update debian/rules

Show diffs side-by-side

added added

removed removed

Lines of Context:
463
463
                addr = index2addr(index);
464
464
                break;
465
465
        case CONNMAN_DEVICE_TYPE_BLUETOOTH:
 
466
        case CONNMAN_DEVICE_TYPE_CELLULAR:
466
467
        case CONNMAN_DEVICE_TYPE_GPS:
467
468
        case CONNMAN_DEVICE_TYPE_HSO:
468
 
        case CONNMAN_DEVICE_TYPE_NOZOMI:
469
 
        case CONNMAN_DEVICE_TYPE_HUAWEI:
470
 
        case CONNMAN_DEVICE_TYPE_NOVATEL:
471
469
        case CONNMAN_DEVICE_TYPE_VENDOR:
472
470
                name = strdup(devname);
473
471
                break;
485
483
        switch (type) {
486
484
        case CONNMAN_DEVICE_TYPE_UNKNOWN:
487
485
        case CONNMAN_DEVICE_TYPE_VENDOR:
488
 
        case CONNMAN_DEVICE_TYPE_NOZOMI:
489
 
        case CONNMAN_DEVICE_TYPE_HUAWEI:
490
 
        case CONNMAN_DEVICE_TYPE_NOVATEL:
491
486
        case CONNMAN_DEVICE_TYPE_GPS:
492
487
                mode = CONNMAN_DEVICE_MODE_UNKNOWN;
493
488
                break;
494
489
        case CONNMAN_DEVICE_TYPE_ETHERNET:
495
 
                mode = CONNMAN_DEVICE_MODE_TRANSPORT_IP;
 
490
                mode = CONNMAN_DEVICE_MODE_NETWORK_SINGLE;
496
491
                ident = index2ident(index, NULL);
497
492
                break;
498
493
        case CONNMAN_DEVICE_TYPE_WIFI:
503
498
        case CONNMAN_DEVICE_TYPE_BLUETOOTH:
504
499
                mode = CONNMAN_DEVICE_MODE_NETWORK_MULTIPLE;
505
500
                break;
 
501
        case CONNMAN_DEVICE_TYPE_CELLULAR:
506
502
        case CONNMAN_DEVICE_TYPE_MBM:
507
503
        case CONNMAN_DEVICE_TYPE_HSO:
508
504
                mode = CONNMAN_DEVICE_MODE_NETWORK_SINGLE;
624
620
        return 0;
625
621
}
626
622
 
627
 
int connman_inet_set_gateway(int index, struct in_addr gateway)
 
623
int connman_inet_set_gateway_interface(int index)
 
624
{
 
625
        struct ifreq ifr;
 
626
        struct rtentry rt;
 
627
        struct sockaddr_in addr;
 
628
        int sk, err;
 
629
 
 
630
        DBG("");
 
631
 
 
632
        sk = socket(PF_INET, SOCK_DGRAM, 0);
 
633
        if (sk < 0)
 
634
                return -1;
 
635
 
 
636
        memset(&ifr, 0, sizeof(ifr));
 
637
        ifr.ifr_ifindex = index;
 
638
 
 
639
        if (ioctl(sk, SIOCGIFNAME, &ifr) < 0) {
 
640
                close(sk);
 
641
                return -1;
 
642
        }
 
643
 
 
644
        DBG("ifname %s", ifr.ifr_name);
 
645
 
 
646
        memset(&rt, 0, sizeof(rt));
 
647
 
 
648
        rt.rt_dev = ifr.ifr_name;
 
649
 
 
650
        rt.rt_flags = RTF_UP;
 
651
 
 
652
        memset(&addr, 0, sizeof(addr));
 
653
        addr.sin_family = AF_INET;
 
654
        addr.sin_addr.s_addr = INADDR_ANY;
 
655
 
 
656
        memcpy(&rt.rt_genmask, &addr, sizeof(rt.rt_genmask));
 
657
 
 
658
        memcpy(&rt.rt_dst, &addr, sizeof(rt.rt_dst));
 
659
 
 
660
        memcpy(&rt.rt_gateway, &addr, sizeof(rt.rt_gateway));
 
661
 
 
662
        err = ioctl(sk, SIOCADDRT, &rt);
 
663
        if (err < 0)
 
664
                connman_error("Setting interface as default route failed (%s)",
 
665
                                                        strerror(errno));
 
666
        close(sk);
 
667
 
 
668
        return err;
 
669
}
 
670
 
 
671
int connman_inet_set_gateway_address(int index, const char *gateway)
628
672
{
629
673
        struct ifreq ifr;
630
674
        struct rtentry rt;
650
694
 
651
695
        memset(&addr, 0, sizeof(addr));
652
696
        addr.sin_family = AF_INET;
653
 
        addr.sin_addr = gateway;
 
697
        addr.sin_addr.s_addr = inet_addr(gateway);
654
698
        memcpy(&rt.rt_dst, &addr, sizeof(rt.rt_dst));
655
699
 
656
700
        memset(&addr, 0, sizeof(addr));
680
724
 
681
725
        memset(&addr, 0, sizeof(addr));
682
726
        addr.sin_family = AF_INET;
683
 
        addr.sin_addr = gateway;
 
727
        addr.sin_addr.s_addr = inet_addr(gateway);
684
728
        memcpy(&rt.rt_gateway, &addr, sizeof(rt.rt_gateway));
685
729
 
686
730
        memset(&addr, 0, sizeof(addr));