diff options
| author | The Android Open Source Project <initial-contribution@android.com> | 2010-06-21 11:50:42 -0700 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2010-06-21 11:50:42 -0700 |
| commit | 67e6fcd19533f54ca37cbe72425f55a40a7f0333 (patch) | |
| tree | 51bd71957a0510d5b24d1f1e118e3b342214c8c2 /netcfg/netcfg.c | |
| parent | f1792b3d125a6adefa6941d20b3f26833570ab65 (diff) | |
| parent | 1adbb607d2b6a74b7871a8cecd7c5690c8c5cf6d (diff) | |
| download | system_core-67e6fcd19533f54ca37cbe72425f55a40a7f0333.tar.gz system_core-67e6fcd19533f54ca37cbe72425f55a40a7f0333.tar.bz2 system_core-67e6fcd19533f54ca37cbe72425f55a40a7f0333.zip | |
merge from froyo-plus-aosp
Change-Id: Ie231effb4d9dfd63aa98ec08b269c31ce32aa1c0
Diffstat (limited to 'netcfg/netcfg.c')
| -rw-r--r-- | netcfg/netcfg.c | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/netcfg/netcfg.c b/netcfg/netcfg.c index fc9cf48b..9cd883a8 100644 --- a/netcfg/netcfg.c +++ b/netcfg/netcfg.c @@ -19,17 +19,13 @@ #include <stdlib.h> #include <errno.h> #include <dirent.h> +#include <netinet/ether.h> + +#include <netutils/ifc.h> +#include <netutils/dhcp.h> static int verbose = 0; -int ifc_init(); -void ifc_close(); -int ifc_up(char *iname); -int ifc_down(char *iname); -int ifc_remove_host_routes(char *iname); -int ifc_remove_default_route(char *iname); -int ifc_get_info(const char *name, unsigned *addr, unsigned *mask, unsigned *flags); -int do_dhcp(char *iname); void die(const char *reason) { @@ -37,16 +33,12 @@ void die(const char *reason) exit(1); } -const char *ipaddr(unsigned addr) +const char *ipaddr(in_addr_t addr) { - static char buf[32]; - - sprintf(buf,"%d.%d.%d.%d", - addr & 255, - ((addr >> 8) & 255), - ((addr >> 16) & 255), - (addr >> 24)); - return buf; + struct in_addr in_addr; + + in_addr.s_addr = addr; + return inet_ntoa(in_addr); } void usage(void) @@ -86,6 +78,15 @@ int dump_interfaces(void) return 0; } +int set_hwaddr(const char *name, const char *asc) { + struct ether_addr *addr = ether_aton(asc); + if (!addr) { + printf("Failed to parse '%s'\n", asc); + return -1; + } + return ifc_set_hwaddr(name, addr->ether_addr_octet); +} + struct { const char *name; @@ -97,6 +98,7 @@ struct { "down", 1, ifc_down }, { "flhosts", 1, ifc_remove_host_routes }, { "deldefault", 1, ifc_remove_default_route }, + { "hwaddr", 2, set_hwaddr }, { 0, 0, 0 }, }; |
