<div dir="auto">Hi guys,<div dir="auto"><br></div><div dir="auto">I have two questions regarding implementation of org.freedesktop.DBus.Peer.GetMachineId() in libsystemd.</div><div dir="auto"><br></div><div dir="auto">1. The method only checks the '/etc/machine-id' file. If libsystemd, which contains sd-bus implementation, which is quite self-contained and systemd-independent, is used in a non-systemd linux environment, the file does not exist. Hence, GetMachineId fails. But there is '/var/lib/dbus/machine-id' available, created by dbus package itself.</div><div dir="auto"><br></div><div dir="auto">Shouldn't the method also check the presence of the latter file if the former one doesn't exist? I can prepare the patch if it's ok.</div><div dir="auto"><br></div><div dir="auto">2. Error handling issue. If the file is not there, the corresponding C function returns error value, which winds all the way up to sd_bus_process() which returns error. This seems to me like mixing levels of errors. I thought that when sd_bus_process returns error, we have serious problem because something bus infrastructure-related failed. Shouldn't the method just return a D-Bus error reply and in C function return OK (because the method body was found and executed, so from sd-bus view things are fine, but on the application level the method could not finish properly, so it sends error message to the caller)? Also here I can prepare a patch, if it's ok.</div><div dir="auto"><br></div><div dir="auto">Thanks, and cheers.</div><div dir="auto"><br></div><div dir="auto">Stanislav.</div><div dir="auto"><br></div></div>