int i;
gcd = g_new0(struct gprs_context_data, 1);
- gcd->chat = chat;
+ gcd->chat = g_at_chat_clone(chat);
g_at_chat_register(gcd->chat, "+CGEV:", cgev_notify, FALSE, gc, NULL);
g_caif_devices = NULL;
ofono_gprs_context_set_data(gc, NULL);
+
+ g_at_chat_unref(gcd->chat);
g_free(gcd);
}
struct voicecall_data *vd;
vd = g_new0(struct voicecall_data, 1);
- vd->chat = chat;
+ vd->chat = g_at_chat_clone(chat);
ofono_voicecall_set_data(vc, vd);
- g_at_chat_send(chat, "AT*ECAM=1", NULL, NULL, NULL, NULL);
- g_at_chat_register(chat, "*ECAV:", ecav_notify, FALSE, vc, NULL);
+ g_at_chat_send(vd->chat, "AT*ECAM=1", NULL, NULL, NULL, NULL);
+ g_at_chat_register(vd->chat, "*ECAV:", ecav_notify, FALSE, vc, NULL);
ofono_voicecall_register(vc);
return 0;
ofono_voicecall_set_data(vc, NULL);
+ g_at_chat_unref(vd->chat);
g_free(vd);
}