Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4330d579 authored by Emilio López's avatar Emilio López
Browse files

RIL: skip broken RIL_UNSOL_DATA_CALL_LIST_CHANGED

Some old RILs might produce events with type 'IP' containing the remote IP
address, normally 10.64.64.64. These events mismatch with the previously
generated ones and cause the system to take the connection down, even if
it was up and working correctly.

Add skipbrokendatacall to ro.telephony.ril.v3 to enable the workaround.

Change-Id: I3bc3c84735201a797011aafba2718638a826f31d
parent 9947d5db
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ public class DataCallState {
           .append(" retry=").append(suggestedRetryTime)
           .append(" cid=").append(cid)
           .append(" active=").append(active)
           .append(" type=").append(type)
           .append(" type='").append(type)
           .append("' ifname='").append(ifname);
        sb.append("' addresses=[");
        for (String addr : addresses) {
+4 −0
Original line number Diff line number Diff line
@@ -2545,6 +2545,10 @@ public class RIL extends BaseCommands implements CommandsInterface {
            case RIL_UNSOL_DATA_CALL_LIST_CHANGED:
                if (RILJ_LOGD) unsljLogRet(response, ret);

                boolean oldRil = needsOldRilFeature("skipbrokendatacall");
                if (oldRil && "IP".equals(((ArrayList<DataCallState>)ret).get(0).type))
                    break;

                mDataNetworkStateRegistrants.notifyRegistrants(new AsyncResult(null, ret, null));
            break;