提交 f65a2a12 编写于 作者: M Martin Kletzander

security: Add virSecurityDomainSetDirLabel

That function can be used for setting security labels on arbitrary
directories.
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
上级 7b6953bc
...@@ -1026,6 +1026,7 @@ virSecurityDriverLookup; ...@@ -1026,6 +1026,7 @@ virSecurityDriverLookup;
# security/security_manager.h # security/security_manager.h
virSecurityManagerCheckAllLabel; virSecurityManagerCheckAllLabel;
virSecurityManagerClearSocketLabel; virSecurityManagerClearSocketLabel;
virSecurityManagerDomainSetDirLabel;
virSecurityManagerGenLabel; virSecurityManagerGenLabel;
virSecurityManagerGetBaseLabel; virSecurityManagerGetBaseLabel;
virSecurityManagerGetDOI; virSecurityManagerGetDOI;
......
...@@ -118,6 +118,9 @@ typedef int (*virSecurityDomainSetImageLabel) (virSecurityManagerPtr mgr, ...@@ -118,6 +118,9 @@ typedef int (*virSecurityDomainSetImageLabel) (virSecurityManagerPtr mgr,
typedef int (*virSecurityDomainRestoreImageLabel) (virSecurityManagerPtr mgr, typedef int (*virSecurityDomainRestoreImageLabel) (virSecurityManagerPtr mgr,
virDomainDefPtr def, virDomainDefPtr def,
virStorageSourcePtr src); virStorageSourcePtr src);
typedef int (*virSecurityDomainSetDirLabel) (virSecurityManagerPtr mgr,
virDomainDefPtr def,
const char *path);
struct _virSecurityDriver { struct _virSecurityDriver {
...@@ -168,6 +171,8 @@ struct _virSecurityDriver { ...@@ -168,6 +171,8 @@ struct _virSecurityDriver {
virSecurityDomainSetHugepages domainSetSecurityHugepages; virSecurityDomainSetHugepages domainSetSecurityHugepages;
virSecurityDriverGetBaseLabel getBaseLabel; virSecurityDriverGetBaseLabel getBaseLabel;
virSecurityDomainSetDirLabel domainSetDirLabel;
}; };
virSecurityDriverPtr virSecurityDriverLookup(const char *name, virSecurityDriverPtr virSecurityDriverLookup(const char *name,
......
...@@ -991,3 +991,20 @@ virSecurityManagerSetHugepages(virSecurityManagerPtr mgr, ...@@ -991,3 +991,20 @@ virSecurityManagerSetHugepages(virSecurityManagerPtr mgr,
return 0; return 0;
} }
int
virSecurityManagerDomainSetDirLabel(virSecurityManagerPtr mgr,
virDomainDefPtr vm,
const char *path)
{
if (mgr->drv->domainSetDirLabel) {
int ret;
virObjectLock(mgr);
ret = mgr->drv->domainSetDirLabel(mgr, vm, path);
virObjectUnlock(mgr);
return ret;
}
return 0;
}
...@@ -150,4 +150,8 @@ int virSecurityManagerRestoreImageLabel(virSecurityManagerPtr mgr, ...@@ -150,4 +150,8 @@ int virSecurityManagerRestoreImageLabel(virSecurityManagerPtr mgr,
virDomainDefPtr vm, virDomainDefPtr vm,
virStorageSourcePtr src); virStorageSourcePtr src);
int virSecurityManagerDomainSetDirLabel(virSecurityManagerPtr mgr,
virDomainDefPtr vm,
const char *path);
#endif /* VIR_SECURITY_MANAGER_H__ */ #endif /* VIR_SECURITY_MANAGER_H__ */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册