Re: drivemount_applet brokenness

Peter Hawkins wrote:
> The logic the drivemount_applet uses for the "non autofs-friendly" is_mounted check is flawed:
>       {
>       gint b, p;
>       b = get_device(dd->mount_base);
>       p = get_device(dd->mount_point);
>       if (b == p || p == -1 || b == -1)
>               return FALSE;
>       else
>               return TRUE;
>       }
> dd->mount_base is always set to "/mnt".
> The logic here will obviously fail if your floppy mount point is /floppy and you mount something else (like a different hard drive partition) on /mnt.
> The problem I have here is that I can't determine what the correct behaviour should be. I can think up several solutions:
> 1) Remove the non-autofs friendly mount check from the code.

This method is slower (it runs the mount binary to check the status).

> 2) Allow mount_base to be configurable. Probably next best.

More user confusion :)

> 3) Set mount_base to be "/", always. Not so good.

Can have the same problem as the hard coded in /mnt.

> 4) Set mount_base to be mount_point + "/..". This looks good to me...

I just commited a fix to CVS HEAD that uses the #4 method above, please test it
when you have the time.


John Ellis <johne bellatlantic net> <GQview homepage>  <GQmpeg + everything else>

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]