Synthesis SyncML Server History
===============================
3.4.1.8 2017-11-15 - syncserv_odbc_new.xml: some minor corrections (geo fillempty)
- syncserv_odbc_old.xml (for db version=0) will be copied as well
- admin.php: will take old/new config file according to db version
- support for extended license range > 2021-03
- admin.php: adapted for extended license duration (licentype>=8)
- admin.php: globallogs can be switched on/off for sync_log path
- syncserv_odbc_plugin.xml tests -> ok
- some more globallogs info added (confOK, crcOK, serOK, fOK)
- syncappbase: chkFile "File not found" added
- chkFile -> TDebugLogger
- globallogs file parser added, fGlobalDebugLogs() is a method now
3.4.1.7 2017-08-10 - syncserv_odbc_new.xml: configuration extended for VCARD 3.0 / VCALENDAR 2.0
- mysql_add.sql: additional db tables added
- admin.php: switches for debug level and db version added
- index.php: flags selectors added for new events
- sysync2.conf fix
3.4.1.5 2017-04-19 - "WET" timezone problem fixed for VCALENDAR 1.0, UTC preferred
- tz_table.h adaptions, tz_system ordering
- FoundTZ() TimeZoneNameToContext() ordering changed
- some logging added, "native" TAG introduced
- "IST" timezone fix
3.4.0.97 2016-08-29 admin.php adaptions
- several text changes
- smaller SySync Server title text
- admin password: show ok/error directly
- Secure Shell (ssh) password block added
- "sshpass" introduced
- default ssh password changed
- Internet block: IP line heights increased
- Server Connection block added (for showing/removing unused pipes)
3.4.0.96 2016-08-15 index.php UTF-8 adaptions
3.4.0.92 2016-06-10 support for WLAN USB adapter EDIMAX EW-7811-Un
- can be used as WLAN hotspot
- IP forwarding to cable internet
- admin.php extension for SSID, password and IP addresses
3.4.0.91 2016-04-20 MD5 masquerade adaptions
3.4.0.88 2016-03-29 support of extended admin.php for server name,
licensetext/licensecode and admin pwd
3.4.0.85 2016-02-22 config file with external file suppport for
licensetext/licensecode
- Syntax "file=" can be used
3.4.0.83 2016-01-11 Port for Raspberry Pi
- ARM V7 platform support
- adaptions for PHP5
3.4.0.15 2010-08-29 Feature and Bugfix Release of Synthesis SyncML Server 3.4
New features:
- enhanced remote rule handling: All remote rules that match
are now considered "active" and can be tested using
ISACTIVERULE(). Using in a remote
rule, one rule can activate others. Using ,
rules can be specified that never match directly, but
can be included by .
This allows for partitioning behaviour into a hierachy of
functionality-specific subrules.
- Added configurable device ID and other devInf information
via config variables: customdeviceid, customdevicetype,
customfirmwareversion, customhardwareversion, custommodel,
custommanufacturer.
- Added , which does not encode
or decode payload but simply maps it into the "ITEMDATA"
field of the fieldlist (a string or BLOB field with this
name must be configured in the ).
- Refined folding for old vCard 2.1 and vCalendar 1.0
formats to make it more compatible with some
implementations. New "foldbetween" attribute for
can allow folding multi-value properties like EXDATE by
inserting a space between values.
- Support for filtered sync set deleting (such that only
the part of the datastore gets deleted in a refresh from
remote sync which matches the filters).
Bug fixes:
- fixed bug in parsing CGI filters with paranthesized subexpressions
- Status 418 is no longer treated as error, as some servers and
clients send this instead of 200 sometimes.
- is now correctly applied to items read
via XXXAsKey from a plugin.
- Fixed bug in config parsing that sometimes ignored elements
following a element excluded with ifdef/ifndef.
3.4.0.0 2009-11-30 Synthesis SyncML Server 3.4 Release
Enhancements/Bug fixes:
- compatibility with new SDK 1.6.1 (and later) features.
- added support for property grouping in vCard/vCalendar type formats
(new attribute "groupfield" in ).
- added and remoterule flags to enable
workarounds for ill-behaving peers.
- fixed bug with session not timing out correctly when
apache based server was run in single-thread mode.
- better parsing of VTIMEZONE records.
- VTIMEZONEs can now be generated at the beginning of
a vCalendar (rather than at the end) by simply moving the
for VTIMEZONE within the . Doing so did
not work as expected before - now it does.
- Added TIMEONLY() function.
- fixed many small bugs related to time zone handling in
certain special cases or special system time zones.
- fixed vXXX format parser bug which caused that unknown properties
ending with '=' suppressed parsing of the subsequent
property.
- improved compatibility for B64 encoded PHOTO fields, now
works even with various slightly ill-formed variants.
- added "legacy" keyword for "preferred" attribute in .
If preferred=legacy, this means that the type is used instead of the
normally preferred type when the engine runs in "legacy mode", which
for example happens when the engine detects that the remote party is
an ill-behaving implementation.
- Many internal improvements to allow combined client/server
engine libraries.
- Many bugfixes and compatibility enhancements.
3.2.0.11 2008-11-20 Synthesis SyncML Server 3.2 Release Candidate 2
Enhancements/Bug fixes:
- Compatibility workaround for some low-end Nokia phones (like 2630).
- Many refinements to work with iCalendar 2.0 data.
- Added script functions CONTAINS(), APPEND(), ITEMDATATYPE(),
ITEMTYPENAME(), ITEMTYPEVERS().
- Improved automatic devInf generation (avoids listing duplicate
fields in combined types like vCalendar with vEvent/vTodo profiles).
- Sample config updated to better handle some subtleties in vCalendar/vCard
support (separator character for CATEGORIES, etc.).
- Added support for ISO8601 duration values, added new script functions
ISDURATION(), DURATION(), POINTINTIME() to handle duration.
- Added session and remote rule options.
"no" means end dates in vCalendar 1.0 (Mime-Mode old) are rendered as
0:00 of the first not included day. "yes" means that end dates are
rendered as 23:59:59 of the last day.
3.2.0.0 2008-08-28 Synthesis SyncML Server 3.2 Release Candidate 1
New features:
- Completely revised (but mostly transparent for current configs)
time zone handling, adding many features such as per-user
or per-database-field custom time zones. Existing configs need
to be slightly adapted only if using one of the following
(uncommon) script functions: LOCALIZEDASUTC, RELATIVEASUTC,
UTCASRELATIVE, LOCALZONEOFFSET, SETZONEOFFSET, ISRELATIVE and
SETRELATIVE.
Our sample config for the PRO servers until 3.1 used RELATIVEASUTC
two times – configurations based on this sample should simply
eliminate these calls – these are no longer needed in 3.1 onwards.
- Support for unicode ODBC (using UTF-16).
- PRO: Regular expression support in scripts (REGEX_FIND, REGEX_MATCH,
REGEX_SPLIT, REGEX_REPLACE).
- PRO: ISAVAILABLE() script function which allows generating/tuning content
depending on what fields are supported by the remote party.
- PRO: Support for relational links between items of a sync set by
allowing post-processing in .
- PRO: Scripts now support WHILE() statement.
- PRO: Many new script functions such as SYNCMLVERS(), EXPLODE(), ABS(),
SIGN(), NUMFORMAT(), DAYUNITS(), MONTHDAYS(), PARSEEMAILSPEC(),
MAKEEMAILSPEC(), SLEEPMS(), TIMESTAMPTODBINT(),
DBINTTOTIMESTAMP(), CONVERTTODATAZONE() and many more.
- PRO: Enhanced support for calendar content formats – new conversion
modes "valuetype", "tzid", "tz", "daylight", "autodate", "autoenddate",
new script functions to detect/generate all-day events: ALLDAYCOUNT(),
MAKEALLDAY() and to generate and expand recurring events:
RECURRENCE_DATE(), RECURRENCE_COUNT().
- PRO: Scripts now can use 0x1224 style hex literals.
- SyncML max message and object size limits are now configurable
using .
- Enhanced debug logging: colored script source, timestamps with
millisecond resolution, additional block navigation links.
- Config variables that can be passed via command line to parametrize
configuration.
- Conditional config parsing allowing version/platform/configvar
dependent behaviour without modifying config file.
- remote rule option for clients with completely broken
CTCap in their device information which would cause the server to
suppress sending data.
- / remote rule options for clients
(in particular newer Nokia devices) which need the exact datastore
path configured in the client (including path and CGI) to be echoed
in the device Information. Note that these options are on by default,
no extra remote rules are needed except in case another client should
have problems with this behaviour (none known so far).
- PRO ODBC: SETSETDBCONNECTSTRING() and SETDBPASSWORD() functions now allow
per login database selection.
- PRO: New recurrence rule handline functions: MAKE_RRULE() and PARSE_RRULE().
- /REQUESTMINTIME() now allows to artificially slow down
server response for testing purposes.
- MIME-DIR types: Added advanced conversion mode "multimix" and enum mode "prefix"
to handle TYPE parameters consisting of a mix of flag-type and
value-type components.
Enhancements/Bug fixes:
- Fixed compatibility problem with some very old SyncML 1.0 clients which
crash when seeing devInf with and . Now suppressing
these for SyncML 1.0 by default ( not set).
- More tolerance with status 418 received from remote.
- PRO: Integer field now properly differentiates between value 0 and "empty".
- now has it's own private script context, as it
can implicitly be called from other scripts - in case of login context
script this caused unpredictable behaviour.
- Many general bug fixes and stability enhancements.
- Many workarounds and improvements added to make server more
tolerant to implementation flaws in foreign clients.
3.0.3.6 2008-04-10 Maintainance Release of Synthesis SyncML Server 3.0
- Corrected problem that caused Status 415 when client sent
Soft-Delete and Archive-Delete commands (as some LG handsets do).
- Corrected problem with Mexican time zone which was falsely
recognized as CDT/CST.
- Fixed memory leak caused by timed-out sessions in multithreaded
server environments.
- Added support for Apache 2.0 on Mac OS X Leopard
3.0.3.4 2007-11-07 Hotfix Release of Synthesis SyncML Server 3.0
- Corrected bug that could cause sessions to abort with Error 403
under some circumstances, especially with slow sync set loading.
- System time zone detection improved (failed sometimes in certain
Australian and Brazil zones).
- Device full status received from client (420) is now considered
a non-fatal error and counted as such in the session statistic.
Before that, device full just caused no more data to be sent,
but had no visible indication in the sync statistics.
- Fixed problem with scripts when first element in was
an (and not a as usually the case).
3.0.3.2 2007-08-16 Feature and Bugfix Release of Synthesis SyncML Server 3.0
New features:
- Adjustments for Nokia E90 Communicator to correctly transfer
contacts tel numbers, postal addresses and contact photo.
Remote rule for E90 added to sample config.
- Support for SQLite as alternative to ODBC datastore added (not
available in all server products at this time).
Bugfixes:
- When fetching BLOB or string columns with exact size of 512+n*65536,
sometimes a DB error occurred.
- Apache based servers licensed with only one concurrent connection
always reported Server Busy status.
3.0.2.2 2007-06-14 Feature and Bugfix Release of Synthesis SyncML Server 3.0
New features:
- Sample configuration updated to support P990/M600i email format
(message/rfc822) and updated remote rules.
- Added datastore-wide config option.
- Added datastore option: With this option set,
and a conflict between a server delete and client update happening,
the server will try to update the item (even though it is not
visible in the syncset any more). This can be useful to prevent
duplicates in filtered (e.g. date range) sync sets.
- ODBC: now using SQLRowCount() ODBC function when doing modifications
to the DB to detect when record for UPDATE or DELETE was not found.
Added to disable this check (for example in case
statement is a stored procedure call which does not update the row count).
Change in behaviour:
- Database errors (e.g. Status 510) when storing items no longer abort the
datastore sync, but are simply reported as status for the item to
the remote party. To still force aborting sync in such cases, use
s in datastore or session.
Bugfixes:
- Fixed (another) map handling problem that could cause invalid (but
harmless) delete commands to be sent to clients. This happened
only for clients with small MaxGUID size (<9).
- Linux install2.sh script fixed to work with Debian Etch.
3.0.2.0 2007-05-11 Feature and Bugfix Release of Synthesis SyncML Server 3.0
New features:
- Added possibility to define device-specific data types, using the
new "rulematch" attribute in the config. This allows
for manufacturer or model specific mapping of content fields.
- Apache versions (Linux, Mac OS X) can now run multiple sessions as
threads within one single process. This mode is more efficient
for server installations using Java plugins or other technology
which has a large per-process memory footprint or initialisation
overhead. Without additional configuration, the server runs in
one-process-per-session mode as before. To configure threaded modes,
use the new and config options in
the new section. Note that mod_sysync/mod_sysync2
must be updated as well to take advantage of threaded modes.
However, pre-3.0.2 mod_sysync works in non-threaded mode with >=3.0.2
server and vice versa.
- Support for unicode content in datatypes (like Nokia's VMSG) with
new and config options.
Bugfixes:
- When using filters on syncset, sometimes the server could create
invalid (but harmless) delete commands.
- Fixed problems with clients that send garbage after the SyncML message
itself (now ignored).
- Fixed map handling problem that could cause invalid (but harmless)
delete commands to be sent to clients.
- script debug logging is now collapsed by default.
3.0.0.17 2007-02-28 Minor Bugfix Release of Synthesis SyncML Server 3.0
- Fixed problems with map in Linux versions.
- Fixed problem reading data from map having a keyfield attribute.
- Fixed problem with %V substitution in SQL updating all fields instead of
only assigned ones.
3.0.0.14 2007-02-28 Minor Bugfix Release of Synthesis SyncML Server 3.0
- Fixed problems with detecting correct timezone on some Linux
systems, added new 2007 DST timezone info.
- Fixed problems in scripting with variables defined multiple
times in different scripts (but same script context).
3.0.0.8 2007-02-13 Minor Bugfix Release of Synthesis SyncML Server 3.0
- DBApi - improved threading management. In some occasions, problems
could occur with on, especially with JAVA plugins.
- DBApi JAVA module class may now be placed within a package (before,
it had to be at the classpath root level).
- Fixed bug that caused SEGV with the DEMO server on some Linux systems.
- Minor improvements in debug logging.
3.0.0.2 2006-12-14 Official Release of Synthesis SyncML Server 3.0
Most important new Features:
- SyncML DS 1.2 / OMA DS 1.2 support in addition to 1.1.2, 1.1.1 and 1.0!
Existing config of 2.1.x version servers can be used without
changes - and only minimal changes are required to enable suspend/resume.
- Full Suspend/Resume support including resuming partially transmitted
large objects.
- New Hierarchically structured, dynamically foldable, nicely colored
HTML logs by default, text or xml format selectable.
- Log output from subthreads can now be either suppressed or logged
into a separate log file configurable via .
- PRO server includes plugin API for custom database adaptor plugins written
in C/C++ or Java using the Synthesis Database Plugin SDK.
- Demo Server now based on new Database Plugin technology.
- Support for B64 encoded binary data, e.g. PHOTO in vCard. New
config sample includes support for contact photos.
- ODBC now supports on-demand reading of large fields (such as the
PHOTO in contacts, or attachment CONTENTS in emails, see sample config)
which is a major efficiency improvement.
- Support for DS 1.2 , including automatic indication in
. Full record level filtering is supported (inclusive
and exclusive mode), but no field level filtering yet.
Support must be switched on with and
config tags on a per datastore level.
- DS 1.1 style CGI filters (/fi() and /tf()) now also support the
complete DS 1.2 filter syntax, with enhanced case insensitive
comparison and access to individual elements of multivalues
(like N[1]=last name, N[2]=first name in vCard).
- Added full support for DS 1.2 MaxOccur/MaxSize/NoTruncate
mechanisms (fully automatically generated devInf).
- Support for ISO8601 extended format added - needed to parse
vCard BDAY and REV from some clients.
- All config tags now support "platform=xxx" attribute (xxx can
be "win32", "linux" or "macosx" at this time). This allows to
have variants for different platforms (e.g. log paths) in
a single config file.
- New for SQL databases that need a per-connection
login statement (like SyBase).
- Enhanced content type detection in cases where HTTP Content-Type
header was wrong or missing in incoming SyncML traffic.
Important Changes:
- Adds, Replaces and Deletes that receive a non-ok status from the client
no longer abort the session by default, but are simply flagged for
resend in the next session. can be used to get
the old behaviour back, SETRESEND() allows dynamic decision if
resend or session abort is needed on a per item basis.
- Global log now off by default
- Each Chunk of Large Objects ( mechanism) now contains
a datapos=x element to indicate the beginning
byte position of the chunk. This is required (but missing in the
SyncML DS 1.2 standard so far) for proper resume after implicit
suspends (connection break).
- WBXML generation: SyncML 1.1 and 1.2 now use space-saving numeric
FPI (Formal Public Identifier) in WBXML instead of textual DTD string.
- in is now executed before detail records
are deleted, so returning false will now prevent any change in
the detail records.
2.1.1.28 2006-03-31 Minor bugfix release of Synthesis SyncML Server:
Enhancements:
- New "show" attribute for allows showing parameters
(and their values, if any) in devInf. This e.g. solves
problems with some phones that would only send a single
TEL number if they do not get the list of possible TEL
number types (CELL, HOME, WORK...), such as Nokia 7610.
Bugfixes:
- Corrected some problems with writing and reading BLOBs and
parametrized INSERT or UPDATE values.
- All %xx substitutions now use ,
and settings to correctly format and quote
strings
- Servers set up storing MD5 hashes for user auth sometimes did
not allow clients to use basic-auth any more, which is usually
needed for old SyncML 1.0 clients only. All MD5 auth
was ok, so SyncML 1.1 clients were not affected.
Servers storing passwords (not MD5 hashes), like the sample
config delivered with the server, were not affected.
This is now fixed.
- Yearly re-release of DEMO servers to extend demo period until
end of 2006
Changes:
- in is now executed before detail records
are deleted, so returning false will now prevent any change in
the detail records. 2.1.1.19 2006-01-18 Minor bugfix release of Synthesis SyncML Server:
2.1.1.18 2005-09-13 Minor bugfix release of Synthesis SyncML Server:
Bugfixes:
- Windows: Fixed bugs that could cause an AV in the server when a session
terminated unsuccessfully or needed to be aborted due to a
session timeout.
- Linux: Better cleanup - failing sessions sometimes left unused pipes
and files in the pipe directory which could cause false "server busy"
conditions.
2.1.1.12 2005-07-19 Minor enhancement and bugfix release of Synthesis SyncML Server:
Enhancements:
- Added SIZE() script function to measure size of an array (LENGTH
is not suitable for arrays).
Bugfixes:
- Fixed bug in typecasting in scripts - did not work when directly
casting a variable or field reference (it worked with expressions).
- Fixed bug with session timeout introduced with 2.1.1.9 - depending
on time zone, sessions could immediately time out after start.
2.1.1.9 2005-07-07 Minor enhancement and bugfix release of Synthesis SyncML Server:
Enhancements:
- xpt (standalone) server now supports HTTP 1.1 keep-alive, it is
configurable with .
- PRO only: in ODBC datastore now allows using a
script for generating local IDs (rather than using an SQL statement).
- High-efficiency data format option (, )
with built-in gzip compression added. This can be used in situations
where both client and server can be configured to understand this format
or with certain PDA clients from Synthesis AG which have built-in
support for it for large emails (application/x-zipbin-message).
- Added to ODBC and to control how string
literals are quoted. Needed for MySQL which treats backslash as
escape char (C-style).
- Added sync start time, end time and duration information for use in
logs (%ssT, %seT, %sdT).
Bugfixes:
- RRULE enddates were not always parsed and displayed correctly (sometimes
a time shift related to the time zone was added).
- Corrected docs: attribute is called "set_no", not "setno".
- "%av" sequence in SQL statements had to be written as "%av(" due to a
bug in the definition table (the extra paranthesis).
- Under some circumstances, server returned status for chunked items
with wrong CmdRef (CmdID of the first rather than the last chunk).
2.1.1.2 2005-04-13 Minor bugfix release of Synthesis SyncML Server:
Bugfixes:
- Fixed bug that could cause (apparently only with Win 2003 server)
sessions to abort with "receiving error" for no apparent reason.
2.1.1.0 2005-03-07 Maintainance Release of Synthesis SyncML Server:
New Features:
- Added option for and TREATASUTC()
script function to allow handling a bug in Nokia S80 (9500/9300)
devices which send time values in UTC, but format them as if
it was localtime, which shifts time in calendar when syncing
from a device to a server.
- Added new remoterules to the standard remote rule set for
Nokia 9500 and 9300.
Bugfixes:
- Fixed bug in content-type detection in case HTTP headers do
not contain correct content type.
- Fixed performance eating problem in text-based datatypes
with really large objects (such as multi-Meg email attachments).
- Fixed bug in LargeObject generation: Sometimes, a new
command was issued while the previous command's data was not
completely sent; this caused Error 223 at the receiving end.
- Fixed bug that did not show ODBC error when inserted into
log table failed (only showed "exception").
- Fixed bug that could cause Add/Replace/Delete being sent in
the wrong command context in some (very rare) cases.
- Fixed bug that could abort the session when decoding WBXML
documents that contained content consisting of more than one
single WBXML string (or string table reference).
2.1.0.1 2005-01-06 Feature Upgrade and Maintainance Release of Synthesis SyncML Server:
New features:
- Enhanced Filter Architecture, now supporting SyncML-Standard
TAF-Style filters in addition to our own dynamic and static
SyncSet limiting filters, even in combination.
Added support for TAF generic field names in vCard like
"GIVEN" and "FAMILY", and for vCalendar "START" and "END".
Allowed using property names in filters for MimeDIR and
tagged header names for TextItems. Filters can also
refer to "LUID" and "REMOTEID".
New and SETSQLFILTER() to allow
an ODBC datastore to create a custom SQL filter expression from
STARTDATE() and ENDDATE(). Also added DBLITERAL() function to
create DB literals when assembling SQL statements in scripts.
- Added support for issuing SQL statements programmatically in
scripts (SQLEXECUTE() etc.).
- SHELLEXECUTE() script function now allows calling external
programs from within a sync session.
- Remoterules can now cause execution of a .
- Remoterules now use wildcard matching for checking manufacturer,
model and oem (so one rule can match multiple similar devices for example).
- MIME-DIR definitions can now made dependent on
the currently active remote rule. This allows device-dependent
interpretation of vCards/vCals which can be useful for difficult
devices.
- Support for ODBC parameters, allows for calling stored
procedures with in/out/inout params for example for Oracle.
- Added RFC2047 generator/parser to correctly handle non ASCII
special chars in email header fields.
- Added support for vCalendar 2.0-style RRULE syntax.
- scripting: Added SETxxxxx functions for DB options
like date range, item max count, limit, noattachments.
- scripting: now can return NOTHING
(meaning no auth decision made), TRUE (auth ok, no
further checking needed) or FALSE (auth not ok, no
further checking needed)
- Added SETCONFLICTSTRATEGY to set conflict strategy
in datastoreinitscript according to user settings or
other run-time conditions.
- Datastore initialisation and loading of the sync set
can now take place in a background thread while communication
with the client is kept active.
This is useful with clients that have a short timeout (e.g. 30
seconds) and slow databases or very large sync sets that take
more time than the client's timeout. Added
and to control threading behaviour and timing.
- One-way-from-client sync mode now supported in ODBC datastores.
Requires updated SYNC_TARGETS table as we need to store the
date of last sync when data was transmitted to the remote in
addition to the last sync date ().
- Better handling of SyncML messages without correct transport
layer content data type (now detects WBXML coded SyncML reliably)
- Support for simplified chinese charset (GB2312/CP936)
- Debug logs now show all SyncML Command references in a unified
format such that e.g. searching a command's status response is
easy (copy command ref into edito's search command).
- Added per-datastore and per-session data byte counting,
can be saved in log file / table with new %diB/%doB/%tiB/%toB sequences.
- Elements of array fields are now shown in logfiles when
internal fields are dumped.
- added config flag to session
to allow the 206..210 alert codes (but with no
functional difference to 200..205)
- Added
- Added to ODBC datastores (here we can execute SQL if needed)
- Added to all datastores
- Added on session level
- Unified naming of products in DevInf:
will now shows the Servers type/variant, without version No like:
SySync server
For example:
"SySync Server Win32 ISAPI ODBC PRO",
- Unified and updated remoterules in all sample server configs
to contain the currently known (big) list of device exceptions.
Updates to the remoterules list can be obtained from our
website at www.synthesis.ch.
- Added support for processing and generating custome GET and PUT
SyncML commands (, ISSUEPUT() and ISSUEGET()).
- Licensing: For OEMs, it is now possible to lock sections of
the config and bind it to a certain license. This prevents
unauthorized modifications of critical config sections by the
end user.
Bugfixes:
- Fixed bug in script engine, it was not possible to
declare arrays as local variables.
- Default charset is now UTF-8 when parsing MIME-DIR formats (e.g.
vCard 3.0, but not vCard 2.1, where default is still ANSI)
- Improved algorithm to find Tx type such that it will
now use remote's preferred Rx (first priority) or local's
preferred Tx (second priority) or just a match (third priority)
- Fixed some potential dead-lock problems with ISAPI server
and clients that do retry sending a message.
- Fixed bug in "valueseparator" feature (did not work if separator
was not a semicolon).
- Fixed small bug in vcalendaritemtype parser which would have
caused problems with rarely used RRULEs like "MD1 1- #10".
- Fixed bug in SESSIONVAR() script function: did abort the
script when variable did not exist, now returns UNASSIGNED.
- Fixed bug that could cause SyncML 1.0 sessions to terminate when a
data item was bigger than what could fit into a message. This
could happen especially with clients with very small message
sizes (<3k) like SonyEricsson T610 and large vCard NOTES for example.
- Fixed bug that caused trailing non-ASCII-chars to disappear from
multiline fields.
- Fixed bug in email body processing which could cause body to
be parsed as empty.
- Fixed SyncML 1.1 problem when client does not send MaxObjSize. In
this case, the server assumed maxobjsize=0 which prevented any
big object to be sent at all.
2.0.5.1 2004-01-28 Maintainance Release of SyncML Server 2.0:
- Some Script functions where not available from ODBC-datastore
scripts.
- Possible crash at startup on machines that do not have a TCP/IP
host name (gethostent() returns nothing) fixed.
- Enhanced datastore name matching for cases where remote
datastores have names that only differ in path elements.
- Enhanced MIME-DIR parser with "delayedparsing" attribute in
to allow parsing vCals that have RRULE before
DTSTART (but DTSTART is required for parsing RRULE).
- added "delayedparsing=1" to RRULE in all sample config files
- sample config: replaced "JOIN x ON y" syntax in with
more compatible implicit join (link expressions in WHERE)
as for example MySQL 3.23 does not support "JOIN x ON y".
- Fixed bugs that could cause exceptions when was
used with repeat="array".
- Fixed various small bugs with processing of ODBC mappings
- improved ODBC mappings to allow a "sizefrom"
field to determine the number of detail records to write.
- First Linux version (preview)
2.0.4.4 2003-12-11 Maintainance Release of SyncML Server 2.0:
- Fixed bug in comparison of "multiline" fields in scripts
(compare now works with > and < (string ordering)).
- Added to allow more parameter to
be passed for ODBC connection (e.g needed for MySQL)
- Fixed bug in parsing of RFC822 dates (emails)
- Added "default" and chained remoterule checking with
new "finalrule" tag.
- Fixed bug that prevented filtering (/fi()) for the KIND
field to differentiate vEvent/vTodo.
- Fixed bug in filter processing: SyncML TAF-style (∧...)
now works correctly.
- added and new functions
to add filter expressions to targetfilter and localdbfilter
in runtime (ADDFILTER, ADDSTATICFILTER, GETFILTER, SETFILTER).
- added /o() CGI option and DBOPTIONS() function
for
- added /slow CGI option to force slowsync
from clients that have no GUI for that.
- improved logging of session-related problems like WBXML/XML
parsing errors (now appear in session log and not only in
global log)
- fixed bug in ISO8601 parsing that could cause mis-interpretation
of non-UTC time in rare cases.
- Added server config to add an implicit GUID
limit to prevent troubles with dumb clients that do not specify
a limit but seem to crash on very long IDs.
- Added to help identifying config used for
each session in session logs.
- Added display of request processing time to debug logs.
- Added last-answer-buffer mechanism and resend-answer-if-request-repeated.
ISAPI server has now a in
to disable buffering.
- Fixed bug for "text" item type that could cause email bodies
in MIME/multipart messages not to be recognized by the parser.
- Fixed bug for "text" item type that could cause emails with
attachments, but no body text to omit the attachments on sending.
- NORMALIZED() script function returned EMPTY for UNASSIGNED
input; Now it returns UNASSIGNED in this case.
2.0.1.5 2003-08-12 Release of SyncML Server 2.0. Demos for Windows, Linux, MacOS X.
1.0.8.55 2003-07-28 Public release, now included complete feature set for 2.0,
including SyncML 1.1.1 and email.
1.0.8 2002-12-11 Pre-Release of some of the new features for 2.0 version:
Filters, scripting, etc.
1.0.5 2002-07-09 First public release of Synthesis SyncML Server