mutter-moblin automatically adds that button itself. Because it didn't
recognize that we also add it ourselves, we ended up with two buttons
called "Dismiss".
The way to avoid this and having a "Dismiss" button in other environments
is to use the ID "default" for our "Dismiss" button, then it'll be ignored
by mutter-moblin.
When glib logging is invoked, it check the application name and complains
if not set:
** (process:10130): WARNING **: g_set_application_name not set.
With output redirection we hide this in the command line, but it
showed up in client-test when the system was in a state were another
glib WARNING was triggered.
This patch sets the unlocalized program name instead of using a
localized application name, because we don't have and don't need
localization for these two programs. That seems to satisfy glib.
With "syncevolution" using the D-Bus server and thus the keyring
by default, the client-test executable should better also use
the keyring. Otherwise setting the password via the command line
will render a test config unusable for client-test.
The patch turns out to be very easy: reusing the code in
CmdlineSyncClient via changing the inheritance of the sync engine used
by client-test-app.cpp plus adapting compile flags is enough.
A user reported that the default 1 minute resend interval did not work
for him with his own Funambol server installation. The Funambol
developers are notified, but won't be able to do much about this
in the near future.
Therefore this patch disables message resend in the Funambol server
template. Existing configurations have to be updated manually, both
to suppress the resending and to enable it again later.
The default resend interval is also increased from 1 minute to 2
minutes, to help other slow servers which might have problems handling
resends when they arrive to quickly.
This is a python script that tries with all possible configuration
combinations for a phone, once found the corresponding configuration and
the configuration template can be generated.
The script is installed as 'syncevo-phone-config'
Since we support both evolution and file backend for supported test
case in client-test.
It might be useful running client-test with calendar+todo test cases
using file backend. (It supports evolution backend only without this
patch).
The tests were still expecting the output to appear at level INFO.
They also didn't properly flush the (now) buffered stdout logging.
Added a test which check for this particular feature.
Actually found by unit test. The recently introduced check for a valid
digit before unit characters was also applied to + and should have.
Also added a test case for an invalid unit character without digit.
When running command line arguments in dbus server, it is necessary
to pass environment variables in the command line environment.
The temporary solution is just to collect possible used environment
variables to dbus server. To support it, a new argument of dbus
method 'Session.execute' is added to pass the map of environment
variables.
When we declare X-EVOLUTION-UI-SLOT as parameter in our DevInf, then
the N85 doesn't send telephone and email addresses to us. It seems to
get confused about what this unknown parameter is and then disables
the properties it is declared for.
As a workaround, do not "show" the parameter (per-parameter Synthesis
config option), but keep using it. The implication of that change is
minimal. The X-EVOLUTION-UI-SLOT value is used to preserve the order
of entries in the Evolution GUI. Declaring that our client supports
the value is only relevant when not sending it (because then a server
knows that it can drop its own value), but because we always send it,
we don't need to declare it.
In theory, a peer might avoid sending this value to us if we don't
declare it. In practice, peers are not that sophisticated, for good
reasons (like peers not declaring all of their properties). Synthesis
itself definitely still encodes the value even if not declared by
its peer.
The version of default dbus-glib package is 0.80 on Ubuntu 9.10.
This version has bugs of specialized types which prevents sync ui
using specialized types. So the fix is to define our used types
instead of predefined specialized types of dbus-glib.
If there is any error during executing command line arguments in
dbus server, it should catch the exception and set the error code
in the Status. Thus command line can judge the error code and
return the correct value to system.
When user didn't provide password, sync ui sends a hash without
'password' key-value pair in the response. Abort the current sync
process under this situation.
Going to configuration view and back without selecting any
configuration would set "sync now" button sensitive. Clicking
the button would crash the ui.
This commit fixes both issues.
Only apply conversion of alarm time to UTC time when server is
Mobical.net. The way is to define a global flag and set the flag
when 'remoterule' of 'Mobical' is matched.
The global flag is declared as a context variable and the script
reads it via built-in function 'SESSIONVAR'.
Mobical.net syncML server only accepts 'trigger' time
of alarms as 'UTC' time. If 'trigger' time is a duration,
it ignores that.
To prevent this, when the outgoing format is 'vCalendar1.0',
convert the duration time into 'UTC' time.
These extensions are useful when acting as server for a Synthesis iPhone
client, because then the server can preserve them.
But they are also confusing Evolution when vCards are imported with
these extensions are set. For example, an
ADR;TYPE=X-Synthesis-Ref0;TYPE=HOME is not shown as home address in
the GUI.
The correct solution would be to disable the extensions only when
writing into Evolution. We cannot do that due to technical limitations
("rule" parameter only works on properties).
So as a short term solution, choose the lesser evil and comment
out the extensions. Making Evolution work right is more important
than incremental enhancements of the server.
Our test data uses a UID with special characters, because that happens to
break "dumb" XML encoders/decoders and we want to find such issues. It also
breaks the EDS CalDAV backend. It can create such an event, but then cannot
access it because the UID becomes of a URL used by WebDAV, and these special
characters are not escaped there (seen in evolution-data-server console output).
As a workaround, I simplified the test data to not use such a complicated UID
when CLIENT_TEST_SIMPLE_UID=1 is set. Still doesn't work, but the patch may
proof useful, so keep it.
The issue is to access an invalid memory. The reason is that:
DBusClientCall creates a CallbackData for each dbus call. The
CallbackData itself references the DBusClientCall object. This
object is used to get returned value once the dbus call returns.
However, the typical usage is that DBusClientCall object
is a local variable allocated on the stack. So it is invalid after
existing the stack frame. If using this object in the dbus call
handler, cause a severe problem of reading invalid memory.
The solution is to store an always alive connection object in the
CallbackData instead of DBusClientCall object.
Currently the signature of argument 'handler' of 'InfoRequest'
is 's' on dbus server and sync ui. However, in the dbus api document,
its signature is still 'o'. Change it.
The reason for using a string and not an object path is that
when sending the initial request, the parameter has to be
empty. "" for a string is valid, but seems to be problematic
for an object path.
When passwords in the config are not set, the daemon asks them from
clients like command line. Command line should react and let
user input passwords and then send responses to the daemon.
Command line listens to 'Server.InfoRequest' signal and only handles
password requests from sessions created for command line in the daemon.
If command line dies in the process of inputting passwords, the daemon
always waits for it so expand current timeout mechanism into this
process. Otherwise, the daemon waits permanently.
There is a regression caused by a string exception
"basic_string::_S_construct NULL not valid". This is because
I push back a non-existing string into vector when collecting
converted command line arguments.