Change in at_cds_notify for status report

This commit is contained in:
Pasi Miettinen 2010-06-04 14:17:32 +03:00 committed by Denis Kenzior
parent 5dab6f4913
commit 6220c01f4a
1 changed files with 15 additions and 4 deletions

View File

@ -283,16 +283,27 @@ static void at_cds_notify(GAtResult *result, gpointer user_data)
{
struct ofono_sms *sms = user_data;
struct sms_data *data = ofono_sms_get_data(sms);
int pdulen;
const char *pdu;
long pdu_len;
int tpdu_len;
const char *hexpdu;
unsigned char pdu[176];
char buf[256];
if (!at_parse_pdu_common(result, "+CDS:", &pdu, &pdulen)) {
if (!at_parse_pdu_common(result, "+CDS:", &hexpdu, &tpdu_len)) {
ofono_error("Unable to parse CDS notification");
return;
}
DBG("Got new Status-Report PDU via CDS: %s, %d", pdu, pdulen);
if (strlen(hexpdu) > sizeof(pdu) * 2) {
ofono_error("Bad PDU length in CDS notification");
return;
}
DBG("Got new Status-Report PDU via CDS: %s, %d", hexpdu, tpdu_len);
/*Decode pdu and notify about new SMS status report*/
decode_hex_own_buf(hexpdu, -1, &pdu_len, 0, pdu);
ofono_sms_status_notify(sms, pdu, pdu_len, tpdu_len);
/* We must acknowledge the PDU using CNMA */
if (data->cnma_ack_pdu)