On Mon, 2004-03-15 at 10:45, Armin Bauer wrote:
<snip>
> the dbus offers a much greater independence to the plugins since they
> can interecept and alter all the communication between the engine and
> the plugin.
> 
> so here is my proposal:
> - dlopen the plugin
> - call a function on the plugin which installs a message handler which
> sees all the messages of a certain format
> - provide convinience functions to these plugins for say extracting the
> SyncObject from a message etc
> 
> this way we dont need a new process but still get the flexibility of
> using it with the bus

This sounds good to me.


> what i meant is if we should allow every plugin to use its own config
> format or if we should require every plugin to use xml.

Understood.

> 
> storing a config would look like this:
> 
> - client calls storeconfig(pointertoconfig)
> - we base64 encode the config as it is
> - transmit it over the wire via dbus
> - multisyncd process stores it away

Ok.

> 
> currently if have the config file for a syncgroup like this:
> 
> <syncgroup>
>       <member>
>               <type>palm-sync</type>
>               <uid>122134</uid>
>               <config>
>                       <username>Armin Bauer</username>
>                       <id>1000</id>
>                       <debuglevel>1</debuglevel>
>                       <type>0</type>
>                       <speed>115200</speed>
>                       <timeout>0</timeout>
>                       <sockaddr>/dev/ttyS1</sockaddr>
>                       <popup>1</popup>
>                       <mismatch>1</mismatch>
>               </config>
>       </member>
>       <member>
>               <type>ldap-sync</type>
>               <uid>123234</uid>
>               <config>
>                       <servername>localhost</servername>
>                       <serverport>389</serverport>
>                       <binddn>cn=admin,dc=debian,dc=org</binddn>
>                       <pwd>test</pwd>
>                       <searchbase>ou=people,dc=debian,dc=org</searchbase>
>                       <filter>(cn=*)</filter>
>                       <scope>1</scope>
>                       <debuglevel>1</debuglevel>
>                       <authmech>SIMPLE</authmech>
>                       <encryption>0</encryption>
>                       <write>1</write>
>                       <anonymous>0</anonymous>
>               </config>
>       </member>
> </syncgroup>

This means that the sync engine has to have knowledge of each plugin's
configuration parameters, which is probably a bad idea. Why not have the
<config> tag store the base-64 encoded configuration string as an opaque
value? It wouldn't even have to be XML :)

> 
> so everything below <config> would get sent to the plugin as xmlcode
> (thats very easy to implement). the other possibility would be:
> 
> <syncgroup>
>       <member>
>               <type>palm-sync</type>
>               <uid>122134</uid>
>               <config>path/to/configfile1</config>
>       </member>
>       <member>
>               <type>ldap-sync</type>
>               <uid>123234</uid>
>               <config>path/to/configfile2</config>
>       </member>
> </syncgroup>
> 
> here the configfile could hold any dataformat choosen by the plugin. if
> needed it will be loaded , base64 encoded and transmitted.

This would be the other option, but I kind of favor it stored in one
master config file with multisyncd. That way the individual plugins
don't have to implement their own config.

Tom





-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Multisync-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/multisync-devel

Reply via email to