aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorService qcabuildsw <qcabuildsw@localhost>2016-06-24 02:35:30 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-06-24 02:35:30 -0700
commitd82caa8696c54df8e422f9b79dda7c004b9a7282 (patch)
tree93beababf536c52e955aeb1700d25e989420a277
parent120a416c14790aad3db9e265f1fafded64c42acf (diff)
parenta32afeb7d0eb32acdea60a7312ce856b8695c757 (diff)
downloadandroid_external_wpa_supplicant_8-d82caa8696c54df8e422f9b79dda7c004b9a7282.tar.gz
android_external_wpa_supplicant_8-d82caa8696c54df8e422f9b79dda7c004b9a7282.tar.bz2
android_external_wpa_supplicant_8-d82caa8696c54df8e422f9b79dda7c004b9a7282.zip
Merge "eap_proxy: postpone qmi init until demonize" into wlan-service.lnx.1.0-dev.1.0
-rw-r--r--src/eap_peer/eap_proxy_qmi.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/eap_peer/eap_proxy_qmi.c b/src/eap_peer/eap_proxy_qmi.c
index 49ecc4df..6198baa0 100644
--- a/src/eap_peer/eap_proxy_qmi.c
+++ b/src/eap_peer/eap_proxy_qmi.c
@@ -716,6 +716,20 @@ int eap_auth_end_eap_session(qmi_client_type qmi_auth_svc_client_ptr)
return 0;
}
+static void eap_proxy_schedule_thread(void *eloop_ctx, void *timeout_ctx)
+{
+ struct eap_proxy_sm *eap_proxy = eloop_ctx;
+ pthread_attr_t attr;
+ int ret = -1;
+
+ pthread_attr_init(&attr);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+ ret = pthread_create(&eap_proxy->thread_id, &attr, eap_proxy_post_init, eap_proxy);
+ if(ret < 0)
+ wpa_printf(MSG_ERROR, "eap_proxy: starting thread is failed %d\n", ret);
+}
+
+
struct eap_proxy_sm *
eap_proxy_init(void *eapol_ctx, struct eapol_callbacks *eapol_cb,
void *msg_ctx)
@@ -724,8 +738,6 @@ eap_proxy_init(void *eapol_ctx, struct eapol_callbacks *eapol_cb,
int qmiRetCode;
struct eap_proxy_sm *eap_proxy;
qmi_idl_service_object_type qmi_client_service_obj;
- pthread_attr_t attr;
- int ret = -1;
eap_proxy = os_malloc(sizeof(struct eap_proxy_sm));
if (NULL == eap_proxy) {
@@ -751,11 +763,7 @@ eap_proxy_init(void *eapol_ctx, struct eapol_callbacks *eapol_cb,
* parent process that created the qmi client context.
*/
- pthread_attr_init(&attr);
- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
- ret = pthread_create(&eap_proxy->thread_id, &attr, eap_proxy_post_init, eap_proxy);
- if(ret < 0)
- wpa_printf(MSG_ERROR, "eap_proxy: starting thread is failed %d\n", ret);
+ eloop_register_timeout(0, 0, eap_proxy_schedule_thread, eap_proxy, NULL);
return eap_proxy;
}