diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2010-06-21 13:15:01 -0700 |
---|---|---|
committer | Jean-Baptiste Queru <jbq@google.com> | 2010-06-21 13:15:01 -0700 |
commit | 445591dded5753cf72dcf329a56af732776de97d (patch) | |
tree | c527b6c7600587cf56b732530c596a3289620161 /wifi/wifi.c | |
parent | b33a811e81c126893dfadafca1fcbe5ae8564551 (diff) | |
download | hardware_libhardware_legacy-445591dded5753cf72dcf329a56af732776de97d.zip hardware_libhardware_legacy-445591dded5753cf72dcf329a56af732776de97d.tar.gz hardware_libhardware_legacy-445591dded5753cf72dcf329a56af732776de97d.tar.bz2 |
Undo previous merge
Change-Id: I74fd5ae2634b0c7909b7ab332d174f98a9c8aee5
Diffstat (limited to 'wifi/wifi.c')
-rw-r--r-- | wifi/wifi.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/wifi/wifi.c b/wifi/wifi.c index 5fdf99b..3f8708d 100644 --- a/wifi/wifi.c +++ b/wifi/wifi.c @@ -36,6 +36,11 @@ static struct wpa_ctrl *ctrl_conn; static struct wpa_ctrl *monitor_conn; +extern int do_dhcp(); +extern int ifc_init(); +extern void ifc_close(); +extern char *dhcp_lasterror(); +extern void get_dhcp_info(); extern int init_module(void *, unsigned long, const char *); extern int delete_module(const char *, unsigned int); @@ -108,6 +113,28 @@ static int rmmod(const char *modname) return ret; } +int do_dhcp_request(int *ipaddr, int *gateway, int *mask, + int *dns1, int *dns2, int *server, int *lease) { + /* For test driver, always report success */ + if (strcmp(iface, WIFI_TEST_INTERFACE) == 0) + return 0; + + if (ifc_init() < 0) + return -1; + + if (do_dhcp(iface) < 0) { + ifc_close(); + return -1; + } + ifc_close(); + get_dhcp_info(ipaddr, gateway, mask, dns1, dns2, server, lease); + return 0; +} + +const char *get_dhcp_error_string() { + return dhcp_lasterror(); +} + static int check_driver_loaded() { char driver_status[PROPERTY_VALUE_MAX]; FILE *proc; |