Preserve clip_validity
authorDenis Kenzior <denkenz@gmail.com>
Thu, 25 Jun 2009 16:43:45 +0000 (11:43 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Thu, 25 Jun 2009 16:45:29 +0000 (11:45 -0500)
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

drivers/atmodem/voicecall.c

index 3a2291b..dd837e7 100644 (file)
@@ -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);