wpa_supplicant_8_lib: register wpa_msg callback for oem libraries

This patch registers the wpa_msg_handler function to the oem shared
libraries. With this oem libraries can print on wpa_cli console.

Change-Id: Ie5869e4634dcf7f6e436e7f78249370506d5058f
CRs-Fixed: 2854512
diff --git a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c
index 0e9bf91..95864e7 100644
--- a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c
+++ b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c
@@ -533,7 +533,7 @@
 					   u8 *data, size_t len)
 {
 	int ret = -1;
-	static wpa_driver_oem_cb_table_t oem_cb_table = {NULL, NULL};
+	static wpa_driver_oem_cb_table_t oem_cb_table = {NULL, NULL, NULL};
 	if (wpa_driver_oem_initialize(&oem_cb_table) !=
 		WPA_DRIVER_OEM_STATUS_FAILURE) {
 		if(oem_cb_table.wpa_driver_nl80211_driver_oem_event) {
@@ -1304,7 +1304,7 @@
 	struct ifreq ifr;
 	android_wifi_priv_cmd priv_cmd;
 	int ret = 0, status = 0;
-	static wpa_driver_oem_cb_table_t oem_cb_table = {NULL, NULL};
+	static wpa_driver_oem_cb_table_t oem_cb_table = {NULL, NULL, NULL};
 
 	if (bss) {
 		drv = bss->drv;
diff --git a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_extn.c b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_extn.c
index 641e11b..18baa0d 100644
--- a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_extn.c
+++ b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_extn.c
@@ -33,6 +33,9 @@
 #include "driver_cmd_nl80211_extn.h"
 #include "common.h"
 
+void wpa_msg_handler(struct wpa_driver_nl80211_data *drv, char *msg) {
+	wpa_msg(drv->ctx, MSG_INFO, "%s", msg);
+}
 
 int wpa_driver_oem_initialize(wpa_driver_oem_cb_table_t *oem_cb_table)
 {
@@ -72,6 +75,11 @@
                             oem_cb_table_local->wpa_driver_driver_cmd_oem_cb;
 	oem_cb_table->wpa_driver_nl80211_driver_oem_event =
                             oem_cb_table_local->wpa_driver_nl80211_driver_oem_event;
+	oem_cb_table->wpa_driver_driver_wpa_msg_oem_cb =
+                            oem_cb_table_local->wpa_driver_driver_wpa_msg_oem_cb;
+	if(oem_cb_table->wpa_driver_driver_wpa_msg_oem_cb) {
+		oem_cb_table->wpa_driver_driver_wpa_msg_oem_cb(wpa_msg_handler);
+	}
 	wpa_printf(MSG_INFO, "%s: OEM lib initialized\n", __func__);
 
 	return WPA_DRIVER_OEM_STATUS_SUCCESS;
diff --git a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_extn.h b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_extn.h
index 99c3d8a..4ee9918 100755
--- a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_extn.h
+++ b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211_extn.h
@@ -51,6 +51,8 @@
 			char *cmd, char *buf, size_t buf_len, int *status);
     int (*wpa_driver_nl80211_driver_oem_event)(struct wpa_driver_nl80211_data *drv,
                                 u32 vendor_id, u32 subcmd, u8 *data, size_t len);
+    void (*wpa_driver_driver_wpa_msg_oem_cb)(void(*)(struct wpa_driver_nl80211_data *drv,
+								  char *msg));
 } wpa_driver_oem_cb_table_t;
 
 typedef wpa_driver_oem_cb_table_t* (wpa_driver_oem_get_cb_table_t)();