- optimizing detection process on CME/CMS Errors
(avoid to check if CMS when CME was detected.)
- renaming param value code -> errcode to make it more clean

Vincent.
--- /gateway-cvs/gw/smsc/smsc_at.c      2009-06-22 10:26:10.000000000 +0200
+++ /gateway/gw/smsc/smsc_at.c  2009-06-26 11:40:58.000000000 +0200
@@ -786,15 +786,20 @@
                 privdata->pin_ready = 1;
                 continue;
             }
-            if (octstr_search(line, octstr_imm("+CMS ERROR"), 0) != -1 ||
-                octstr_search(line, octstr_imm("+CME ERROR"), 0) != -1) {
+            if (octstr_search(line, octstr_imm("+CMS ERROR"), 0) != -1) {
                 int errcode;
-                error(0, "AT2[%s]: CMx ERROR: %s", 
octstr_get_cstr(privdata->name), 
+                error(0, "AT2[%s]: +CMS ERROR: %s", 
octstr_get_cstr(privdata->name), 
                       octstr_get_cstr(line));
                 if (sscanf(octstr_get_cstr(line), "+CMS ERROR: %d", &errcode) 
== 1)
                     error(0, "AT2[%s]: +CMS ERROR: %s (%d)", 
octstr_get_cstr(privdata->name), 
                           at2_error_string(errcode), errcode);
-                else if (sscanf(octstr_get_cstr(line), "+CME ERROR: %d", 
&errcode) == 1)   
+                ret = 1;
+                goto end;
+            } else if (octstr_search(line, octstr_imm("+CME ERROR"), 0) != -1) 
{
+                int errcode;
+                error(0, "AT2[%s]: +CME ERROR: %s", 
octstr_get_cstr(privdata->name),
+                      octstr_get_cstr(line));
+                if (sscanf(octstr_get_cstr(line), "+CME ERROR: %d", &errcode) 
== 1)
                     error(0, "AT2[%s]: +CME ERROR: %s (%d)", 
octstr_get_cstr(privdata->name),
                           at2_error_string(errcode), errcode);
                 ret = 1;
@@ -2897,7 +2902,7 @@
 }
 
 
-static const char *at2_error_string(int code)
+static const char *at2_error_string(int errcode)
 {
     /*
      * +CMS ERRORS
@@ -2912,7 +2917,7 @@
      * GPRS-related errors - (GSM 04.08 cause codes)
      * 
      */
-    switch (code) {
+    switch (errcode) {
     case 0:
         /*
          * Default the code to 0 then when you extract the value from the
@@ -2954,7 +2959,7 @@
          * This cause indicates that the outgoing call barred service applies 
to
          * the short message service for the called destination.
          */
-        return "Call barred or SIM not inserted or Card inserted is not a SIM";
+        return "Call barred (+CMS) or SIM not inserted or Card inserted is not 
a SIM (+CME)";
     case 11:
         return "SIM PIN required";
     case 12:

Reply via email to