mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 736697 - Part 5: add error handling. r=philikon
This commit is contained in:
parent
11e78203cc
commit
4a05cecf8c
@ -536,6 +536,51 @@ const PDU_PI_RESERVED = 0x78;
|
|||||||
const PDU_FCS_OK = 0x00;
|
const PDU_FCS_OK = 0x00;
|
||||||
const PDU_FCS_UNSPECIFIED = 0xFF;
|
const PDU_FCS_UNSPECIFIED = 0xFF;
|
||||||
|
|
||||||
|
// ST - Status
|
||||||
|
// Bit 7..0 = 000xxxxx, short message transaction completed
|
||||||
|
const PDU_ST_0_RECEIVED = 0x00;
|
||||||
|
const PDU_ST_0_FORWARDED_NO_CONFIRM = 0x01;
|
||||||
|
const PDU_ST_0_REPLACED_BY_SC = 0x02;
|
||||||
|
const PDU_ST_0_RESERVED_BEGIN = 0x03;
|
||||||
|
const PDU_ST_0_SC_SPECIFIC_BEGIN = 0x10;
|
||||||
|
const PDU_ST_0_SC_SPECIFIC_END = 0x1F;
|
||||||
|
// Bit 7..0 = 001xxxxx, temporary error, SC still trying to transfer SM
|
||||||
|
const PDU_ST_1_CONGESTION = 0x20;
|
||||||
|
const PDU_ST_1_SME_BUSY = 0x21;
|
||||||
|
const PDU_ST_1_SME_NO_RESPONSE = 0x22;
|
||||||
|
const PDU_ST_1_SERVICE_REJECTED = 0x23;
|
||||||
|
const PDU_ST_1_QOS_UNAVAILABLE = 0x24;
|
||||||
|
const PDU_ST_1_SME_ERROR = 0x25;
|
||||||
|
const PDU_ST_1_RESERVED_BEGIN = 0x26;
|
||||||
|
const PDU_ST_1_SC_SPECIFIC_BEGIN = 0x30;
|
||||||
|
const PDU_ST_1_SC_SPECIFIC_END = 0x3F;
|
||||||
|
// Bit 7..0 = 010xxxxx, permanent error, SC is not making any more transfer
|
||||||
|
// attempts
|
||||||
|
const PDU_ST_2_RPC_ERROR = 0x40;
|
||||||
|
const PDU_ST_2_DEST_INCOMPATIBLE = 0x41;
|
||||||
|
const PDU_ST_2_CONNECTION_REJECTED = 0x42;
|
||||||
|
const PDU_ST_2_NOT_OBTAINABLE = 0x43;
|
||||||
|
const PDU_ST_2_QOS_UNAVAILABLE = 0x44;
|
||||||
|
const PDU_ST_2_INTERWORKING_UNAVALIABLE = 0x45;
|
||||||
|
const PDU_ST_2_VALIDITY_EXPIRED = 0x46;
|
||||||
|
const PDU_ST_2_DELETED_BY_SME = 0x47;
|
||||||
|
const PDU_ST_2_DELETED_BY_SC = 0x48;
|
||||||
|
const PDU_ST_2_SM_MISSING = 0x49;
|
||||||
|
const PDU_ST_2_RESERVED_BEGIN = 0x4A;
|
||||||
|
const PDU_ST_2_SC_SPECIFIC_BEGIN = 0x50;
|
||||||
|
const PDU_ST_2_SC_SPECIFIC_END = 0x5F;
|
||||||
|
// Bit 7..0 = 011xxxxx, temporary error, SC is not making any more transfer
|
||||||
|
// attempts
|
||||||
|
const PDU_ST_3_CONGESTION = 0x60;
|
||||||
|
const PDU_ST_3_SME_BUSY = 0x61;
|
||||||
|
const PDU_ST_3_SME_NO_RESPONSE = 0x62;
|
||||||
|
const PDU_ST_3_SERVICE_REJECTED = 0x63;
|
||||||
|
const PDU_ST_3_QOS_UNAVAILABLE = 0x64;
|
||||||
|
const PDU_ST_3_SME_ERROR = 0x65;
|
||||||
|
const PDU_ST_3_RESERVED_BEGIN = 0x66;
|
||||||
|
const PDU_ST_3_SC_SPECIFIC_BEGIN = 0x70;
|
||||||
|
const PDU_ST_3_SC_SPECIFIC_END = 0x7F;
|
||||||
|
|
||||||
// User Data max length in septets
|
// User Data max length in septets
|
||||||
const PDU_MAX_USER_DATA_7BIT = 160;
|
const PDU_MAX_USER_DATA_7BIT = 160;
|
||||||
// User Data max length in octets
|
// User Data max length in octets
|
||||||
|
@ -1555,8 +1555,35 @@ let RIL = {
|
|||||||
return PDU_FCS_OK;
|
return PDU_FCS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let status = message.status;
|
||||||
|
|
||||||
|
// 3GPP TS 23.040 9.2.3.15 `The MS shall interpret any reserved values as
|
||||||
|
// "Service Rejected"(01100011) but shall store them exactly as received.`
|
||||||
|
if ((status >= 0x80)
|
||||||
|
|| ((status >= PDU_ST_0_RESERVED_BEGIN)
|
||||||
|
&& (status < PDU_ST_0_SC_SPECIFIC_BEGIN))
|
||||||
|
|| ((status >= PDU_ST_1_RESERVED_BEGIN)
|
||||||
|
&& (status < PDU_ST_1_SC_SPECIFIC_BEGIN))
|
||||||
|
|| ((status >= PDU_ST_2_RESERVED_BEGIN)
|
||||||
|
&& (status < PDU_ST_2_SC_SPECIFIC_BEGIN))
|
||||||
|
|| ((status >= PDU_ST_3_RESERVED_BEGIN)
|
||||||
|
&& (status < PDU_ST_3_SC_SPECIFIC_BEGIN))
|
||||||
|
) {
|
||||||
|
status = PDU_ST_3_SERVICE_REJECTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pending. Waiting for next status report.
|
||||||
|
if ((status >>> 5) == 0x01) {
|
||||||
|
return PDU_FCS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
delete this._pendingSentSmsMap[message.messageRef];
|
delete this._pendingSentSmsMap[message.messageRef];
|
||||||
|
|
||||||
|
if ((status >>> 5) != 0x00) {
|
||||||
|
// TODO: bug 727319 - Notify SMS send failures
|
||||||
|
return PDU_FCS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
if ((options.segmentMaxSeq > 1)
|
if ((options.segmentMaxSeq > 1)
|
||||||
&& (options.segmentSeq < options.segmentMaxSeq)) {
|
&& (options.segmentSeq < options.segmentMaxSeq)) {
|
||||||
// Not last segment. Send next segment here.
|
// Not last segment. Send next segment here.
|
||||||
|
Loading…
Reference in New Issue
Block a user