summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-06-25 11:43:45 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-06-25 11:45:29 -0500
commit74bbdea02df251d18c9ea2cf68b0644080eee064 (patch)
treee75dd08a519228beddf6747fb7218ca016cdfa96
parent4357f33d2593695f78ae365f5c1ae5e70157b277 (diff)
downloadofono-74bbdea02df251d18c9ea2cf68b0644080eee064.tar.bz2
Preserve clip_validity
CLCC does not report clip_validity. So if clip_validity of witheld has been reported in CLIP, but we're still somehow polling CLCC, which happens if CRING is not supported, and RING is used instead, this fact can be lost. Make sure we preserve clip_validity if possible
-rw-r--r--drivers/atmodem/voicecall.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/atmodem/voicecall.c b/drivers/atmodem/voicecall.c
index 3a2291b5..dd837e72 100644
--- a/drivers/atmodem/voicecall.c
+++ b/drivers/atmodem/voicecall.c
@@ -286,6 +286,15 @@ static void clcc_poll_cb(gboolean ok, GAtResult *result, gpointer user_data)
n = n->next;
} else {
+ /* Always use the clip_validity from old call
+ * the only place this is truly told to us is
+ * in the CLIP notify, the rest are fudged
+ * anyway. Useful when RING, CLIP is used,
+ * and we're forced to use CLCC and clip_validity
+ * is 1
+ */
+ nc->clip_validity = oc->clip_validity;
+
if (memcmp(nc, oc, sizeof(struct ofono_call)) && !nc->type)
ofono_voicecall_notify(modem, nc);