call-forwarding: SS query is made with given cls
authorPhilippe Nunes <philippe.nunes@linux.intel.com>
Wed, 5 Sep 2012 16:56:20 +0000 (18:56 +0200)
committerDenis Kenzior <denkenz@gmail.com>
Wed, 5 Sep 2012 20:00:14 +0000 (15:00 -0500)
GCF test cases 31.2.1.6.1/2 are asking to make a query according a
specific class. The default class is applied in the query form when
no class is specified in the SS code.

src/call-forwarding.c

index 91e34c6..2746771 100644 (file)
@@ -1012,7 +1012,15 @@ static void ss_set_query_cf_callback(const struct ofono_error *error, int total,
 
 static void ss_set_query_next_cf_cond(struct ofono_call_forwarding *cf)
 {
-       cf->driver->query(cf, cf->query_next, BEARER_CLASS_DEFAULT,
+       int cls;
+
+       cls = (cf->ss_req->ss_type == SS_CONTROL_TYPE_QUERY) ?
+                       cf->ss_req->cls : BEARER_CLASS_DEFAULT;
+
+       if (cls == BEARER_CLASS_SS_DEFAULT)
+                       cls = BEARER_CLASS_DEFAULT;
+
+       cf->driver->query(cf, cf->query_next, cls,
                        ss_set_query_cf_callback, cf);
 }