Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
communication_ipc
提交
a5da7c3c
C
communication_ipc
项目概览
OpenHarmony
/
communication_ipc
大约 1 年 前同步成功
通知
20
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
communication_ipc
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a5da7c3c
编写于
4月 28, 2022
作者:
Y
yangguangzhao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Rpc use dynamic permission
Signed-off-by:
N
yangguangzhao
<
yangguangzhao1@huawei.com
>
上级
f2e814a3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
1 deletion
+23
-1
interfaces/innerkits/libdbinder/include/dbinder_service.h
interfaces/innerkits/libdbinder/include/dbinder_service.h
+1
-1
services/dbinder/dbinder_service/src/dbinder_sa_death_recipient.cpp
...binder/dbinder_service/src/dbinder_sa_death_recipient.cpp
+15
-0
services/dbinder/dbinder_service/src/socket/dbinder_remote_listener.cpp
...er/dbinder_service/src/socket/dbinder_remote_listener.cpp
+7
-0
未找到文件。
interfaces/innerkits/libdbinder/include/dbinder_service.h
浏览文件 @
a5da7c3c
...
@@ -117,6 +117,7 @@ public:
...
@@ -117,6 +117,7 @@ public:
bool
DetachBusNameObject
(
IPCObjectProxy
*
proxy
);
bool
DetachBusNameObject
(
IPCObjectProxy
*
proxy
);
std
::
string
CreateDatabusName
(
int
uid
,
int
pid
);
std
::
string
CreateDatabusName
(
int
uid
,
int
pid
);
bool
DetachProxyObject
(
binder_uintptr_t
binderObject
);
bool
DetachProxyObject
(
binder_uintptr_t
binderObject
);
std
::
string
QueryBusNameObject
(
IPCObjectProxy
*
proxy
);
private:
private:
static
std
::
shared_ptr
<
DBinderRemoteListener
>
GetRemoteListener
();
static
std
::
shared_ptr
<
DBinderRemoteListener
>
GetRemoteListener
();
...
@@ -157,7 +158,6 @@ private:
...
@@ -157,7 +158,6 @@ private:
std
::
string
&
remoteDeviceId
,
int
pid
,
int
uid
);
std
::
string
&
remoteDeviceId
,
int
pid
,
int
uid
);
bool
IsDeviceIdIllegal
(
const
std
::
string
&
deviceID
);
bool
IsDeviceIdIllegal
(
const
std
::
string
&
deviceID
);
bool
AttachBusNameObject
(
IPCObjectProxy
*
proxy
,
const
std
::
string
&
name
);
bool
AttachBusNameObject
(
IPCObjectProxy
*
proxy
,
const
std
::
string
&
name
);
std
::
string
QueryBusNameObject
(
IPCObjectProxy
*
proxy
);
std
::
string
GetDatabusNameByProxy
(
IPCObjectProxy
*
proxy
);
std
::
string
GetDatabusNameByProxy
(
IPCObjectProxy
*
proxy
);
uint32_t
GetSeqNumber
();
uint32_t
GetSeqNumber
();
bool
RegisterRemoteProxyInner
(
std
::
u16string
serviceName
,
binder_uintptr_t
binder
);
bool
RegisterRemoteProxyInner
(
std
::
u16string
serviceName
,
binder_uintptr_t
binder
);
...
...
services/dbinder/dbinder_service/src/dbinder_sa_death_recipient.cpp
浏览文件 @
a5da7c3c
...
@@ -16,9 +16,12 @@
...
@@ -16,9 +16,12 @@
#include "dbinder_sa_death_recipient.h"
#include "dbinder_sa_death_recipient.h"
#include "dbinder_service.h"
#include "dbinder_service.h"
#include "dbinder_log.h"
#include "dbinder_log.h"
#include "ISessionService.h"
#include "log_tags.h"
#include "log_tags.h"
namespace
OHOS
{
namespace
OHOS
{
using
Communication
::
SoftBus
::
ISessionService
;
#ifndef TITLE
#ifndef TITLE
#define TITLE __PRETTY_FUNCTION__
#define TITLE __PRETTY_FUNCTION__
#endif
#endif
...
@@ -51,5 +54,17 @@ void DbinderSaDeathRecipient::OnRemoteDied(const wptr<IRemoteObject> &remote)
...
@@ -51,5 +54,17 @@ void DbinderSaDeathRecipient::OnRemoteDied(const wptr<IRemoteObject> &remote)
(
void
)
dBinderService
->
DetachBusNameObject
(
proxy
);
(
void
)
dBinderService
->
DetachBusNameObject
(
proxy
);
(
void
)
dBinderService
->
DetachProxyObject
(
binderObject_
);
(
void
)
dBinderService
->
DetachProxyObject
(
binderObject_
);
std
::
shared_ptr
<
ISessionService
>
softbusManager
=
ISessionService
::
GetInstance
();
if
(
softbusManager
==
nullptr
)
{
DBINDER_LOGE
(
"fail to get softbus service"
);
return
;
}
std
::
string
sessionName
=
dBinderService
->
QueryBusNameObject
(
proxy
);
if
(
sessionName
.
empty
())
{
DBINDER_LOGE
(
"proxy sessionName not found"
);
return
;
}
softbusManager
->
RemovePermission
(
sessionName
);
}
}
}
// namespace OHOS
}
// namespace OHOS
services/dbinder/dbinder_service/src/socket/dbinder_remote_listener.cpp
浏览文件 @
a5da7c3c
...
@@ -39,6 +39,13 @@ bool DBinderRemoteListener::StartListener(std::shared_ptr<DBinderRemoteListener>
...
@@ -39,6 +39,13 @@ bool DBinderRemoteListener::StartListener(std::shared_ptr<DBinderRemoteListener>
DBINDER_LOGE
(
"fail to get softbus service"
);
DBINDER_LOGE
(
"fail to get softbus service"
);
return
false
;
return
false
;
}
}
int
pid
=
static_cast
<
int
>
(
getpid
());
int
uid
=
static_cast
<
int
>
(
getuid
());
if
(
softbusManager_
->
GrantPermission
(
uid
,
pid
,
OWN_SESSION_NAME
)
!=
ERR_NONE
)
{
DBINDER_LOGE
(
"fail to Grant Permission softbus name %{public}s"
,
OWN_SESSION_NAME
.
c_str
());
return
false
;
}
int
ret
=
softbusManager_
->
CreateSessionServer
(
OWN_SESSION_NAME
,
PEER_SESSION_NAME
,
listener
);
int
ret
=
softbusManager_
->
CreateSessionServer
(
OWN_SESSION_NAME
,
PEER_SESSION_NAME
,
listener
);
if
(
ret
!=
0
)
{
if
(
ret
!=
0
)
{
DBINDER_LOGE
(
"fail to create softbus server with ret = %{public}d"
,
ret
);
DBINDER_LOGE
(
"fail to create softbus server with ret = %{public}d"
,
ret
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录