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".
[snipped]
>
> 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

-- 
John Ellis <johne bellatlantic net>

http://gqview.sourceforge.net <GQview homepage>
http://www.netpedia.net/hosting/gqview  <GQmpeg + everything else>




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