embox

Форк
0
/
sock_xattr.c 
56 строк · 1.4 Кб
1
/**
2
 * @file
3
 * @brief
4
 *
5
 * @author  Anton Kozlov
6
 * @date    03.12.2013
7
 */
8

9
#include <net/sock.h>
10
#include <util/member.h>
11
#include <fs/xattr_list.h>
12
#include <kernel/task/resource/security.h>
13
#include <security/smac/smac.h>
14

15
#include <kernel/task/resource/idesc.h>
16

17
static struct xattr_list *sock_xattr_list(struct idesc *idesc) {
18
	struct sock *sock;
19

20
	assert(idesc);
21

22
	sock = member_cast_out(idesc, struct sock, idesc);
23

24
	return &sock->sock_xattr.xattr_list;
25
}
26

27
static int sock_getxattr(struct idesc *idesc, const char *name, void *value,
28
		size_t size) {
29
	return getxattr_generic(sock_xattr_list(idesc), name, value, size);
30
}
31

32
static int sock_setxattr(struct idesc *idesc, const char *name,
33
		const void *value, size_t size, int flags) {
34
	return setxattr_generic(sock_xattr_list(idesc), name, value, size, flags);
35
}
36

37
static int sock_listxattr(struct idesc *idesc, char *list, size_t size) {
38
	return listxattr_generic(sock_xattr_list(idesc), list, size);
39
}
40

41
static int sock_removexattr(struct idesc *idesc, const char *name) {
42
	return removexattr_generic(sock_xattr_list(idesc), name);
43
}
44

45
static const struct idesc_xattrops sock_xattrops = {
46
	.getxattr = sock_getxattr,
47
	.setxattr = sock_setxattr,
48
	.listxattr = sock_listxattr,
49
	.removexattr = sock_removexattr,
50
};
51

52
void sock_xattr_init(struct sock *sock) {
53
	sock->idesc.idesc_xattrops = &sock_xattrops;
54

55
	xattr_list_init(&sock->sock_xattr.xattr_list);
56
}
57

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.