summaryrefslogtreecommitdiffstats
path: root/wifi/wifi.c
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2010-06-21 13:15:01 -0700
committerJean-Baptiste Queru <jbq@google.com>2010-06-21 13:15:01 -0700
commit445591dded5753cf72dcf329a56af732776de97d (patch)
treec527b6c7600587cf56b732530c596a3289620161 /wifi/wifi.c
parentb33a811e81c126893dfadafca1fcbe5ae8564551 (diff)
downloadhardware_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.c27
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;