如何使用 sdbus 发送 Unix 文件描述符?
How do I send a Unix file descriptor using sdbus?
我正在尝试使用 sdbus(sd-bus?)创建一个 dbus 服务,它将用一个代表套接字的 fd 进行响应。
我的客户端能够接收字符串和整数,所以我已经掌握了基础知识。我正在寻找的是如何将 fd 打包为响应消息中的 "h" 类型。
好像不需要什么魔法
服务器创建套接字并以最明显的方式回复客户端(伪代码):
fd = socket(AF_UNIX, SOCK_STREAM, 0);
sd_bus_reply_method_return(message, "h", fd);
客户端只需要 dup() 传入的 fd,然后就可以访问它:
int fd;
int dup_fd;
sd_bus_message_read(message, "h", &fd);
dup_fd = dup(fd);
我正在尝试使用 sdbus(sd-bus?)创建一个 dbus 服务,它将用一个代表套接字的 fd 进行响应。
我的客户端能够接收字符串和整数,所以我已经掌握了基础知识。我正在寻找的是如何将 fd 打包为响应消息中的 "h" 类型。
好像不需要什么魔法
服务器创建套接字并以最明显的方式回复客户端(伪代码):
fd = socket(AF_UNIX, SOCK_STREAM, 0);
sd_bus_reply_method_return(message, "h", fd);
客户端只需要 dup() 传入的 fd,然后就可以访问它:
int fd;
int dup_fd;
sd_bus_message_read(message, "h", &fd);
dup_fd = dup(fd);