Always report an error upon +CME ERROR

This commit is contained in:
Pierre Pronchery 2010-05-09 01:08:03 +00:00
parent 983eb1c371
commit 1c9304df2b

View File

@ -1005,12 +1005,14 @@ static int _gsm_trigger_cme_error(GSM * gsm, char const * result,
int code; int code;
char * p; char * p;
size_t i; size_t i;
GSMError error = GSM_ERROR_UNKNOWN; GSMError type = GSM_ERROR_UNKNOWN;
char const * error;
GSMCommand * gsmc; GSMCommand * gsmc;
#ifdef DEBUG #ifdef DEBUG
fprintf(stderr, "DEBUG: %s(\"%s\")\n", __func__, result); fprintf(stderr, "DEBUG: %s(\"%s\")\n", __func__, result);
#endif #endif
error = _("Unknown error");
if(answered != NULL) if(answered != NULL)
*answered = TRUE; *answered = TRUE;
code = strtol(result, &p, 10); code = strtol(result, &p, 10);
@ -1019,12 +1021,11 @@ static int _gsm_trigger_cme_error(GSM * gsm, char const * result,
for(i = 0; _gsm_cme_errors[i].error != NULL; i++) for(i = 0; _gsm_cme_errors[i].error != NULL; i++)
if(_gsm_cme_errors[i].code == code) if(_gsm_cme_errors[i].code == code)
break; break;
if(_gsm_cme_errors[i].error == NULL) if(_gsm_cme_errors[i].error != NULL)
return 1; /* XXX report an error anyway? */ error = _(_gsm_cme_errors[i].error);
if(gsm->queue != NULL && (gsmc = gsm->queue->data) != NULL) if(gsm->queue != NULL && (gsmc = gsm->queue->data) != NULL)
error = gsm_command_get_error(gsmc); type = gsm_command_get_error(gsmc);
return gsm_event(gsm, GSM_EVENT_TYPE_ERROR, error, return gsm_event(gsm, GSM_EVENT_TYPE_ERROR, type, error);
_(_gsm_cme_errors[i].error));
} }