[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