diff options
author | Julia Kartseva <hex@fb.com> | 2021-04-19 13:27:07 -0700 |
---|---|---|
committer | Julia Kartseva <hex@fb.com> | 2021-04-26 16:26:24 -0700 |
commit | 3d027d4d60d37de89eaebf2d106ec0c6a492db72 (patch) | |
tree | 990459a5cc332041be344612fe37312591244b0b /src/shared/bpf-link.c | |
parent | 8dd210ab666201a236890b17bc74032bf71d6f73 (diff) | |
download | systemd-3d027d4d60d37de89eaebf2d106ec0c6a492db72.tar.gz |
shared, bpf: add bpf link serialization
core: serialize socket_bind bpf links
Diffstat (limited to 'src/shared/bpf-link.c')
-rw-r--r-- | src/shared/bpf-link.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/shared/bpf-link.c b/src/shared/bpf-link.c index 94d1a8c7ac..f718cb7d2d 100644 --- a/src/shared/bpf-link.c +++ b/src/shared/bpf-link.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ #include "bpf-link.h" +#include "serialize.h" bool can_link_bpf_program(struct bpf_program *prog) { _cleanup_(bpf_link_freep) struct bpf_link *link = NULL; @@ -14,6 +15,21 @@ bool can_link_bpf_program(struct bpf_program *prog) { return libbpf_get_error(link) == -EBADF; } +int serialize_bpf_link(FILE *f, FDSet *fds, const char *key, struct bpf_link *link) { + int fd; + + assert(key); + + if (!link) + return -ENOENT; + + if (libbpf_get_error(link) != 0) + return -EINVAL; + + fd = bpf_link__fd(link); + return serialize_fd(f, fds, key, fd); +} + struct bpf_link *bpf_link_free(struct bpf_link *link) { /* bpf_link__destroy handles link == NULL case */ (void) bpf_link__destroy(link); |