Re: WebDAV extension for Nautilus - GNOME gvfs - Riccardo Tribbia



Hello Riccardo,

I'm pleased to read your interest in extending gvfs.

On Wed, 2010-12-15 at 16:18 +0100, Riccardo Tribbia wrote:
> If I have understood a bit of the GNOME evolution, the software
> component that make all webdav stuff is gvfs backend dav, isn't it? 

That's correct.

> And gvfs is the abstraction layer for all implemented protocols that
> offers file system support, isn't it?

GVfs is actually a set of modules extending the GIO subsystem. GIO API
then provides functions that clients are using.

> So the question is: Which way can we follow to extend this module?

The best way is to file separate patches in gnome bugzilla or publish
your git branch on a some public place.

> The functionalities that our implementation has are:
> -> after authorization request (webdav username+password) if the user
> select a "Crypted folder" (in particular OverEncrypted folder) the
> server answers with a "CHECKPIN" request (no webdav standard request,
> our implementation, obviously). 
>         So the extended module would prompt a popup to the user with
> PIN request and after that the client have to react in consequence. 

We've been facing similar issue before - server asking for password (or
any question generally) anytime - accessing specific folder, reading
data, writing data. However due to current GIO design this is not
possible, backends can only ask for input during mount.

This is subject to change in the future, see bug
https://bugzilla.gnome.org/show_bug.cgi?id=590007. Currently this is not
implemented neither on backend or client side.

>         (wonderful is that this PIN can be saved in keyring for the
> entire session.. :-) )

That's not difficult to implement.

> ->PUT / COPY webdav commands would also encrypt/decrypt resources in
> article specified way.

You mean during transfer from client to server?

> Or any specific documentation or link for this question?

You can have a look at the existing code for the beginning. GIO API
documentation could come handy too:
http://library.gnome.org/devel/gio/unstable/

> Are we following the right way?

Yes, you are.

> And last but phisically the most important: Which is the way to
> install a single gvfs new module? Have we to recompile all gvfs lib?
> other package or lib?

Having gvfs backends out of the tree is currently not possible. You can
however add your module in a gvfs tree and base it on an existing
backend (have a look at localtest for example).

This sounds like you want to write a new backend. As I understand
correctly, your server implementation is just an extension to current
WebDAV protocol, right? It would make more sense then to modify the
existing dav backend, in a compatible way (autodetection of server
capabilities). That way we all can easily benefit from the changes.


For more information you can ask here or send a message to Christian
Kellner <gicmo gnome org> who worked on the dav backend before.

-- 
Tomas Bzatek <tbzatek redhat com>



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