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

Commit 93faa323 authored by Lorenzo Colitti's avatar Lorenzo Colitti
Browse files

Make setupDataCall take a protocol parameter.

Backport the protocol changes to setupDataCall and its
callers from master. As in master, hardcode IPv4
connectivity for now. When we add the protocol field to
ApnSettings, it will be fetched from there.

Bug: 3333633
Change-Id: I51880bc0ec192cbf964ac7bbd6a4b7d2eed41d27
parent 919853ce
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1350,11 +1350,15 @@ public interface CommandsInterface {
     *            the password for APN, or NULL
     * @param authType
     *            the PAP / CHAP auth type. Values is one of SETUP_DATA_AUTH_*
     * @param protocol
     *            one of the PDP_type values in TS 27.007 section 10.1.1.
     *            For example, "IP", "IPV6", "IPV4V6", or "PPP".
     * @param result
     *            Callback message
     */
    public void setupDataCall(String radioTechnology, String profile, String apn,
            String user, String password, String authType, Message result);
    public void setupDataCall(String radioTechnology, String profile,
            String apn, String user, String password, String authType,
            String protocol, Message result);

    /**
     * Deactivate packet data connection
+12 −10
Original line number Diff line number Diff line
@@ -1309,7 +1309,8 @@ public final class RIL extends BaseCommands implements CommandsInterface {
                : RILConstants.SETUP_DATA_AUTH_NONE;

        setupDataCall(Integer.toString(radioTechnology), profile, apn, user,
                password, Integer.toString(authType), result);
                password, Integer.toString(authType),
                RILConstants.SETUP_DATA_PROTOCOL_IP, result);

    }

@@ -1321,18 +1322,14 @@ public final class RIL extends BaseCommands implements CommandsInterface {
        deactivateDataCall(cid, result);
    }

    /**
     * The preferred new alternative to setupDefaultPDP that is
     * CDMA-compatible.
     *
     */
    public void
    setupDataCall(String radioTechnology, String profile, String apn,
            String user, String password, String authType, Message result) {
            String user, String password, String authType, String protocol,
            Message result) {
        RILRequest rr
                = RILRequest.obtain(RIL_REQUEST_SETUP_DATA_CALL, result);

        rr.mp.writeInt(6);
        rr.mp.writeInt(7);

        rr.mp.writeString(radioTechnology);
        rr.mp.writeString(profile);
@@ -1340,11 +1337,12 @@ public final class RIL extends BaseCommands implements CommandsInterface {
        rr.mp.writeString(user);
        rr.mp.writeString(password);
        rr.mp.writeString(authType);
        rr.mp.writeString(protocol);

        if (RILJ_LOGD) riljLog(rr.serialString() + "> "
                + requestToString(rr.mRequest) + " " + radioTechnology + " "
                + profile + " " + apn + " " + user + " "
                + password + " " + authType);
                + password + " " + authType + " " + protocol);

        send(rr);
    }
@@ -2963,7 +2961,11 @@ public final class RIL extends BaseCommands implements CommandsInterface {
            dataCall.active = p.readInt();
            dataCall.type = p.readString();
            dataCall.apn = p.readString();
            dataCall.address = p.readString();
            String address = p.readString();
            if (address != null) {
                address = address.split(" ")[0];
            }
            dataCall.address = address;

            response.add(dataCall);
        }
+5 −0
Original line number Diff line number Diff line
@@ -91,11 +91,16 @@ public interface RILConstants {
    /* Setup a packet data connection. See ril.h RIL_REQUEST_SETUP_DATA_CALL */
    int SETUP_DATA_TECH_CDMA      = 0;
    int SETUP_DATA_TECH_GSM       = 1;

    int SETUP_DATA_AUTH_NONE      = 0;
    int SETUP_DATA_AUTH_PAP       = 1;
    int SETUP_DATA_AUTH_CHAP      = 2;
    int SETUP_DATA_AUTH_PAP_CHAP  = 3;

    String SETUP_DATA_PROTOCOL_IP     = "IP";
    String SETUP_DATA_PROTOCOL_IPV6   = "IPV6";
    String SETUP_DATA_PROTOCOL_IPV4V6 = "IPV4V6";

/*
cat include/telephony/ril.h | \
   egrep '^#define' | \
+6 −3
Original line number Diff line number Diff line
@@ -85,9 +85,12 @@ public class CdmaDataConnection extends DataConnection {
        // msg.obj will be returned in AsyncResult.userObj;
        Message msg = obtainMessage(EVENT_SETUP_DATA_CONNECTION_DONE, cp);
        msg.obj = cp;
        phone.mCM.setupDataCall(Integer.toString(RILConstants.SETUP_DATA_TECH_CDMA),
                Integer.toString(dataProfile), null, null,
                null, Integer.toString(RILConstants.SETUP_DATA_AUTH_PAP_CHAP), msg);
        phone.mCM.setupDataCall(
                Integer.toString(RILConstants.SETUP_DATA_TECH_CDMA),
                Integer.toString(dataProfile),
                null, null, null,
                Integer.toString(RILConstants.SETUP_DATA_AUTH_PAP_CHAP),
                RILConstants.SETUP_DATA_PROTOCOL_IP, msg);
    }

    @Override
+5 −3
Original line number Diff line number Diff line
@@ -104,9 +104,11 @@ public class GsmDataConnection extends DataConnection {
            authType = (apn.user != null) ? RILConstants.SETUP_DATA_AUTH_PAP_CHAP :
                RILConstants.SETUP_DATA_AUTH_NONE;
        }
        phone.mCM.setupDataCall(Integer.toString(RILConstants.SETUP_DATA_TECH_GSM),
                Integer.toString(RILConstants.DATA_PROFILE_DEFAULT), apn.apn, apn.user,
                apn.password, Integer.toString(authType), msg);
        phone.mCM.setupDataCall(
                Integer.toString(RILConstants.SETUP_DATA_TECH_GSM),
                Integer.toString(RILConstants.DATA_PROFILE_DEFAULT),
                apn.apn, apn.user, apn.password, Integer.toString(authType),
                RILConstants.SETUP_DATA_PROTOCOL_IP, msg);
    }

    @Override
Loading