Hi Milan,
I did some debugging too and I could get it working by fixing some bug
in e_webdav_session_extract_privilege_simple in e-webdav-session.c. I
believe the problem is the following:
When the privlieges are retrieved from the server, the relevant XML
snippet looks like this:
<D:current-user-privilege-set>
<D:privilege>
<D:read />
<D:write />
</D:privilege>
</D:current-user-privilege-set>
As you can see, the privilege node contains the two child nodes,
however when it's passed to e_webdav_session_extract_privilege_simple,
the for loop stops after evaluating the first one due to the break
statement and thus skips any further privileges.
So basically it boiled down to
e_webdav_session_extract_privilege_simple only returning a single
privilege and not the whole set which I think was the bug. Maybe the
for loop in e_webdav_session_current_user_privilege_set_cb was supposed
to deal with this...?
Anyway, my C is pretty rusty so I'd not consider my hacky workaround
code any good but if you think it is of any use to clarify the problem,
I can send you a diff.
Cheers,
Peter
On Tue, 2020-01-14 at 11:28 +0100, Milan Crha via evolution-list wrote:
> On Tue, 2020-01-14 at 07:43 +0000, Krauß, Peter (SCC) via evolution-
> list wrote:
> > I did indeed do several restarts (without success).
>
> Hi,
> just to be clear, I didn't mean restart of the whole machine, but
> restart of the calendar factory only, that is, of the
> evolution-calendar-factory process.
>
> You even do not need to kill the process to be restarted, just close
> evolution, open terminal and execute there:
>
> $ /usr/libexec/evolution-calendar-factory -w
>
> then wait for few seconds and only then start Evolution. Though I
> think
> you captured the log from the initial email in a very similar way and
> it still did not work, thus this won't work as well.
>
> Maybe you can run DBus monitor and search what it passed around. You
> might focus on "writable" and "Writable" (quotes for clarity only)
> signals/properties. The command is:
>
> $ dbus-monitor
>
> then I see for example this after I open a calendar which had not
> been
> opened yet:
>
> > signal time=1578997003.522247 sender=:1.181 -> destination=(null
> > destination) serial=878
> > path=/org/gnome/evolution/dataserver/Subprocess/6081/25;
> > interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
> > string "org.gnome.evolution.dataserver.Calendar"
> > array [
> > dict entry(
> > string "Writable"
> > variant boolean true
> > )
> > ]
> > array [
> > ]
>
> followed by a method invocation response:
>
> > method return time=1578997003.522745 sender=:1.181 ->
> > destination=:1.226 serial=879 reply_serial=42
> > array [
> > string "alarm-email-address"
> > string "''"
> > string "cache-dir"
> > .....
> > string "writable"
> > string "true"
> > ]
>
> this is how the backends notify the clients about their state, one of
> them being writability. It's hard to recognize which calendar the
> response belongs to, that why I'd try on one, which is not opened
> yet.
> Note the dbus-monitor output will be very chatty, quite many things
> sends something over D-Bus all the time, thus expect interleaved
> output.
> Bye,
> Milan
>
> _______________________________________________
> evolution-list mailing list
> [email protected]
> To change your list options or unsubscribe, visit ...
> https://mail.gnome.org/mailman/listinfo/evolution-list
--
Peter Krauß <[email protected]>
Karlsruher Institut für Technologie (KIT)
Steinbuch Centre for Computing (SCC)
Forschungsgruppe Cloud Computing
Hermann-von-Helmholtz-Platz 1
Gebäude 449/R105
76344 Eggenstein-Leopoldshafen
Telefon: +49(0)721/608-26578
E-Mail: [email protected]
Web: http://www.kit.edu/
KIT - Universität des Landes Baden-Württemberg und nationales
Forschungszentrum in der Helmholtz-Gemeinschaft
_______________________________________________
evolution-list mailing list
[email protected]
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-list