For correct SyncML behavior the plugin should obey the devinf. As I understand this requires the following things to be implemented:
1) Store the devinf somewhere.
As the device may only send it's devinf in the first session it has to be stored somewhere. Maybe the opensyc engine should provide a common functionality for that.
2) Pass the devinf to smlDevInfConfigureSession
3) Truncate the uid's which are sent to the device if necessary (MaxGUIDSize).
4) Filter vcard/vcal attributes according to <CTCap> entries.
The actual filtering should not be done by the SyncML plugin. Maybe the common formats could register filter functions. The syncml plugin could then create appropriate filters and pass the <CTCap> data as config to the filter functions.
Is there any way I could help efficiently to accomplish that?