Changeset 3600

Show
Ignore:
Timestamp:
08/26/08 16:14:09 (3 months ago)
Author:
bellmich
Message:

smlDataSyncSendChanges must no be called more than once
(syncml-http-server works now with high level API of libsyncml)

Location:
plugins/syncml/src
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • plugins/syncml/src/syncml_common.c

    r3585 r3600  
    662662        env->sessionType = sessionType; 
    663663        env->pluginInfo = info; 
     664        env->gotDatabaseCommits = 0; 
    664665        osync_plugin_info_ref(env->pluginInfo); 
    665666 
  • plugins/syncml/src/syncml_common.h

    r3581 r3600  
    104104        OSyncContext *disconnectCtx; 
    105105        GList *databases; 
     106        unsigned int gotDatabaseCommits; /* only for OMA DS server */ 
    106107 
    107108        /* environment data */ 
  • plugins/syncml/src/syncml_ds_server.c

    r3579 r3600  
    9292    SmlDatabase *database = get_database_from_plugin_info(info); 
    9393 
     94    database->env->gotDatabaseCommits++; 
    9495    database->pendingCommits = get_num_changes(changes); 
    9596    osync_trace(TRACE_INTERNAL, "%s - %i changes present to send", 
     
    133134    } 
    134135 
    135     if (!smlDataSyncSendChanges(database->env->dsObject1, &error)) 
     136    if (g_list_length(database->env->databases) == database->env->gotDatabaseCommits && 
     137        !smlDataSyncSendChanges(database->env->dsObject1, &error)) 
    136138                goto error; 
    137139