如何使用sdbus发送Unix文件描述符?

时间:2016-11-29 15:06:10

标签: c linux dbus systemd

我正在尝试使用sdbus(sd-bus?)创建一个dbus服务,它将使用代表套接字的fd进行响应。

我的客户端能够接收字符串和整数,所以我有基本知识。我正在寻找的是如何在响应消息中将fd打包为“h”类型。

1 个答案:

答案 0 :(得分:1)

似乎没有必要的魔力。

服务器创建套接字并以最明显的方式回复客户端(伪代码):

fd = socket(AF_UNIX, SOCK_STREAM, 0);
sd_bus_reply_method_return(message, "h", fd);

客户端只需要复制()传入的fd,然后就可以访问它了:

int fd;
int dup_fd;
sd_bus_message_read(message, "h", &fd);
dup_fd = dup(fd);