From: <svn...@op...> - 2009-11-05 16:29:02
|
Author: dgollub Date: Thu Nov 5 17:28:53 2009 New Revision: 5927 URL: http://www.opensync.org/changeset/5927 Log: Update hashtable if a plugin sends a osync_context_report_uid_update() event. see #1161 Modified: trunk/opensync/client/opensync_client.c Modified: trunk/opensync/client/opensync_client.c ============================================================================== --- trunk/opensync/client/opensync_client.c Thu Nov 5 17:27:29 2009 (r5926) +++ trunk/opensync/client/opensync_client.c Thu Nov 5 17:28:53 2009 (r5927) @@ -402,15 +402,25 @@ OSyncError *locerror = NULL; OSyncClient *client = NULL; OSyncMessage *message = NULL; + OSyncHashTable *hashtable = NULL; const char *objtype = NULL; client = data; - osync_trace(TRACE_ENTRY, "%s(%p, %s, %s, %p, %p)", __func__, __NULLSTR(olduid), __NULLSTR(newuid), sink, data); + osync_trace(TRACE_ENTRY, "%s(%s, %s, %p, %p)", __func__, __NULLSTR(olduid), __NULLSTR(newuid), sink, data); objtype = osync_objtype_sink_get_name(sink); /* We don't expect main-sink here */ osync_assert(objtype); + + + /* Update Hashtable, if available, first. */ + if ((hashtable = osync_objtype_sink_get_hashtable(sink))) { + + if (!osync_hashtable_update_uid(hashtable, olduid, newuid, &locerror)) + goto error; + + } message = osync_message_new(OSYNC_MESSAGE_MAPPING_CHANGED, 0, &locerror); if (!message) |