[systemd-devel] [PATCH] udev: Fix ping timeout when settle timeout is 0
David Herrmann
dh.herrmann at gmail.com
Wed Apr 22 10:12:17 PDT 2015
Hi
On Mon, Apr 20, 2015 at 6:58 PM, David Herrmann <dh.herrmann at gmail.com> wrote:
> Hi
>
> On Sun, Apr 19, 2015 at 1:49 AM, Nir Soffer <nirsof at gmail.com> wrote:
>> When running udevadm settle --timeout=0, the ping always times out, and
>> udevadm will return 0 without checking the queue state.
>>
>> Since zero timeout is considered as unlimited timeout, we use now
>> unlimited ping timeout.
>> ---
>> src/udev/udevadm-settle.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c
>> index 2c84ada..42eeee4 100644
>> --- a/src/udev/udevadm-settle.c
>> +++ b/src/udev/udevadm-settle.c
>> @@ -107,7 +107,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) {
>>
>> uctrl = udev_ctrl_new(udev);
>> if (uctrl != NULL) {
>> - if (udev_ctrl_send_ping(uctrl, timeout) < 0) {
>> + int ping_timeout = timeout > 0 ? (int)timeout : -1;
>> +
>> + if (udev_ctrl_send_ping(uctrl, ping_timeout) < 0) {
>> log_debug("no connection to daemon");
>> udev_ctrl_unref(uctrl);
>> return EXIT_SUCCESS;
>
> This looks much more reasonable to me. I'd prefer some sanity-timeout,
> though. 1s or 5s or something like this. Kay?
Applied.
Thanks
David
More information about the systemd-devel
mailing list