From 0c8aed38d7528c66c3d5ce2b7bacd2c449ac860e Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 18 Jun 2009 16:39:55 -0500 Subject: Fix logic flow in SS parser --- src/ussd.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/ussd.c b/src/ussd.c index d2251c83..0691986d 100644 --- a/src/ussd.c +++ b/src/ussd.c @@ -308,6 +308,18 @@ static gboolean recognized_control_string(struct ofono_modem *modem, ofono_debug("Got parse result: %d, %s, %s, %s, %s, %s, %s", type, sc, sia, sib, sic, sid, dn); + /* A password change string needs to be treated separately + * because it uses a fourth SI and is thus not a valid + * control string. */ + if (recognized_passwd_change_string(modem, type, sc, + sia, sib, sic, sid, dn, msg)) { + ret = TRUE; + goto out; + } + + if (*sid != '\0'); + goto out; + while ((l = g_slist_find_custom(l, sc, ss_control_entry_find_by_service)) != NULL) { struct ss_control_entry *entry = l->data; @@ -320,12 +332,6 @@ static gboolean recognized_control_string(struct ofono_modem *modem, l = l->next; } - /* A password change string needs to be treated separately - * because it uses a fourth SI and is thus not a valid - * control string. */ - if (recognized_passwd_change_string(modem, type, sc, - sia, sib, sic, sid, dn, msg)) - goto out; } /* TODO: Handle all strings that control voice calls */ -- cgit v1.2.3