619 lines
28 KiB
Diff
619 lines
28 KiB
Diff
From 93f0cdc41e63859c3e67d460028a892298cb94e5 Mon Sep 17 00:00:00 2001
|
|
From: heppen <hepeng68@huawei.com>
|
|
Date: Sat, 23 Sep 2023 16:56:54 +0800
|
|
Subject: [PATCH 1/2] Remove dependence on access token and hitrace
|
|
|
|
---
|
|
interfaces/innerkits/ipc_core/BUILD.gn | 4 +-
|
|
interfaces/innerkits/ipc_single/BUILD.gn | 2 +-
|
|
.../access_token/src/access_token_adapter.c | 2 +-
|
|
.../src/core/source/ipc_object_stub.cpp | 76 ++++---
|
|
.../src/mock/include/dbinder_base_invoker.h | 12 +-
|
|
ipc/native/src/mock/include/hitrace_invoker.h | 18 +-
|
|
ipc/native/src/mock/source/binder_invoker.cpp | 12 +-
|
|
.../src/mock/source/hitrace_invoker.cpp | 212 +++++++++---------
|
|
.../src/mock/source/invoker_factory.cpp | 2 +-
|
|
.../src/napi/src/napi_remote_object.cpp | 2 +-
|
|
ipc/native/src/napi/src/napi_remote_proxy.cpp | 2 +-
|
|
.../unittest/common/ipc_hitrace_unittest.cpp | 2 +-
|
|
.../include/dbinder_test_service_skeleton.h | 2 +-
|
|
13 files changed, 175 insertions(+), 173 deletions(-)
|
|
|
|
diff --git a/interfaces/innerkits/ipc_core/BUILD.gn b/interfaces/innerkits/ipc_core/BUILD.gn
|
|
index cb35083..3c4d57b 100644
|
|
--- a/interfaces/innerkits/ipc_core/BUILD.gn
|
|
+++ b/interfaces/innerkits/ipc_core/BUILD.gn
|
|
@@ -71,10 +71,10 @@ ohos_shared_library("ipc_core") {
|
|
all_dependent_configs = [ ":ipc_all_deps_config" ]
|
|
|
|
external_deps = [
|
|
- "access_token:libaccesstoken_sdk",
|
|
+ # "access_token:libaccesstoken_sdk",
|
|
"c_utils:utils",
|
|
"dsoftbus:softbus_client",
|
|
- "hitrace_native:libhitracechain",
|
|
+ # "hitrace_native:libhitracechain",
|
|
"hiviewdfx_hilog_native:libhilog",
|
|
]
|
|
|
|
diff --git a/interfaces/innerkits/ipc_single/BUILD.gn b/interfaces/innerkits/ipc_single/BUILD.gn
|
|
index de33cdb..f61f26c 100644
|
|
--- a/interfaces/innerkits/ipc_single/BUILD.gn
|
|
+++ b/interfaces/innerkits/ipc_single/BUILD.gn
|
|
@@ -59,7 +59,7 @@ ohos_shared_library("ipc_single") {
|
|
|
|
external_deps = [
|
|
"c_utils:utils",
|
|
- "hitrace_native:libhitracechain",
|
|
+ # "hitrace_native:libhitracechain",
|
|
"hiviewdfx_hilog_native:libhilog",
|
|
]
|
|
|
|
diff --git a/ipc/native/c/adapter/access_token/src/access_token_adapter.c b/ipc/native/c/adapter/access_token/src/access_token_adapter.c
|
|
index aece213..890ba82 100644
|
|
--- a/ipc/native/c/adapter/access_token/src/access_token_adapter.c
|
|
+++ b/ipc/native/c/adapter/access_token/src/access_token_adapter.c
|
|
@@ -19,7 +19,7 @@
|
|
#include <sys/ioctl.h>
|
|
#include <unistd.h>
|
|
|
|
-#include "bits/ioctl.h"
|
|
+// #include "bits/ioctl.h"
|
|
|
|
#define ACCESS_TOKEN_ID_IOCTL_BASE 'A'
|
|
|
|
diff --git a/ipc/native/src/core/source/ipc_object_stub.cpp b/ipc/native/src/core/source/ipc_object_stub.cpp
|
|
index 28df2cd..781d600 100644
|
|
--- a/ipc/native/src/core/source/ipc_object_stub.cpp
|
|
+++ b/ipc/native/src/core/source/ipc_object_stub.cpp
|
|
@@ -39,8 +39,8 @@
|
|
#include "vector"
|
|
|
|
#ifndef CONFIG_IPC_SINGLE
|
|
-#include "accesstoken_kit.h"
|
|
-#include "access_token_adapter.h"
|
|
+// #include "accesstoken_kit.h"
|
|
+// #include "access_token_adapter.h"
|
|
#include "dbinder_databus_invoker.h"
|
|
#include "dbinder_error_code.h"
|
|
#include "rpc_feature_set.h"
|
|
@@ -56,10 +56,10 @@ static constexpr int HIDUMPER_SERVICE_UID = 1212;
|
|
using namespace OHOS::HiviewDFX;
|
|
static constexpr HiLogLabel LABEL = { LOG_CORE, LOG_ID_IPC, "IPCObjectStub" };
|
|
#ifndef CONFIG_IPC_SINGLE
|
|
-using namespace OHOS::Security;
|
|
+// using namespace OHOS::Security;
|
|
// Authentication information can be added only for processes with system permission.
|
|
static constexpr pid_t ALLOWED_UID = 10000;
|
|
-static constexpr int APL_BASIC = 2;
|
|
+// static constexpr int APL_BASIC = 2;
|
|
// Only the samgr can obtain the UID and PID.
|
|
static const std::string SAMGR_PROCESS_NAME = "samgr";
|
|
#endif
|
|
@@ -259,7 +259,7 @@ int IPCObjectStub::SendRequest(uint32_t code, MessageParcel &data, MessageParcel
|
|
break;
|
|
}
|
|
case GRANT_DATABUS_NAME: {
|
|
- if (!IPCSkeleton::IsLocalCalling() || !IsSamgrCall((uint32_t)RpcGetSelfTokenID())) {
|
|
+ if (!IPCSkeleton::IsLocalCalling() || !IsSamgrCall((uint32_t)0)) {
|
|
ZLOGE(LABEL, "GRANT_DATABUS_NAME message is excluded in sa manager");
|
|
result = IPC_STUB_INVALID_DATA_ERR;
|
|
break;
|
|
@@ -268,7 +268,7 @@ int IPCObjectStub::SendRequest(uint32_t code, MessageParcel &data, MessageParcel
|
|
break;
|
|
}
|
|
case TRANS_DATABUS_NAME: {
|
|
- if (!IPCSkeleton::IsLocalCalling() || !IsSamgrCall((uint32_t)RpcGetSelfTokenID())) {
|
|
+ if (!IPCSkeleton::IsLocalCalling() || !IsSamgrCall((uint32_t)0)) {
|
|
ZLOGE(LABEL, "TRANS_DATABUS_NAME message is excluded in sa manager");
|
|
result = IPC_STUB_INVALID_DATA_ERR;
|
|
break;
|
|
@@ -611,41 +611,43 @@ std::string IPCObjectStub::CreateDatabusName(int uid, int pid, int systemAbility
|
|
|
|
bool IPCObjectStub::IsSamgrCall(uint32_t accessToken)
|
|
{
|
|
- auto tokenType = AccessToken::AccessTokenKit::GetTokenTypeFlag(accessToken);
|
|
- if (tokenType != AccessToken::ATokenTypeEnum::TOKEN_NATIVE) {
|
|
- ZLOGE(LABEL, "not native call");
|
|
- return false;
|
|
- }
|
|
- AccessToken::NativeTokenInfo nativeTokenInfo;
|
|
- int32_t result = AccessToken::AccessTokenKit::GetNativeTokenInfo(accessToken, nativeTokenInfo);
|
|
- if (result == ERR_NONE && nativeTokenInfo.processName == SAMGR_PROCESS_NAME) {
|
|
- return true;
|
|
- }
|
|
- ZLOGE(LABEL, "not samgr called, processName:%{private}s", nativeTokenInfo.processName.c_str());
|
|
- return false;
|
|
+ // auto tokenType = AccessToken::AccessTokenKit::GetTokenTypeFlag(accessToken);
|
|
+ // if (tokenType != AccessToken::ATokenTypeEnum::TOKEN_NATIVE) {
|
|
+ // ZLOGE(LABEL, "not native call");
|
|
+ // return false;
|
|
+ // }
|
|
+ // AccessToken::NativeTokenInfo nativeTokenInfo;
|
|
+ // int32_t result = AccessToken::AccessTokenKit::GetNativeTokenInfo(accessToken, nativeTokenInfo);
|
|
+ // if (result == ERR_NONE && nativeTokenInfo.processName == SAMGR_PROCESS_NAME) {
|
|
+ // return true;
|
|
+ // }
|
|
+ // ZLOGE(LABEL, "not samgr called, processName:%{private}s", nativeTokenInfo.processName.c_str());
|
|
+ // return false;
|
|
+ return true;
|
|
}
|
|
|
|
bool IPCObjectStub::HasDumpPermission(uint32_t accessToken) const
|
|
{
|
|
- int res = AccessToken::AccessTokenKit::VerifyAccessToken(accessToken, "ohos.permission.DUMP");
|
|
- if (res == AccessToken::PermissionState::PERMISSION_GRANTED) {
|
|
- return true;
|
|
- }
|
|
- bool ret = false;
|
|
- auto tokenType = AccessToken::AccessTokenKit::GetTokenTypeFlag(accessToken);
|
|
- if (tokenType == AccessToken::ATokenTypeEnum::TOKEN_NATIVE) {
|
|
- AccessToken::NativeTokenInfo nativeTokenInfo;
|
|
- int32_t result = AccessToken::AccessTokenKit::GetNativeTokenInfo(accessToken, nativeTokenInfo);
|
|
- ret = (result == ERR_NONE && nativeTokenInfo.apl >= APL_BASIC);
|
|
- } else if (tokenType == AccessToken::ATokenTypeEnum::TOKEN_HAP) {
|
|
- AccessToken::HapTokenInfo hapTokenInfo;
|
|
- int32_t result = AccessToken::AccessTokenKit::GetHapTokenInfo(accessToken, hapTokenInfo);
|
|
- ret = (result == ERR_NONE && hapTokenInfo.apl >= APL_BASIC);
|
|
- }
|
|
- if (!ret) {
|
|
- ZLOGD(LABEL, "No dump permission, please check!");
|
|
- }
|
|
- return ret;
|
|
+ // int res = AccessToken::AccessTokenKit::VerifyAccessToken(accessToken, "ohos.permission.DUMP");
|
|
+ // if (res == AccessToken::PermissionState::PERMISSION_GRANTED) {
|
|
+ // return true;
|
|
+ // }
|
|
+ // bool ret = false;
|
|
+ // auto tokenType = AccessToken::AccessTokenKit::GetTokenTypeFlag(accessToken);
|
|
+ // if (tokenType == AccessToken::ATokenTypeEnum::TOKEN_NATIVE) {
|
|
+ // AccessToken::NativeTokenInfo nativeTokenInfo;
|
|
+ // int32_t result = AccessToken::AccessTokenKit::GetNativeTokenInfo(accessToken, nativeTokenInfo);
|
|
+ // ret = (result == ERR_NONE && nativeTokenInfo.apl >= APL_BASIC);
|
|
+ // } else if (tokenType == AccessToken::ATokenTypeEnum::TOKEN_HAP) {
|
|
+ // AccessToken::HapTokenInfo hapTokenInfo;
|
|
+ // int32_t result = AccessToken::AccessTokenKit::GetHapTokenInfo(accessToken, hapTokenInfo);
|
|
+ // ret = (result == ERR_NONE && hapTokenInfo.apl >= APL_BASIC);
|
|
+ // }
|
|
+ // if (!ret) {
|
|
+ // ZLOGD(LABEL, "No dump permission, please check!");
|
|
+ // }
|
|
+ // return ret;
|
|
+ return true;
|
|
}
|
|
#endif
|
|
} // namespace OHOS
|
|
diff --git a/ipc/native/src/mock/include/dbinder_base_invoker.h b/ipc/native/src/mock/include/dbinder_base_invoker.h
|
|
index ca7fd8e..7d40e7d 100644
|
|
--- a/ipc/native/src/mock/include/dbinder_base_invoker.h
|
|
+++ b/ipc/native/src/mock/include/dbinder_base_invoker.h
|
|
@@ -701,9 +701,9 @@ int DBinderBaseInvoker<T>::SendRequest(int32_t handle, uint32_t code, MessagePar
|
|
int userWaitTime = option.GetWaitTime();
|
|
MessageParcel &newData = const_cast<MessageParcel &>(data);
|
|
size_t oldWritePosition = newData.GetWritePosition();
|
|
- HiTraceId traceId = HiTraceChain::GetId();
|
|
+ // HiTraceId traceId = HiTraceChain::GetId();
|
|
// set client send trace point if trace is enabled
|
|
- HiTraceId childId = HitraceInvoker::TraceClientSend(handle, code, newData, flags, traceId);
|
|
+ // HiTraceId childId = HitraceInvoker::TraceClientSend(handle, code, newData, flags, traceId);
|
|
std::shared_ptr<T> session = WriteTransaction(BC_TRANSACTION, flags, handle, 0, code, data, seqNumber, 0);
|
|
if (session == nullptr) {
|
|
newData.RewindWrite(oldWritePosition);
|
|
@@ -720,7 +720,7 @@ int DBinderBaseInvoker<T>::SendRequest(int32_t handle, uint32_t code, MessagePar
|
|
} else {
|
|
ret = SendOrWaitForCompletion(userWaitTime, seqNumber, session, &reply);
|
|
}
|
|
- HitraceInvoker::TraceClientReceieve(handle, code, flags, traceId, childId);
|
|
+ // HitraceInvoker::TraceClientReceieve(handle, code, flags, traceId, childId);
|
|
// restore Parcel data
|
|
newData.RewindWrite(oldWritePosition);
|
|
return ret;
|
|
@@ -865,8 +865,8 @@ template <class T> void DBinderBaseInvoker<T>::ProcessTransaction(dbinder_transa
|
|
data.InjectOffsets(reinterpret_cast<binder_uintptr_t>(reinterpret_cast<char *>(tr->buffer) + tr->offsets),
|
|
tr->offsets_size / sizeof(binder_size_t));
|
|
}
|
|
- uint32_t &newflags = const_cast<uint32_t &>(tr->flags);
|
|
- int isServerTraced = HitraceInvoker::TraceServerReceieve(tr->cookie, tr->code, data, newflags);
|
|
+ // uint32_t &newflags = const_cast<uint32_t &>(tr->flags);
|
|
+ // int isServerTraced = HitraceInvoker::TraceServerReceieve(tr->cookie, tr->code, data, newflags);
|
|
|
|
const pid_t oldPid = GetCallerPid();
|
|
const auto oldUid = static_cast<const uid_t>(GetCallerUid());
|
|
@@ -918,7 +918,7 @@ template <class T> void DBinderBaseInvoker<T>::ProcessTransaction(dbinder_transa
|
|
ZLOGE(LOG_LABEL, "delete raw data in process skeleton");
|
|
current->DetachRawData(listenFd);
|
|
}
|
|
- HitraceInvoker::TraceServerSend(tr->cookie, tr->code, isServerTraced, newflags);
|
|
+ // HitraceInvoker::TraceServerSend(tr->cookie, tr->code, isServerTraced, newflags);
|
|
if (!(flags & MessageOption::TF_ASYNC)) {
|
|
SetClientFd(listenFd);
|
|
SetSeqNum(senderSeqNumber);
|
|
diff --git a/ipc/native/src/mock/include/hitrace_invoker.h b/ipc/native/src/mock/include/hitrace_invoker.h
|
|
index 7da8029..785a1d2 100644
|
|
--- a/ipc/native/src/mock/include/hitrace_invoker.h
|
|
+++ b/ipc/native/src/mock/include/hitrace_invoker.h
|
|
@@ -16,24 +16,24 @@
|
|
#ifndef OHOS_IPC_HITRACE_INVOKER_H
|
|
#define OHOS_IPC_HITRACE_INVOKER_H
|
|
|
|
-#include "hitrace/trace.h"
|
|
+// #include "hitrace/trace.h"
|
|
#include "iremote_object.h"
|
|
namespace OHOS {
|
|
class HitraceInvoker {
|
|
public:
|
|
- static bool IsClientTraced(int32_t handle, uint32_t flags, const HiviewDFX::HiTraceId &traceId);
|
|
+ // static bool IsClientTraced(int32_t handle, uint32_t flags, const HiviewDFX::HiTraceId &traceId);
|
|
|
|
- static HiviewDFX::HiTraceId TraceClientSend(int32_t handle, uint32_t code, Parcel &data, uint32_t &flags,
|
|
- const HiviewDFX::HiTraceId &traceId);
|
|
+ // static HiviewDFX::HiTraceId TraceClientSend(int32_t handle, uint32_t code, Parcel &data, uint32_t &flags,
|
|
+ // const HiviewDFX::HiTraceId &traceId);
|
|
|
|
- static void TraceClientReceieve(int32_t handle, uint32_t code, uint32_t flags, const HiviewDFX::HiTraceId &traceId,
|
|
- const HiviewDFX::HiTraceId &childId);
|
|
+ // static void TraceClientReceieve(int32_t handle, uint32_t code, uint32_t flags, const HiviewDFX::HiTraceId &traceId,
|
|
+ // const HiviewDFX::HiTraceId &childId);
|
|
|
|
- static void RecoveryDataAndFlag(Parcel &data, uint32_t &flags, size_t oldReadPosition, uint8_t idLen);
|
|
+ // static void RecoveryDataAndFlag(Parcel &data, uint32_t &flags, size_t oldReadPosition, uint8_t idLen);
|
|
|
|
- static bool TraceServerReceieve(int32_t handle, uint32_t code, Parcel &data, uint32_t &flags);
|
|
+ // static bool TraceServerReceieve(int32_t handle, uint32_t code, Parcel &data, uint32_t &flags);
|
|
|
|
- static void TraceServerSend(int32_t handle, uint32_t code, bool isServerTraced, uint32_t flags);
|
|
+ // static void TraceServerSend(int32_t handle, uint32_t code, bool isServerTraced, uint32_t flags);
|
|
|
|
private:
|
|
static const int PADDED_SIZE_OF_PARCEL = 4;
|
|
diff --git a/ipc/native/src/mock/source/binder_invoker.cpp b/ipc/native/src/mock/source/binder_invoker.cpp
|
|
index 9ce6b59..946940c 100644
|
|
--- a/ipc/native/src/mock/source/binder_invoker.cpp
|
|
+++ b/ipc/native/src/mock/source/binder_invoker.cpp
|
|
@@ -96,9 +96,9 @@ int BinderInvoker::SendRequest(int handle, uint32_t code, MessageParcel &data, M
|
|
uint32_t flags = (uint32_t)option.GetFlags();
|
|
MessageParcel &newData = const_cast<MessageParcel &>(data);
|
|
size_t oldWritePosition = newData.GetWritePosition();
|
|
- HiTraceId traceId = HiTraceChain::GetId();
|
|
+ // HiTraceId traceId = HiTraceChain::GetId();
|
|
// set client send trace point if trace is enabled
|
|
- HiTraceId childId = HitraceInvoker::TraceClientSend(handle, code, newData, flags, traceId);
|
|
+ // HiTraceId childId = HitraceInvoker::TraceClientSend(handle, code, newData, flags, traceId);
|
|
if (!WriteTransaction(BC_TRANSACTION, flags, handle, code, data, nullptr)) {
|
|
newData.RewindWrite(oldWritePosition);
|
|
ZLOGE(LABEL, "WriteTransaction ERROR");
|
|
@@ -114,7 +114,7 @@ int BinderInvoker::SendRequest(int handle, uint32_t code, MessageParcel &data, M
|
|
} else {
|
|
error = WaitForCompletion(&reply);
|
|
}
|
|
- HitraceInvoker::TraceClientReceieve(handle, code, flags, traceId, childId);
|
|
+ // HitraceInvoker::TraceClientReceieve(handle, code, flags, traceId, childId);
|
|
// restore Parcel data
|
|
newData.RewindWrite(oldWritePosition);
|
|
if (error != ERR_NONE) {
|
|
@@ -413,8 +413,8 @@ void BinderInvoker::OnTransaction(const uint8_t *buffer)
|
|
if (tr->offsets_size > 0) {
|
|
data->InjectOffsets(tr->data.ptr.offsets, tr->offsets_size / sizeof(binder_size_t));
|
|
}
|
|
- uint32_t &newflags = const_cast<uint32_t &>(tr->flags);
|
|
- int isServerTraced = HitraceInvoker::TraceServerReceieve(tr->target.handle, tr->code, *data, newflags);
|
|
+ // uint32_t &newflags = const_cast<uint32_t &>(tr->flags);
|
|
+ // int isServerTraced = HitraceInvoker::TraceServerReceieve(tr->target.handle, tr->code, *data, newflags);
|
|
const pid_t oldPid = callerPid_;
|
|
const auto oldUid = static_cast<const uid_t>(callerUid_);
|
|
const uint32_t oldToken = callerTokenID_;
|
|
@@ -469,7 +469,7 @@ void BinderInvoker::OnTransaction(const uint8_t *buffer)
|
|
Str16ToStr8(targetObject->descriptor_).c_str(), tr->code, duration);
|
|
}
|
|
}
|
|
- HitraceInvoker::TraceServerSend(tr->target.handle, tr->code, isServerTraced, newflags);
|
|
+ // HitraceInvoker::TraceServerSend(tr->target.handle, tr->code, isServerTraced, newflags);
|
|
if (!(flagValue & TF_ONE_WAY)) {
|
|
SendReply(reply, 0, error);
|
|
}
|
|
diff --git a/ipc/native/src/mock/source/hitrace_invoker.cpp b/ipc/native/src/mock/source/hitrace_invoker.cpp
|
|
index 4f7f7c3..bc55772 100644
|
|
--- a/ipc/native/src/mock/source/hitrace_invoker.cpp
|
|
+++ b/ipc/native/src/mock/source/hitrace_invoker.cpp
|
|
@@ -20,7 +20,7 @@
|
|
|
|
#include "hilog/log_c.h"
|
|
#include "hilog/log_cpp.h"
|
|
-#include "hitrace/trace.h"
|
|
+// #include "hitrace/trace.h"
|
|
#include "ipc_debug.h"
|
|
#include "log_tags.h"
|
|
#include "parcel.h"
|
|
@@ -29,118 +29,118 @@
|
|
namespace OHOS {
|
|
// the value should be equal to the set of parcel
|
|
using namespace OHOS::HiviewDFX;
|
|
-static const HiLogLabel TRACE_LABEL = { LOG_CORE, LOG_ID_IPC, "BinderHiTrace" };
|
|
+// static const HiLogLabel TRACE_LABEL = { LOG_CORE, LOG_ID_IPC, "BinderHiTrace" };
|
|
|
|
-bool HitraceInvoker::IsClientTraced(int32_t handle, uint32_t flags, const HiTraceId &traceId)
|
|
-{
|
|
- return (traceId.IsValid() && (handle != 0) &&
|
|
- ((flags & TF_ONE_WAY) ? traceId.IsFlagEnabled(HITRACE_FLAG_INCLUDE_ASYNC) : true));
|
|
-}
|
|
+// bool HitraceInvoker::IsClientTraced(int32_t handle, uint32_t flags, const HiTraceId &traceId)
|
|
+// {
|
|
+// return (traceId.IsValid() && (handle != 0) &&
|
|
+// ((flags & TF_ONE_WAY) ? traceId.IsFlagEnabled(HITRACE_FLAG_INCLUDE_ASYNC) : true));
|
|
+// }
|
|
|
|
-HiTraceId HitraceInvoker::TraceClientSend(int32_t handle, uint32_t code, Parcel &data, uint32_t &flags,
|
|
- const HiTraceId &traceId)
|
|
-{
|
|
- HiTraceId childId = traceId;
|
|
- bool isClientTraced = IsClientTraced(handle, flags, traceId);
|
|
- if (isClientTraced) {
|
|
- childId = HiTraceChain::CreateSpan();
|
|
- // add childid to parcel data
|
|
- uint8_t idBytes[HITRACE_ID_LEN];
|
|
- size_t idLen = (size_t)(childId.ToBytes(idBytes, HITRACE_ID_LEN));
|
|
- if (idLen != HITRACE_ID_LEN) {
|
|
- ZLOGE(TRACE_LABEL, "%{public}s:idLen not correct", __func__);
|
|
- return childId;
|
|
- }
|
|
+// HiTraceId HitraceInvoker::TraceClientSend(int32_t handle, uint32_t code, Parcel &data, uint32_t &flags,
|
|
+// const HiTraceId &traceId)
|
|
+// {
|
|
+// HiTraceId childId = traceId;
|
|
+// bool isClientTraced = IsClientTraced(handle, flags, traceId);
|
|
+// if (isClientTraced) {
|
|
+// childId = HiTraceChain::CreateSpan();
|
|
+// // add childid to parcel data
|
|
+// uint8_t idBytes[HITRACE_ID_LEN];
|
|
+// size_t idLen = (size_t)(childId.ToBytes(idBytes, HITRACE_ID_LEN));
|
|
+// if (idLen != HITRACE_ID_LEN) {
|
|
+// ZLOGE(TRACE_LABEL, "%{public}s:idLen not correct", __func__);
|
|
+// return childId;
|
|
+// }
|
|
|
|
- size_t oldWritePosition = data.GetWritePosition();
|
|
- if (!data.WriteBuffer(idBytes, idLen)) {
|
|
- ZLOGE(TRACE_LABEL, "%{public}s:Write idBytes fail", __func__);
|
|
- // restore Parcel data
|
|
- data.RewindWrite(oldWritePosition);
|
|
- return childId;
|
|
- }
|
|
+// size_t oldWritePosition = data.GetWritePosition();
|
|
+// if (!data.WriteBuffer(idBytes, idLen)) {
|
|
+// ZLOGE(TRACE_LABEL, "%{public}s:Write idBytes fail", __func__);
|
|
+// // restore Parcel data
|
|
+// data.RewindWrite(oldWritePosition);
|
|
+// return childId;
|
|
+// }
|
|
|
|
- // padded size of traceid
|
|
- if (!data.WriteUint8(data.GetWritePosition() - oldWritePosition)) {
|
|
- ZLOGE(TRACE_LABEL, "%{public}s:Write idLen fail", __func__);
|
|
- // restore Parcel data
|
|
- data.RewindWrite(oldWritePosition);
|
|
- return childId;
|
|
- }
|
|
- // tracepoint: CS(Client Send)
|
|
- HiTraceChain::Tracepoint(HITRACE_TP_CS, childId, "%s handle=%d,code=%u",
|
|
- (flags & TF_ONE_WAY) ? "ASYNC" : "SYNC",
|
|
- handle, code);
|
|
- flags |= TF_HITRACE;
|
|
- }
|
|
- return childId;
|
|
-}
|
|
+// // padded size of traceid
|
|
+// if (!data.WriteUint8(data.GetWritePosition() - oldWritePosition)) {
|
|
+// ZLOGE(TRACE_LABEL, "%{public}s:Write idLen fail", __func__);
|
|
+// // restore Parcel data
|
|
+// data.RewindWrite(oldWritePosition);
|
|
+// return childId;
|
|
+// }
|
|
+// // tracepoint: CS(Client Send)
|
|
+// HiTraceChain::Tracepoint(HITRACE_TP_CS, childId, "%s handle=%d,code=%u",
|
|
+// (flags & TF_ONE_WAY) ? "ASYNC" : "SYNC",
|
|
+// handle, code);
|
|
+// flags |= TF_HITRACE;
|
|
+// }
|
|
+// return childId;
|
|
+// }
|
|
|
|
-void HitraceInvoker::TraceClientReceieve(int32_t handle, uint32_t code, uint32_t flags, const HiTraceId &traceId,
|
|
- const HiTraceId &childId)
|
|
-{
|
|
- if (!(flags & TF_HITRACE)) {
|
|
- return;
|
|
- }
|
|
- bool isClientTraced = IsClientTraced(handle, flags, traceId);
|
|
- if (isClientTraced) {
|
|
- if (!(flags & TF_ONE_WAY)) {
|
|
- // restore thread trace id
|
|
- HiTraceChain::SetId(traceId);
|
|
- // tracepoint: CR(Client Receive)
|
|
- HiTraceChain::Tracepoint(HITRACE_TP_CR, childId, "%s handle=%d,code=%u", "SYNC", handle, code);
|
|
- }
|
|
- }
|
|
-}
|
|
+// void HitraceInvoker::TraceClientReceieve(int32_t handle, uint32_t code, uint32_t flags, const HiTraceId &traceId,
|
|
+// const HiTraceId &childId)
|
|
+// {
|
|
+// if (!(flags & TF_HITRACE)) {
|
|
+// return;
|
|
+// }
|
|
+// bool isClientTraced = IsClientTraced(handle, flags, traceId);
|
|
+// if (isClientTraced) {
|
|
+// if (!(flags & TF_ONE_WAY)) {
|
|
+// // restore thread trace id
|
|
+// HiTraceChain::SetId(traceId);
|
|
+// // tracepoint: CR(Client Receive)
|
|
+// HiTraceChain::Tracepoint(HITRACE_TP_CR, childId, "%s handle=%d,code=%u", "SYNC", handle, code);
|
|
+// }
|
|
+// }
|
|
+// }
|
|
|
|
-void HitraceInvoker::RecoveryDataAndFlag(Parcel &data, uint32_t &flags, size_t oldReadPosition, uint8_t idLen)
|
|
-{
|
|
- // restore data
|
|
- data.RewindRead(oldReadPosition);
|
|
- // padded size(4 bytes) of uint8_t
|
|
- data.SetDataSize(data.GetDataSize() - PADDED_SIZE_OF_PARCEL - idLen);
|
|
- flags &= ~(uint32_t)TF_HITRACE;
|
|
-}
|
|
+// void HitraceInvoker::RecoveryDataAndFlag(Parcel &data, uint32_t &flags, size_t oldReadPosition, uint8_t idLen)
|
|
+// {
|
|
+// // restore data
|
|
+// data.RewindRead(oldReadPosition);
|
|
+// // padded size(4 bytes) of uint8_t
|
|
+// data.SetDataSize(data.GetDataSize() - PADDED_SIZE_OF_PARCEL - idLen);
|
|
+// flags &= ~(uint32_t)TF_HITRACE;
|
|
+// }
|
|
|
|
-bool HitraceInvoker::TraceServerReceieve(int32_t handle, uint32_t code, Parcel &data, uint32_t &flags)
|
|
-{
|
|
- bool isServerTraced = (flags & TF_HITRACE) != 0;
|
|
- if (isServerTraced) {
|
|
- size_t oldReadPosition = data.GetReadPosition();
|
|
- // padded size(4 bytes) of uint8_t
|
|
- data.RewindRead(data.GetDataSize() - PADDED_SIZE_OF_PARCEL);
|
|
- // the padded size of traceid
|
|
- uint8_t idLen = data.ReadUint8();
|
|
- if (idLen >= sizeof(HiTraceIdStruct)) {
|
|
- // padded size(4 bytes) of uint8_t
|
|
- data.RewindRead(data.GetDataSize() - PADDED_SIZE_OF_PARCEL - idLen);
|
|
- const uint8_t *idBytes = data.ReadUnpadBuffer(sizeof(HiTraceIdStruct));
|
|
- if (idBytes == nullptr) {
|
|
- ZLOGE(TRACE_LABEL, "%{public}s:idBytes is null", __func__);
|
|
- isServerTraced = 0;
|
|
- RecoveryDataAndFlag(data, flags, oldReadPosition, idLen);
|
|
- return isServerTraced;
|
|
- }
|
|
- HiTraceId traceId(idBytes, sizeof(HiTraceIdStruct));
|
|
- HiTraceChain::SetId(traceId);
|
|
- // tracepoint: SR(Server Receive)
|
|
- HiTraceChain::Tracepoint(HITRACE_TP_SR, traceId,
|
|
- "%s handle=%d,code=%u", (flags & TF_ONE_WAY) ? "ASYNC" : "SYNC",
|
|
- handle, code);
|
|
- }
|
|
+// bool HitraceInvoker::TraceServerReceieve(int32_t handle, uint32_t code, Parcel &data, uint32_t &flags)
|
|
+// {
|
|
+// bool isServerTraced = (flags & TF_HITRACE) != 0;
|
|
+// if (isServerTraced) {
|
|
+// size_t oldReadPosition = data.GetReadPosition();
|
|
+// // padded size(4 bytes) of uint8_t
|
|
+// data.RewindRead(data.GetDataSize() - PADDED_SIZE_OF_PARCEL);
|
|
+// // the padded size of traceid
|
|
+// uint8_t idLen = data.ReadUint8();
|
|
+// if (idLen >= sizeof(HiTraceIdStruct)) {
|
|
+// // padded size(4 bytes) of uint8_t
|
|
+// data.RewindRead(data.GetDataSize() - PADDED_SIZE_OF_PARCEL - idLen);
|
|
+// const uint8_t *idBytes = data.ReadUnpadBuffer(sizeof(HiTraceIdStruct));
|
|
+// if (idBytes == nullptr) {
|
|
+// ZLOGE(TRACE_LABEL, "%{public}s:idBytes is null", __func__);
|
|
+// isServerTraced = 0;
|
|
+// RecoveryDataAndFlag(data, flags, oldReadPosition, idLen);
|
|
+// return isServerTraced;
|
|
+// }
|
|
+// HiTraceId traceId(idBytes, sizeof(HiTraceIdStruct));
|
|
+// HiTraceChain::SetId(traceId);
|
|
+// // tracepoint: SR(Server Receive)
|
|
+// HiTraceChain::Tracepoint(HITRACE_TP_SR, traceId,
|
|
+// "%s handle=%d,code=%u", (flags & TF_ONE_WAY) ? "ASYNC" : "SYNC",
|
|
+// handle, code);
|
|
+// }
|
|
|
|
- RecoveryDataAndFlag(data, flags, oldReadPosition, idLen);
|
|
- }
|
|
- return isServerTraced;
|
|
-}
|
|
+// RecoveryDataAndFlag(data, flags, oldReadPosition, idLen);
|
|
+// }
|
|
+// return isServerTraced;
|
|
+// }
|
|
|
|
-void HitraceInvoker::TraceServerSend(int32_t handle, uint32_t code, bool isServerTraced, uint32_t flags)
|
|
-{
|
|
- if (isServerTraced) {
|
|
- // tracepoint: SS(Server Send)
|
|
- HiTraceChain::Tracepoint(HITRACE_TP_SS, HiTraceChain::GetId(), "%s handle=%d,code=%u",
|
|
- (flags & TF_ONE_WAY) ? "ASYNC" : "SYNC", handle, code);
|
|
- }
|
|
- HiTraceChain::ClearId();
|
|
-}
|
|
+// void HitraceInvoker::TraceServerSend(int32_t handle, uint32_t code, bool isServerTraced, uint32_t flags)
|
|
+// {
|
|
+// if (isServerTraced) {
|
|
+// // tracepoint: SS(Server Send)
|
|
+// HiTraceChain::Tracepoint(HITRACE_TP_SS, HiTraceChain::GetId(), "%s handle=%d,code=%u",
|
|
+// (flags & TF_ONE_WAY) ? "ASYNC" : "SYNC", handle, code);
|
|
+// }
|
|
+// HiTraceChain::ClearId();
|
|
+// }
|
|
} // namespace OHOS
|
|
diff --git a/ipc/native/src/mock/source/invoker_factory.cpp b/ipc/native/src/mock/source/invoker_factory.cpp
|
|
index 5b2946b..e539639 100644
|
|
--- a/ipc/native/src/mock/source/invoker_factory.cpp
|
|
+++ b/ipc/native/src/mock/source/invoker_factory.cpp
|
|
@@ -18,7 +18,7 @@
|
|
#include <memory>
|
|
#include <utility>
|
|
|
|
-#include "__mutex_base"
|
|
+// #include "__mutex_base"
|
|
#include "functional"
|
|
#include "iremote_invoker.h"
|
|
#include "unordered_map"
|
|
diff --git a/ipc/native/src/napi/src/napi_remote_object.cpp b/ipc/native/src/napi/src/napi_remote_object.cpp
|
|
index 1275bb3..4ff5260 100644
|
|
--- a/ipc/native/src/napi/src/napi_remote_object.cpp
|
|
+++ b/ipc/native/src/napi/src/napi_remote_object.cpp
|
|
@@ -22,7 +22,7 @@
|
|
#include <uv.h>
|
|
#include "access_token_adapter.h"
|
|
#include "hilog/log.h"
|
|
-#include "hitrace_meter.h"
|
|
+// #include "hitrace_meter.h"
|
|
#include "ipc_object_proxy.h"
|
|
#include "ipc_object_stub.h"
|
|
#include "ipc_skeleton.h"
|
|
diff --git a/ipc/native/src/napi/src/napi_remote_proxy.cpp b/ipc/native/src/napi/src/napi_remote_proxy.cpp
|
|
index 0239944..9b4c6d9 100644
|
|
--- a/ipc/native/src/napi/src/napi_remote_proxy.cpp
|
|
+++ b/ipc/native/src/napi/src/napi_remote_proxy.cpp
|
|
@@ -21,7 +21,7 @@
|
|
#include <uv.h>
|
|
#include "access_token_adapter.h"
|
|
#include "hilog/log.h"
|
|
-#include "hitrace_meter.h"
|
|
+// #include "hitrace_meter.h"
|
|
#include "ipc_object_proxy.h"
|
|
#include "ipc_object_stub.h"
|
|
#include "ipc_skeleton.h"
|
|
diff --git a/ipc/native/test/unittest/common/ipc_hitrace_unittest.cpp b/ipc/native/test/unittest/common/ipc_hitrace_unittest.cpp
|
|
index 8b008f5..77649f0 100644
|
|
--- a/ipc/native/test/unittest/common/ipc_hitrace_unittest.cpp
|
|
+++ b/ipc/native/test/unittest/common/ipc_hitrace_unittest.cpp
|
|
@@ -23,7 +23,7 @@
|
|
#include <securec.h>
|
|
#include <gtest/gtest.h>
|
|
#include "ipc_debug.h"
|
|
-#include "hitrace/trace.h"
|
|
+// #include "hitrace/trace.h"
|
|
#include "ipc_skeleton.h"
|
|
#include "ipc_object_proxy.h"
|
|
#include "test_service_skeleton.h"
|
|
diff --git a/services/dbinder/test/distributedtest/include/dbinder_test_service_skeleton.h b/services/dbinder/test/distributedtest/include/dbinder_test_service_skeleton.h
|
|
index 41fe229..40d5177 100644
|
|
--- a/services/dbinder/test/distributedtest/include/dbinder_test_service_skeleton.h
|
|
+++ b/services/dbinder/test/distributedtest/include/dbinder_test_service_skeleton.h
|
|
@@ -23,7 +23,7 @@
|
|
#include "iremote_proxy.h"
|
|
#include "hilog/log.h"
|
|
#include "log_tags.h"
|
|
-#include "hitrace/trace.h"
|
|
+// #include "hitrace/trace.h"
|
|
|
|
namespace OHOS {
|
|
class IDBinderTestService : public IRemoteBroker {
|
|
--
|
|
2.33.0
|
|
|