Re: Fixing gvfs-backend-afc for iPhone/iPod Touch access



On Thu, 2009-07-30 at 11:32 +0200, Martin S. wrote:
> Thus I ask for help, especially for the volume monitor code.
> 
> The backend currently detects a plugged in device however one ends up
> with:
> - Volume (is the enclosing volume for the mount)
>   - Mount (seems to be the mount from afc volume)
> - Mount (as if mounted using afc://uuid/ directly)
> 

Ok, I think I know what happens.

The volume monitor creates the GProxyShadowMount while at the same time
due to the afc:// activiation_root, the afc backend is started and
creates it's own mountpoint.

Apparently this is the same thing that happens with the gphoto2 backend.
As seen in the "gvfs-mount -l" output below gphoto2 also creates two
mounts for the same thing... I wonder if that is the desired.

...
Volume(0): Apple, Inc. iPod
  Type: GProxyVolume (GProxyVolumeMonitorGPhoto2)
  Mount(0): Apple, Inc. iPod -> gphoto2://[usb:001,022]/
    Type: GProxyShadowMount (GProxyVolumeMonitorGPhoto2)
Volume(1): iPhone
  Type: GProxyVolume (GProxyVolumeMonitorAfc)
  Mount(0): iPhone -> afc://my-40-digit-uuid-here/
    Type: GProxyShadowMount (GProxyVolumeMonitorAfc)
Mount(2): Martin’s iPod -> afc://my-40-digit-uuid-here/
  Type: GDaemonMount
Mount(3): Apple, Inc. iPod -> gphoto2://[usb:001,022]/
  Type: GDaemonMount
...

> As the gvfs-backend knows how to set the right display name and icons,
> it would desired if it would create the mount but with the volume as the
> parent.
> 
> When removing the device the volume monitor mount and volume is removed
> and disappears while the backend mount is still sitting there and
> causing issues when plugging the device back in.
> 

I think the gphoto2 backend also listens to HAL device removed events
and does a very nifty "exit(-1)" if the device the backend handles was
removed...

The afc backend does not do this, the backend daemon is still there and
this is probably the reason why the mount is still there.

What is the supposed correct solution to this?
How to get the afc backend daemon's mount with nice display_name to be
the one that is enclosed by the volume?
Is the gphoto2 backend/volume-monitor double mount thing and exit()
behaviour correct?

--- Martin S.




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