-static void dispatchDataProfile(Parcel &p, RequestInfo *pRI) {
- int32_t t;
- status_t status;
- int32_t num;
-
- status = p.readInt32(&num);
- if (status != NO_ERROR) {
- goto invalid;
- }
-
- {
- RIL_DataProfileInfo dataProfiles[num];
- RIL_DataProfileInfo *dataProfilePtrs[num];
-
- startRequest;
- for (int i = 0 ; i < num ; i++ ) {
- dataProfilePtrs[i] = &dataProfiles[i];
-
- status = p.readInt32(&t);
- dataProfiles[i].profileId = (int) t;
-
- dataProfiles[i].apn = strdupReadString(p);
- dataProfiles[i].protocol = strdupReadString(p);
- status = p.readInt32(&t);
- dataProfiles[i].authType = (int) t;
-
- dataProfiles[i].user = strdupReadString(p);
- dataProfiles[i].password = strdupReadString(p);
-
- status = p.readInt32(&t);
- dataProfiles[i].type = (int) t;
-
- status = p.readInt32(&t);
- dataProfiles[i].maxConnsTime = (int) t;
- status = p.readInt32(&t);
- dataProfiles[i].maxConns = (int) t;
- status = p.readInt32(&t);
- dataProfiles[i].waitTime = (int) t;
-
- status = p.readInt32(&t);
- dataProfiles[i].enabled = (int) t;
-
- appendPrintBuf("%s [%d: profileId=%d, apn =%s, protocol =%s, authType =%d, \
- user =%s, password =%s, type =%d, maxConnsTime =%d, maxConns =%d, \
- waitTime =%d, enabled =%d]", printBuf, i, dataProfiles[i].profileId,
- dataProfiles[i].apn, dataProfiles[i].protocol, dataProfiles[i].authType,
- dataProfiles[i].user, dataProfiles[i].password, dataProfiles[i].type,
- dataProfiles[i].maxConnsTime, dataProfiles[i].maxConns,
- dataProfiles[i].waitTime, dataProfiles[i].enabled);
- }
- closeRequest;
- printRequest(pRI->token, pRI->pCI->requestNumber);
-
- if (status != NO_ERROR) {
- goto invalid;
- }
- CALL_ONREQUEST(pRI->pCI->requestNumber,
- dataProfilePtrs,
- num * sizeof(RIL_DataProfileInfo *),
- pRI, pRI->socket_id);
-
-#ifdef MEMSET_FREED
- memset(dataProfiles, 0, num * sizeof(RIL_DataProfileInfo));
- memset(dataProfilePtrs, 0, num * sizeof(RIL_DataProfileInfo *));
-#endif
- }
-
- return;
-
-invalid:
- invalidCommandBlock(pRI);
- return;
-}
-