Ticket #146 (closed defect: fixed)

Opened 3 years ago

Last modified 1 year ago

adapt syncml-plugin to work with libsyncml-threaded and make libsyncml more functional

Reported by: martin-ml@hippogriff.de Assigned to: abauer
Priority: normal Milestone:
Component: Plugin: syncml Version:
Severity: normal Keywords:
Cc:

Description

All recent development seems to have gone into the "threaded" branch of libsyncml. However: - libsyncml-threaded is incomplete (e.g. session handling in SmlManager? is non-functional) - syncml-plugin still targets libsyncml trunk - server initiated alerts (syncml 1.1) are not supported yet, which makes it pretty useless for many applications

Attachments

libsyncml-2006_02_01.diff (36.3 kB) - added by martin-ml@hippogriff.de on 02/01/06 22:29:44.
make libsyncml-threaded more functional
syncml-plugin-2006_02_01.diff (26.7 kB) - added by martin-ml@hippogriff.de on 02/01/06 22:41:47.
make syncml-plugin work with libsyncml-threaded

Change History

02/01/06 22:29:44 changed by martin-ml@hippogriff.de

  • attachment libsyncml-2006_02_01.diff added.

make libsyncml-threaded more functional

02/01/06 22:34:50 changed by martin-ml@hippogriff.de

ChangeLog? entry for libsyncml-2006_02_01.diff:

libsyncml/transports/obex_client_internals.[hc]:
- Provide the body header for smlTransportObexClientSend() on demand in smlTransportObexClientConnect(). This allows us to suspend the OBEX transport and thus split the message into mutliple OBEX packets.

libsyncml/objects/sml_ds_server.[hc], libsyncml/sml_command_internals.h, libsyncml/sml_command.[hc], libsyncml/sml_elements.[hc], libsyncml/sml_session.c, libsyncml/parser/sml_xml_assm.c, libsyncml/parser/sml_xml_parse.c, libsyncml/parser/sml_wbxml.c:
- Support server initiated alerts in smlCommandNewAlert() (compliance with SyncML 1.1).
- Allow to specify a content type for the alert command.
- In smlDsServerNew() allow a target location to be specified. Some (buggy) syncml clients need a target URI in the alert.
- Use an SmlItem? in SmlCommandAlertPrivate? and add smlItemNew() to reduce code duplication.
- Some cleanup: add const keyword for SmlLocation?* parameters, destroy the complete SmlCommand? structure in smlCommandFree(), free temporary buffer in smlWbxmlAssemblerRun().

libsyncml/sml_queue.c:
- Rename the callback functions. Before, the
callback functions from libopensync/osengine/osengine_queue.c were
called on my testing platform (leading to SEGFAULT).

libsyncml/sml_manager.c:
- dispatch sessions
- handle all events in _smlManagerDataHandler()
- call manager->eventCallback() with
SML_MANAGER_SESSION_END from smlManagerSessionRemove()
- fix typo in smlManagerNew()

libsyncml/sml_support.c:
- The idle callback doesn't get called when a
new thread is started. Work around: _start_main_loop().

libsyncml/sml_transport.c:
- Fix typo in the documentation.

02/01/06 22:41:47 changed by martin-ml@hippogriff.de

  • attachment syncml-plugin-2006_02_01.diff added.

make syncml-plugin work with libsyncml-threaded

02/01/06 22:46:46 changed by martin-ml@hippogriff.de

ChangeLog? entry for syncml-plugin-2006_02_01.diff:

(Requires libsyncml-2006_02_01.diff!)

src/syncml_plugin.[hc]:
- Make it work with the (patched) libsyncml-threaded branch of libsyncml.
- Use smlManager to manage sessions. (I'm not sure whether SmlDsSession? is used correctly in batch_commit().)
- Extend client_connect() to also allow for SyncML 1.1 compliant server initiated alerts.
- src/syncml-obex-client: Rename 'path' to 'url'. Add new parameters 'port' and 'version'.

06/02/06 15:29:57 changed by ehabkost

  • owner changed from ehabkost to abauer.

Reassigning to Armin, who is maintaining the SyncML plugin.

09/07/06 17:33:52 changed by abauer

  • status changed from new to closed.
  • resolution set to fixed.