You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
(56) |
Apr
(109) |
May
(15) |
Jun
(3) |
Jul
(37) |
Aug
(96) |
Sep
(40) |
Oct
(4) |
Nov
(54) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(47) |
Feb
(30) |
Mar
(102) |
Apr
(120) |
May
(68) |
Jun
(54) |
Jul
(53) |
Aug
(122) |
Sep
(190) |
Oct
(71) |
Nov
(85) |
Dec
(108) |
2007 |
Jan
(72) |
Feb
(190) |
Mar
(53) |
Apr
(101) |
May
(145) |
Jun
(148) |
Jul
(167) |
Aug
(143) |
Sep
(23) |
Oct
(198) |
Nov
(223) |
Dec
(195) |
2008 |
Jan
(100) |
Feb
(129) |
Mar
(79) |
Apr
(77) |
May
(34) |
Jun
(95) |
Jul
(112) |
Aug
(160) |
Sep
(82) |
Oct
(124) |
Nov
(199) |
Dec
(355) |
2009 |
Jan
(436) |
Feb
(89) |
Mar
(298) |
Apr
(189) |
May
(33) |
Jun
(88) |
Jul
(105) |
Aug
(44) |
Sep
(181) |
Oct
(87) |
Nov
(75) |
Dec
(1) |
2010 |
Jan
(63) |
Feb
(21) |
Mar
(3) |
Apr
(1) |
May
(1) |
Jun
(3) |
Jul
(26) |
Aug
(37) |
Sep
(26) |
Oct
(15) |
Nov
(13) |
Dec
|
Author: svnbot Date: Fri Sep 25 13:00:55 2009 New Revision: 5844 URL: http://www.opensync.org/changeset/5844 Log: Pinned svn:externals to revision r5822 for tag tags/plugins-0.39/ Modified: tags/plugins-0.39/evolution2/ (props changed) tags/plugins-0.39/file-sync/ (props changed) tags/plugins-0.39/gnokii-sync/ (props changed) tags/plugins-0.39/google-calendar/ (props changed) tags/plugins-0.39/gpe/ (props changed) tags/plugins-0.39/irmc-sync/ (props changed) tags/plugins-0.39/kdepim/ (props changed) tags/plugins-0.39/ldap-sync/ (props changed) tags/plugins-0.39/moto-sync/ (props changed) tags/plugins-0.39/mozilla-sync/trunk/ (props changed) tags/plugins-0.39/opie-sync/ (props changed) tags/plugins-0.39/palm/ (props changed) tags/plugins-0.39/python-module/ (props changed) tags/plugins-0.39/qtopia4-sync/ (props changed) tags/plugins-0.39/syncml/ (props changed) tags/plugins-0.39/tomboy-sync/ (props changed) |
From: <svn...@op...> - 2009-09-25 10:57:34
|
Author: svnbot Date: Fri Sep 25 12:57:21 2009 New Revision: 5843 URL: http://www.opensync.org/changeset/5843 Log: Pinned svn:externals to revision r5842 for tag tags/testtag-0.99c/ Modified: tags/testtag-0.99c/cmake/ (props changed) tags/testtag-0.99c/docs/examples/applications/cmake/ (props changed) tags/testtag-0.99c/docs/examples/plugins/ (props changed) |
From: <svn...@op...> - 2009-09-25 10:57:20
|
Author: dgollub Date: Fri Sep 25 12:57:06 2009 New Revision: 5842 URL: http://www.opensync.org/changeset/5842 Log: test tag 4 - see #913 Added: tags/testtag-0.99c/ (props changed) - copied from r5841, trunk/ |
From: <svn...@op...> - 2009-09-25 10:55:47
|
Author: dgollub Date: Fri Sep 25 12:55:35 2009 New Revision: 5841 URL: http://www.opensync.org/changeset/5841 Log: test tag 3 - see #913 Added: tags/testtag-0.99b/ (props changed) - copied from r5840, trunk/ |
From: <svn...@op...> - 2009-09-25 10:55:08
|
Author: svnbot Date: Fri Sep 25 12:54:52 2009 New Revision: 5840 URL: http://www.opensync.org/changeset/5840 Log: Pinned svn:externals to revision r5813 for tag tags/opensync-0.39/ Modified: tags/opensync-0.39/cmake/ (props changed) tags/opensync-0.39/docs/examples/applications/cmake/ (props changed) tags/opensync-0.39/docs/examples/plugins/ (props changed) |
From: <svn...@op...> - 2009-09-25 10:48:39
|
Author: dgollub Date: Fri Sep 25 12:48:20 2009 New Revision: 5839 URL: http://www.opensync.org/changeset/5839 Log: test tag 2 - see #913 Added: tags/testtag-0.99a/ (props changed) - copied from r5838, trunk/ |
From: <svn...@op...> - 2009-09-25 10:47:08
|
Author: dgollub Date: Fri Sep 25 12:46:46 2009 New Revision: 5838 URL: http://www.opensync.org/changeset/5838 Log: test tag - see #913 Added: tags/testtag-0.99/ (props changed) - copied from r5837, trunk/ |
From: <svn...@op...> - 2009-09-24 21:48:20
|
Author: paule Date: Thu Sep 24 23:48:08 2009 New Revision: 5837 URL: http://www.opensync.org/changeset/5837 Log: opie-sync: fixes for OpenSync API changes Modified: plugins/opie-sync/src/opie_sync.c Modified: plugins/opie-sync/src/opie_sync.c ============================================================================== --- plugins/opie-sync/src/opie_sync.c Thu Sep 24 23:29:56 2009 (r5836) +++ plugins/opie-sync/src/opie_sync.c Thu Sep 24 23:48:08 2009 (r5837) @@ -742,7 +742,7 @@ osync_plugin_set_finalize(plugin, opie_sync_finalize); osync_plugin_set_discover(plugin, opie_sync_discover); - osync_plugin_env_register_plugin(env, plugin); + osync_plugin_env_register_plugin(env, plugin, error); osync_plugin_unref(plugin); return TRUE; |
From: <svn...@op...> - 2009-09-24 21:30:12
|
Author: paule Date: Thu Sep 24 23:29:56 2009 New Revision: 5836 URL: http://www.opensync.org/changeset/5836 Log: opie-sync: fixes for OpenSync API changes Modified: plugins/opie-sync/src/opie_format.c plugins/opie-sync/src/opie_format.h Modified: plugins/opie-sync/src/opie_format.c ============================================================================== --- plugins/opie-sync/src/opie_format.c Tue Sep 22 09:28:11 2009 (r5835) +++ plugins/opie-sync/src/opie_format.c Thu Sep 24 23:29:56 2009 (r5836) @@ -82,7 +82,7 @@ { /* File-as. This is what the Evo plugin does, so copy it. */ out_xmlfield = osync_xmlfield_new(out_xmlformat, "FormattedName", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "Emails")) { @@ -94,7 +94,7 @@ out_xmlfield = osync_xmlfield_new(out_xmlformat, "Categories", error); for(j=0;categorytokens[j]!=NULL;j++) { - osync_xmlfield_add_key_value(out_xmlfield, "Category", categorytokens[j]); + osync_xmlfield_add_key_value(out_xmlfield, "Category", categorytokens[j], error); } g_strfreev(categorytokens); } @@ -106,7 +106,7 @@ else if(!strcasecmp(iprop->name, "HomePhone")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Telephone", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); osync_xmlfield_set_attr(out_xmlfield, "Location", "Home"); /* Removed the VOICE tags for the moment as they are assumed if not present, and if they are KDEPIM shows them up as "Other" */ @@ -115,21 +115,21 @@ else if(!strcasecmp(iprop->name, "HomeFax")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Telephone", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); osync_xmlfield_set_attr(out_xmlfield, "Location", "Home"); osync_xmlfield_set_attr(out_xmlfield, "Type", "Fax"); } else if(!strcasecmp(iprop->name, "HomeMobile")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Telephone", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); osync_xmlfield_set_attr(out_xmlfield, "Location", "Home"); osync_xmlfield_set_attr(out_xmlfield, "Type", "Cellular"); } else if(!strcasecmp(iprop->name, "BusinessPhone")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Telephone", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); osync_xmlfield_set_attr(out_xmlfield, "Location", "Work"); /* Removed the VOICE tags for the moment as they are assumed if not present, and if they are KDEPIM shows them up as "Other" */ @@ -138,53 +138,53 @@ else if(!strcasecmp(iprop->name, "BusinessFax")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Telephone", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); osync_xmlfield_set_attr(out_xmlfield, "Location", "Work"); osync_xmlfield_set_attr(out_xmlfield, "Type", "Fax"); } else if(!strcasecmp(iprop->name, "BusinessMobile")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Telephone", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); osync_xmlfield_set_attr(out_xmlfield, "Location", "Work"); osync_xmlfield_set_attr(out_xmlfield, "Type", "Cellular"); } else if(!strcasecmp(iprop->name, "BusinessPager")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Telephone", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); osync_xmlfield_set_attr(out_xmlfield, "Location", "Work"); osync_xmlfield_set_attr(out_xmlfield, "Type", "Pager"); /* FIXME is this still supported? */ } else if(!strcasecmp(iprop->name, "HomeWebPage")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "BlogUrl", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "BusinessWebPage")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Url", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "Spouse")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Spouse", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "Birthday")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Birthday", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "Anniversary")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Anniversary", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "Nickname")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Nickname", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "Children")) { @@ -193,7 +193,7 @@ else if(!strcasecmp(iprop->name, "Notes")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Note", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "rid")) { @@ -210,22 +210,22 @@ else if(!strcasecmp(iprop->name, "Assistant")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Assistant", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "Manager")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Manager", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "Profession")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Profession", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "JobTitle")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Role", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else { @@ -279,7 +279,7 @@ for(j=0;emailtokens[j]!=NULL;j++) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "EMail", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", emailtokens[j]); + osync_xmlfield_set_key_value(out_xmlfield, "Content", emailtokens[j], error); if(defaultemail) { if(!strcmp(emailtokens[j], defaultemail)) { osync_xmlfield_set_attr(out_xmlfield, "Preferred", "true"); @@ -292,7 +292,7 @@ } if(defaultemail) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "EMail", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", defaultemail); + osync_xmlfield_set_key_value(out_xmlfield, "Content", defaultemail, error); osync_xmlfield_set_attr(out_xmlfield, "Preferred", "true"); g_free(defaultemail); } @@ -304,11 +304,11 @@ xmlFreeDoc(idoc); // FIXME: remove this later by adding in a pre-sorted way? - osync_xmlformat_sort(out_xmlformat); + osync_xmlformat_sort(out_xmlformat, error); unsigned int size; char *str; - osync_xmlformat_assemble(out_xmlformat, &str, &size); + osync_xmlformat_assemble(out_xmlformat, &str, &size, error); osync_trace(TRACE_INTERNAL, "Output XMLFormat is:\n%s", str); g_free(str); @@ -345,7 +345,7 @@ OSyncXMLFormat *in_xmlformat = (OSyncXMLFormat *)input; unsigned int size; char *str; - osync_xmlformat_assemble(in_xmlformat, &str, &size); + osync_xmlformat_assemble(in_xmlformat, &str, &size, error); osync_trace(TRACE_INTERNAL, "Input XMLFormat is:\n%s", str); g_free(str); @@ -566,13 +566,13 @@ if(!strcasecmp(iprop->name, "Summary")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Summary", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "Description")) { if(strlen(iprop->children->content)) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Description", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } } else if(!strcasecmp(iprop->name, "Priority")) @@ -581,13 +581,13 @@ int priority = atoi(iprop->children->content); char *prio = g_strdup_printf("%d", priority); out_xmlfield = osync_xmlfield_new(out_xmlformat, "Priority", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", prio); + osync_xmlfield_set_key_value(out_xmlfield, "Content", prio, error); g_free(prio); } else if(!strcasecmp(iprop->name, "Progress")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "PercentComplete", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "State")) { @@ -608,12 +608,12 @@ status = "NEEDS-ACTION"; } out_xmlfield = osync_xmlfield_new(out_xmlformat, "Status", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", status); + osync_xmlfield_set_key_value(out_xmlfield, "Content", status, error); } else if(!strcasecmp(iprop->name, "StartDate")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "DateStarted", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); osync_xmlfield_set_attr(out_xmlfield, "Value", "DATE"); } else if(!strcasecmp(iprop->name, "Categories")) @@ -622,7 +622,7 @@ out_xmlfield = osync_xmlfield_new(out_xmlformat, "Categories", error); for(j=0;categorytokens[j]!=NULL;j++) { - osync_xmlfield_add_key_value(out_xmlfield, "Category", categorytokens[j]); + osync_xmlfield_add_key_value(out_xmlfield, "Category", categorytokens[j], error); } g_strfreev(categorytokens); } @@ -636,7 +636,7 @@ char *completeDate = xmlGetProp(icur, "CompletedDate"); if(completeDate) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Completed", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", completeDate); + osync_xmlfield_set_key_value(out_xmlfield, "Content", completeDate, error); // RFC2445 says the default value type is DATE-TIME. But Opie only // stores DATE as completed date => alter VALUE to DATE osync_xmlfield_set_attr(out_xmlfield, "Value", "DATE"); @@ -662,7 +662,7 @@ duedatestr = g_strdup_printf("%04d%02d%02d", dateyear, datemonth, dateday); duedate = g_date_new_dmy(dateday, datemonth, dateyear); out_xmlfield = osync_xmlfield_new(out_xmlformat, "Due", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", duedatestr); + osync_xmlfield_set_key_value(out_xmlfield, "Content", duedatestr, error); // RFC2445 says the default value type is DATE-TIME. But Opie only // stores DATE as due date => alter VALUE to DATE osync_xmlfield_set_attr(out_xmlfield, "Value", "DATE"); @@ -681,7 +681,7 @@ char *alarmstr = xmlGetProp(icur, "Alarms"); if(alarmstr && duedatestr) { char *duetimestr = g_strdup_printf("%sT000000", duedatestr); - time_t duetime = osync_time_vtime2unix(duetimestr, 0); + time_t duetime = osync_time_vtime2unix(duetimestr, 0, error); xml_todo_alarm_attr_to_xmlfield(alarmstr, out_xmlformat, &duetime, error); g_free(duetimestr); } @@ -701,11 +701,11 @@ xmlFreeDoc(idoc); // FIXME: remove this later by adding in a pre-sorted way? - osync_xmlformat_sort(out_xmlformat); + osync_xmlformat_sort(out_xmlformat, error); unsigned int size; char *str; - osync_xmlformat_assemble(out_xmlformat, &str, &size); + osync_xmlformat_assemble(out_xmlformat, &str, &size, error); osync_trace(TRACE_INTERNAL, "Output XMLFormat is:\n%s", str); g_free(str); @@ -733,7 +733,7 @@ OSyncXMLFormat *in_xmlformat = (OSyncXMLFormat *)input; unsigned int size; char *str; - osync_xmlformat_assemble(in_xmlformat, &str, &size); + osync_xmlformat_assemble(in_xmlformat, &str, &size, error); osync_trace(TRACE_INTERNAL, "Input XMLFormat is:\n%s", str); g_free(str); @@ -773,7 +773,7 @@ else if(!strcmp("Completed", fieldname)) { completedstr = osync_xmlfield_get_key_value(in_xmlfield, "Content"); if(completedstr) { - struct tm *completed = osync_time_vtime2tm(completedstr); + struct tm *completed = osync_time_vtime2tm(completedstr, error); char *completedstr_out = g_strdup_printf("%04d%02d%02d", completed->tm_year + 1900, (completed->tm_mon + 1), completed->tm_mday); xmlSetProp(on_todo, "Completed", "1"); xmlSetProp(on_todo, "CompletedDate", completedstr_out); @@ -784,7 +784,7 @@ else if(!strcmp("DateStarted", fieldname)) { startedstr = osync_xmlfield_get_key_value(in_xmlfield, "Content"); if(startedstr) { - struct tm *started = osync_time_vtime2tm(startedstr); + struct tm *started = osync_time_vtime2tm(startedstr, error); char *startedstr_out = g_strdup_printf("%04d%02d%02d", (started->tm_year + 1900), (started->tm_mon + 1), started->tm_mday); xmlSetProp(on_todo, "StartDate", startedstr_out); g_free(startedstr_out); @@ -794,7 +794,7 @@ else if(!strcmp("Due", fieldname)) { duestr = osync_xmlfield_get_key_value(in_xmlfield, "Content"); if(duestr) { - struct tm *due = osync_time_vtime2tm(duestr); + struct tm *due = osync_time_vtime2tm(duestr, error); char *dueyear = g_strdup_printf("%04d", (due->tm_year + 1900)); char *duemonth = g_strdup_printf("%02d", (due->tm_mon + 1)); char *dueday = g_strdup_printf("%02d", due->tm_mday); @@ -833,14 +833,14 @@ } } else if(!strcmp("RecurrenceRule", fieldname)) { - xmlfield_recur_to_attr(in_xmlfield, on_todo); + xmlfield_recur_to_attr(in_xmlfield, on_todo, error); } in_xmlfield = osync_xmlfield_get_next(in_xmlfield); } /* Convert alarms */ - xmlformat_todo_alarms_to_attr(in_xmlformat, on_todo, duestr); + xmlformat_todo_alarms_to_attr(in_xmlformat, on_todo, duestr, error); if(!completedstr) xmlSetProp(on_todo, "Completed", "0"); @@ -913,24 +913,24 @@ if(!strcasecmp(iprop->name, "description")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Summary", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "note")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Description", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "location")) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Location", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); } else if(!strcasecmp(iprop->name, "created")) { time_t createtime = (time_t)atoi(iprop->children->content); - char *createvtime = osync_time_unix2vtime(&createtime); + char *createvtime = osync_time_unix2vtime(&createtime, error); out_xmlfield = osync_xmlfield_new(out_xmlformat, "Created", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content); + osync_xmlfield_set_key_value(out_xmlfield, "Content", iprop->children->content, error); g_free(createvtime); } else if(!strcasecmp(iprop->name, "start")) @@ -941,14 +941,14 @@ struct tm *localtm = g_malloc0(sizeof(struct tm)); localtime_r(&starttime, localtm); char *startvdate = g_strdup_printf("%04d%02d%02d", localtm->tm_year + 1900, (localtm->tm_mon + 1), localtm->tm_mday); - osync_xmlfield_set_key_value(out_xmlfield, "Content", startvdate); + osync_xmlfield_set_key_value(out_xmlfield, "Content", startvdate, error); osync_xmlfield_set_attr(out_xmlfield, "Value", "DATE"); g_free(startvdate); g_free(localtm); } else { - char *startvtime = osync_time_unix2vtime(&starttime); - osync_xmlfield_set_key_value(out_xmlfield, "Content", startvtime); + char *startvtime = osync_time_unix2vtime(&starttime, error); + osync_xmlfield_set_key_value(out_xmlfield, "Content", startvtime, error); g_free(startvtime); } /* Record the start date for use later */ @@ -972,14 +972,14 @@ endtime += 1; localtime_r(&endtime, localtm); char *endvdate = g_strdup_printf("%04d%02d%02d", localtm->tm_year + 1900, (localtm->tm_mon + 1), localtm->tm_mday); - osync_xmlfield_set_key_value(out_xmlfield, "Content", endvdate); + osync_xmlfield_set_key_value(out_xmlfield, "Content", endvdate, error); osync_xmlfield_set_attr(out_xmlfield, "Value", "DATE"); g_free(endvdate); g_free(localtm); } else { - char *endvtime = osync_time_unix2vtime(&endtime); - osync_xmlfield_set_key_value(out_xmlfield, "Content", endvtime); + char *endvtime = osync_time_unix2vtime(&endtime, error); + osync_xmlfield_set_key_value(out_xmlfield, "Content", endvtime, error); g_free(endvtime); } } @@ -989,7 +989,7 @@ out_xmlfield = osync_xmlfield_new(out_xmlformat, "Categories", error); for(j=0;categorytokens[j]!=NULL;j++) { - osync_xmlfield_add_key_value(out_xmlfield, "Category", categorytokens[j]); + osync_xmlfield_add_key_value(out_xmlfield, "Category", categorytokens[j], error); } g_strfreev(categorytokens); } @@ -1012,13 +1012,13 @@ xmlFree(alarmsoundstr); } if(alarmsound == 1) - osync_xmlfield_set_key_value(out_xmlfield, "AlarmAction", "AUDIO"); + osync_xmlfield_set_key_value(out_xmlfield, "AlarmAction", "AUDIO", error); else - osync_xmlfield_set_key_value(out_xmlfield, "AlarmAction", "DISPLAY"); + osync_xmlfield_set_key_value(out_xmlfield, "AlarmAction", "DISPLAY", error); int alarmseconds = -(atoi(alarmminsstr) * 60); char *alarmdu = osync_time_sec2alarmdu(alarmseconds); - osync_xmlfield_set_key_value(out_xmlfield, "AlarmTrigger", alarmdu); + osync_xmlfield_set_key_value(out_xmlfield, "AlarmTrigger", alarmdu, error); g_free(alarmdu); xmlFree(alarmminsstr); } @@ -1034,11 +1034,11 @@ xmlFreeDoc(idoc); // FIXME: remove this later by adding in a pre-sorted way? - osync_xmlformat_sort(out_xmlformat); + osync_xmlformat_sort(out_xmlformat, error); unsigned int size; char *str; - osync_xmlformat_assemble(out_xmlformat, &str, &size); + osync_xmlformat_assemble(out_xmlformat, &str, &size, error); osync_trace(TRACE_INTERNAL, "Output XMLFormat is:\n%s", str); g_free(str); @@ -1066,7 +1066,7 @@ OSyncXMLFormat *in_xmlformat = (OSyncXMLFormat *)input; unsigned int size; char *str; - osync_xmlformat_assemble(in_xmlformat, &str, &size); + osync_xmlformat_assemble(in_xmlformat, &str, &size, error); osync_trace(TRACE_INTERNAL, "Input XMLFormat is:\n%s", str); g_free(str); @@ -1087,19 +1087,19 @@ xmlfield_key_to_attr(in_xmlfield, "Content", on_event, "location"); } else if(!strcmp("Created", fieldname)) { - xmlfield_vtime_to_attr_time_t(in_xmlfield, on_event, "created"); + xmlfield_vtime_to_attr_time_t(in_xmlfield, on_event, "created", error); } else if(!strcmp("DateStarted", fieldname)) { - start_time = xmlfield_vtime_to_attr_time_t(in_xmlfield, on_event, "start"); + start_time = xmlfield_vtime_to_attr_time_t(in_xmlfield, on_event, "start", error); } else if(!strcmp("DateEnd", fieldname)) { - end_time = xmlfield_vtime_to_attr_time_t(in_xmlfield, on_event, "end"); + end_time = xmlfield_vtime_to_attr_time_t(in_xmlfield, on_event, "end", error); } else if(!strcmp("Categories", fieldname)) { xmlfield_categories_to_attr(in_xmlfield, on_event, "Categories"); } else if(!strcmp("RecurrenceRule", fieldname)) { - xmlfield_recur_to_attr(in_xmlfield, on_event); + xmlfield_recur_to_attr(in_xmlfield, on_event, error); } in_xmlfield = osync_xmlfield_get_next(in_xmlfield); @@ -1170,14 +1170,14 @@ char *value = xmlGetProp(icur, "name"); if(value) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Summary", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", value); + osync_xmlfield_set_key_value(out_xmlfield, "Content", value, error); xmlFree(value); } // Description value = xmlNodeGetContent(icur); if(value) { out_xmlfield = osync_xmlfield_new(out_xmlformat, "Description", error); - osync_xmlfield_set_key_value(out_xmlfield, "Content", value); + osync_xmlfield_set_key_value(out_xmlfield, "Content", value, error); xmlFree(value); } } @@ -1189,11 +1189,11 @@ xmlFreeDoc(idoc); // FIXME: remove this later by adding in a pre-sorted way? - osync_xmlformat_sort(out_xmlformat); + osync_xmlformat_sort(out_xmlformat, error); unsigned int size; char *str; - osync_xmlformat_assemble(out_xmlformat, &str, &size); + osync_xmlformat_assemble(out_xmlformat, &str, &size, error); osync_trace(TRACE_INTERNAL, "Output XMLFormat is:\n%s", str); g_free(str); @@ -1218,7 +1218,7 @@ OSyncXMLFormat *in_xmlformat = (OSyncXMLFormat *)input; unsigned int size; char *str; - osync_xmlformat_assemble(in_xmlformat, &str, &size); + osync_xmlformat_assemble(in_xmlformat, &str, &size, error); osync_trace(TRACE_INTERNAL, "Input XMLFormat is:\n%s", str); g_free(str); @@ -1266,28 +1266,28 @@ osync_objformat_set_destroy_func(format, destroy_format1); osync_objformat_set_duplicate_func(format, duplicate_format1); osync_objformat_set_print_func(format, print_format1);*/ - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, error); osync_objformat_unref(format); /* Todo */ format = osync_objformat_new(OPIE_FORMAT_XML_TODO, "todo", error); if (!format) return FALSE; - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, error); osync_objformat_unref(format); /* Event */ format = osync_objformat_new(OPIE_FORMAT_XML_EVENT, "event", error); if (!format) return FALSE; - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, error); osync_objformat_unref(format); /* Note */ format = osync_objformat_new(OPIE_FORMAT_XML_NOTE, "note", error); if (!format) return FALSE; - osync_format_env_register_objformat(env, format); + osync_format_env_register_objformat(env, format, error); osync_objformat_unref(format); return TRUE; @@ -1356,19 +1356,19 @@ xmlSetProp(node_to, attrname, value); } -time_t xmlfield_vtime_to_attr_time_t(OSyncXMLField *xmlfield, xmlNode *node_to, const char *attrname) { +time_t xmlfield_vtime_to_attr_time_t(OSyncXMLField *xmlfield, xmlNode *node_to, const char *attrname, OSyncError **error) { const char *vtime = osync_xmlfield_get_key_value(xmlfield, "Content"); time_t utime = 0; if(vtime) { const char *vtimetype = osync_xmlfield_get_attr(xmlfield, "Value"); if(vtimetype && !strcasecmp(vtimetype, "DATE")) { /* vtime has date but no time, so we treat it as midnight local time */ - struct tm *localtm = osync_time_vtime2tm(vtime); + struct tm *localtm = osync_time_vtime2tm(vtime, error); utime = mktime(localtm); g_free(localtm); } else - utime = osync_time_vtime2unix(vtime, 0); + utime = osync_time_vtime2unix(vtime, 0, error); char *timestr = g_strdup_printf("%d", (int)utime); xmlSetProp(node_to, attrname, timestr); @@ -1389,7 +1389,7 @@ char *key = (char *)(keysptr->data); if(!out_xmlfield) out_xmlfield = osync_xmlfield_new(out_xmlformat, fieldname, error); - osync_xmlfield_set_key_value(out_xmlfield, key, value); + osync_xmlfield_set_key_value(out_xmlfield, key, value, error); xmlFree(value); } @@ -1439,10 +1439,10 @@ /* Frequency */ if(!strcmp(recurType, "Daily")) { - osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "DAILY"); + osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "DAILY", error); } else if(!strcmp(recurType, "Weekly")) { - osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "WEEKLY"); + osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "WEEKLY", error); /* Weekdays */ char *weekdays = xmlGetProp(item_node, "rweekdays"); @@ -1469,22 +1469,22 @@ /* Remove the trailing comma */ g_string_truncate(byday, strlen(byday->str) - 1); - osync_xmlfield_set_key_value(out_xmlfield, "ByDay", byday->str); + osync_xmlfield_set_key_value(out_xmlfield, "ByDay", byday->str, error); g_string_free(byday, TRUE); } xmlFree(weekdays); } } else if(!strcmp(recurType, "MonthlyDate")) { - osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "MONTHLY"); + osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "MONTHLY", error); if(startdate) { char *bymonthday = g_strdup_printf("%i", (int)g_date_get_day(startdate)); - osync_xmlfield_set_key_value(out_xmlfield, "ByMonthDay", bymonthday); + osync_xmlfield_set_key_value(out_xmlfield, "ByMonthDay", bymonthday, error); g_free(bymonthday); } } else if(!strcmp(recurType, "MonthlyDay")) { - osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "MONTHLY"); + osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "MONTHLY", error); if(startdate) { int weekno; char *weeknostr = xmlGetProp(item_node, "rposition"); @@ -1524,19 +1524,19 @@ break; } if(byday) { - osync_xmlfield_set_key_value(out_xmlfield, "ByDay", byday); + osync_xmlfield_set_key_value(out_xmlfield, "ByDay", byday, error); g_free(byday); } } } else if(!strcmp(recurType, "Yearly")) { - osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "YEARLY"); + osync_xmlfield_set_key_value(out_xmlfield, "Frequency", "YEARLY", error); } /* Interval */ char *interval = xmlGetProp(item_node, "rfreq"); if(interval) { - osync_xmlfield_set_key_value(out_xmlfield, "Interval", interval); + osync_xmlfield_set_key_value(out_xmlfield, "Interval", interval, error); xmlFree(interval); } @@ -1546,8 +1546,8 @@ char *recurendstr = xmlGetProp(item_node, "enddt"); if(recurendstr) { time_t recurendtime = (time_t)atoi(recurendstr); - char *recurendvtime = osync_time_unix2vtime(&recurendtime); - osync_xmlfield_set_key_value(out_xmlfield, "Until", recurendvtime); + char *recurendvtime = osync_time_unix2vtime(&recurendtime, error); + osync_xmlfield_set_key_value(out_xmlfield, "Until", recurendvtime, error); g_free(recurendvtime); xmlFree(recurendstr); } @@ -1557,7 +1557,7 @@ } } -void xmlfield_recur_to_attr(OSyncXMLField *in_xmlfield, xmlNode *node_to) { +void xmlfield_recur_to_attr(OSyncXMLField *in_xmlfield, xmlNode *node_to, OSyncError **error) { /* Recurrence for todos and events */ char *enddt = NULL; char *weekdaysrule = NULL; @@ -1606,7 +1606,7 @@ rfreq = g_strdup(keyvalue); } else if (!strcasecmp(keyname, "UNTIL")) { - time_t utime = osync_time_vtime2unix(keyvalue, 0); + time_t utime = osync_time_vtime2unix(keyvalue, 0, error); enddt = g_strdup_printf("%d", (int)utime); } } @@ -1711,20 +1711,20 @@ g_strfreev(alarmargs); if(alarmsound == 1) - osync_xmlfield_set_key_value(out_xmlfield, "AlarmAction", "AUDIO"); + osync_xmlfield_set_key_value(out_xmlfield, "AlarmAction", "AUDIO", error); else - osync_xmlfield_set_key_value(out_xmlfield, "AlarmAction", "DISPLAY"); + osync_xmlfield_set_key_value(out_xmlfield, "AlarmAction", "DISPLAY", error); if(alarmdatestr) { - struct tm *alarmtm = osync_time_vtime2tm(alarmdatestr); + struct tm *alarmtm = osync_time_vtime2tm(alarmdatestr, error); time_t alarmtime = mktime(alarmtm); g_free(alarmtm); - char *alarmdatestr_utc = osync_time_unix2vtime(&alarmtime); + char *alarmdatestr_utc = osync_time_unix2vtime(&alarmtime, error); if(starttime) { char *alarmdu = osync_time_sec2alarmdu((int)difftime(alarmtime, *starttime)); if(alarmdu) { - osync_xmlfield_set_key_value(out_xmlfield, "AlarmTrigger", alarmdu); + osync_xmlfield_set_key_value(out_xmlfield, "AlarmTrigger", alarmdu, error); g_free(alarmdu); } } @@ -1737,7 +1737,7 @@ } } -void xmlformat_todo_alarms_to_attr(OSyncXMLFormat *in_xmlformat, xmlNode *node_to, const char *duedate) { +void xmlformat_todo_alarms_to_attr(OSyncXMLFormat *in_xmlformat, xmlNode *node_to, const char *duedate, OSyncError **error) { /* Convert OpenSync XML Alarm entries on a todo node to Opie Alarms attribute value */ GString *alarms = g_string_new(""); @@ -1754,7 +1754,7 @@ if(duedate) { int alarmdiff = osync_time_alarmdu2sec(trigger); - alarmtm = osync_time_vtime2tm(duedate); + alarmtm = osync_time_vtime2tm(duedate, error); alarmtime = timegm(alarmtm); alarmtime += alarmdiff; } Modified: plugins/opie-sync/src/opie_format.h ============================================================================== --- plugins/opie-sync/src/opie_format.h Tue Sep 22 09:28:11 2009 (r5835) +++ plugins/opie-sync/src/opie_format.h Thu Sep 24 23:29:56 2009 (r5836) @@ -28,15 +28,15 @@ void xmlfield_key_to_attr(OSyncXMLField *xmlfield, const char *key, xmlNode *node_to, const char *attrname); void xmlfield_uid_to_attr(OSyncXMLField *xmlfield, xmlNode *node_to); void xml_uid_attr_to_xmlfield(const char *uid, const char *nodename, OSyncXMLFormat *out_xmlformat, OSyncError **error); -time_t xmlfield_vtime_to_attr_time_t(OSyncXMLField *xmlfield, xmlNode *node_to, const char *attrname); +time_t xmlfield_vtime_to_attr_time_t(OSyncXMLField *xmlfield, xmlNode *node_to, const char *attrname, OSyncError **error); OSyncXMLField *xml_attrs_to_xmlfield_keys(xmlNode *node, OSyncXMLFormat *out_xmlformat, const char *fieldname, GSList *attrs, GSList *keys, OSyncError **error); void dual_list_append(GSList **list1, void *item1, GSList **list2, void *item2); void dual_list_clear(GSList **list1, GSList **list2); void xmlfield_categories_to_attr(OSyncXMLField *in_xmlfield, xmlNode *node_to, const char *category_attr); void xml_recur_attr_to_xmlfield(xmlNode *item_node, OSyncXMLFormat *out_xmlformat, GDate *startdate, OSyncError **error); -void xmlfield_recur_to_attr(OSyncXMLField *in_xmlfield, xmlNode *node_to); +void xmlfield_recur_to_attr(OSyncXMLField *in_xmlfield, xmlNode *node_to, OSyncError **error); void xml_todo_alarm_attr_to_xmlfield(const char *alarmstr, OSyncXMLFormat *out_xmlformat, time_t *starttime, OSyncError **error); -void xmlformat_todo_alarms_to_attr(OSyncXMLFormat *in_xmlformat, xmlNode *node_to, const char *duedate); +void xmlformat_todo_alarms_to_attr(OSyncXMLFormat *in_xmlformat, xmlNode *node_to, const char *duedate, OSyncError **error); void xmlformat_cal_alarms_to_attr(OSyncXMLFormat *in_xmlformat, xmlNode *node_to, time_t *starttime); #endif /* _OPIE_FORMAT_H */ |
From: <svn...@op...> - 2009-09-24 17:22:36
|
Author: bellmich Date: Thu Sep 24 19:22:21 2009 New Revision: 1285 URL: http://libsyncml.opensync.org/changeset/1285 Log: fixed hangs on 64 bit machines because of mixed data types The patch was supplied by Jim Radford. The original patch was directly executed without any additions. Modified: trunk/libsyncml/parser/sml_wbxml.c trunk/libsyncml/sml_parse.c trunk/libsyncml/sml_parse.h trunk/libsyncml/sml_session.c Modified: trunk/libsyncml/parser/sml_wbxml.c ============================================================================== --- trunk/libsyncml/parser/sml_wbxml.c Thu Sep 24 19:10:44 2009 (r1284) +++ trunk/libsyncml/parser/sml_wbxml.c Thu Sep 24 19:22:21 2009 (r1285) @@ -165,7 +165,7 @@ smlAssert(size); char *buffer = NULL; - unsigned int buffer_size = 0; + gsize buffer_size = 0; if (!smlXmlAssemblerRun(assm, &buffer, &buffer_size, end, final, 0, error)) goto error; @@ -201,10 +201,10 @@ CHECK_ERROR_REF smlAssert(assm); - unsigned int size = 0; + gsize size = 0; char *data = NULL; char *buffer = NULL; - unsigned int buffer_size = 0; + gsize buffer_size = 0; if (!smlXmlAssemblerRunFull(assm, &buffer, &buffer_size, NULL, TRUE, FALSE, 0, error)) goto error; Modified: trunk/libsyncml/sml_parse.c ============================================================================== --- trunk/libsyncml/sml_parse.c Thu Sep 24 19:10:44 2009 (r1284) +++ trunk/libsyncml/sml_parse.c Thu Sep 24 19:22:21 2009 (r1285) @@ -1078,8 +1078,8 @@ gboolean smlAssemblerGetNextCmdRef (SmlAssembler *assm, - guint *cmdRef, - guint *msgRef) + gsize *cmdRef, + gsize *msgRef) { smlAssert(assm); smlAssert(cmdRef); Modified: trunk/libsyncml/sml_parse.h ============================================================================== --- trunk/libsyncml/sml_parse.h Thu Sep 24 19:10:44 2009 (r1284) +++ trunk/libsyncml/sml_parse.h Thu Sep 24 19:22:21 2009 (r1285) @@ -66,7 +66,7 @@ typedef gboolean (* SmlAssemblerRemCommandFunction) (void *userdata, guint parentID, GError **error); typedef gboolean (* SmlAssemblerHeaderFunction) (void *userdata, SmlSession *session, GError **error); typedef gsize (* SmlAssemblerCheckFunction) (void *userdata, gboolean headeronly, GError **error); -typedef gboolean (* SmlAssemblerNextCmdRefFunction) (void *userdata, guint *cmdRef, guint *msgRef); +typedef gboolean (* SmlAssemblerNextCmdRefFunction) (void *userdata, gsize *cmdRef, gsize *msgRef); typedef void (* SmlAssemblerRestoreCommandsFunction) (void *userdata); typedef struct SmlAssemblerFunctions { @@ -127,7 +127,7 @@ gboolean smlAssemblerIsEmpty (SmlAssembler *assm); gboolean smlAssemblerIsStatusMissing (SmlAssembler *assm); -gboolean smlAssemblerGetNextCmdRef (SmlAssembler *assm, guint *cmdRef, guint *msgRef); +gboolean smlAssemblerGetNextCmdRef (SmlAssembler *assm, gsize *cmdRef, gsize *msgRef); /* If you want to parse OMA DS 1.2 SANs then the manager is required. */ void smlParserSetManager (SmlParser *parser, SmlManager *manager); Modified: trunk/libsyncml/sml_session.c ============================================================================== --- trunk/libsyncml/sml_session.c Thu Sep 24 19:10:44 2009 (r1284) +++ trunk/libsyncml/sml_session.c Thu Sep 24 19:22:21 2009 (r1285) @@ -682,7 +682,7 @@ } break; case SML_SESSION_STATUS:; - unsigned int cmdRef, msgRef = 0; + gsize cmdRef, msgRef = 0; if (!smlAssemblerGetNextCmdRef(session->assembler, &cmdRef, &msgRef)) { g_set_error(&error, SML_ERROR, SML_ERROR_GENERIC, "No more statuses were needed"); goto error; |
From: <svn...@op...> - 2009-09-24 17:10:58
|
Author: bellmich Date: Thu Sep 24 19:10:44 2009 New Revision: 1284 URL: http://libsyncml.opensync.org/changeset/1284 Log: added some note to the ChangeLog Modified: trunk/ChangeLog Modified: trunk/ChangeLog ============================================================================== --- trunk/ChangeLog Thu Sep 24 19:10:09 2009 (r1283) +++ trunk/ChangeLog Thu Sep 24 19:10:44 2009 (r1284) @@ -1,3 +1,7 @@ + * Only data sync and dev inf API survive API renewal + * server can handle now several sessions at once + * map fragmentation is supported + 2009-06-04 Michael Bell <mic...@we...> * Released 0.5.4 * All header files of the high level API are missing |
From: <svn...@op...> - 2009-09-24 17:10:18
|
Author: bellmich Date: Thu Sep 24 19:10:09 2009 New Revision: 1283 URL: http://libsyncml.opensync.org/changeset/1283 Log: - added code to test the sending of changes from server to client - added code to test map handling Modified: trunk/tests/check_data_sync_api.c Modified: trunk/tests/check_data_sync_api.c ============================================================================== --- trunk/tests/check_data_sync_api.c Thu Sep 24 19:08:41 2009 (r1282) +++ trunk/tests/check_data_sync_api.c Thu Sep 24 19:10:09 2009 (r1283) @@ -48,41 +48,81 @@ /* *********** CALLBACKS ************** */ /* ************************************ */ +SmlDataSyncTestClient* +getTestClientFromDataSyncSession(SmlDataSyncSession *session) +{ + /* This is a hack because of the behaviour of the OBEX server. */ + smlTrace(TRACE_INTERNAL, "%s: session(server->remote) ::= %p", __func__, sml_data_sync_session_get_remote(session)); + smlTrace(TRACE_INTERNAL, "%s: session(server->remote) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_session_get_remote(session))); + smlTrace(TRACE_INTERNAL, "%s: session(server->local) ::= %p", __func__, sml_data_sync_session_get_local(session)); + smlTrace(TRACE_INTERNAL, "%s: session(server->local) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_session_get_local(session))); + GList *list = clients; + SmlDataSyncTestClient *client = NULL; + for (;list; list = list->next) { + client = list->data; + smlTrace(TRACE_INTERNAL, "%s: client(local) ::= %p", __func__, sml_data_sync_get_local(client->client)); + smlTrace(TRACE_INTERNAL, "%s: client(local) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_get_local(client->client))); + smlTrace(TRACE_INTERNAL, "%s: client(remote) ::= %p", __func__, sml_data_sync_get_remote(client->client)); + smlTrace(TRACE_INTERNAL, "%s: client(remote) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_get_remote(client->client))); + if (sml_location_is_equal(sml_data_sync_get_local(client->client), sml_data_sync_session_get_remote(session))) + { + /* correct client */ + smlTrace(TRACE_INTERNAL, "%s - correct client", __func__); + break; + } else { + /* wrong client */ + client = NULL; + } + } + sml_fail_unless(client != NULL, "Cannot find correct client."); + return client; +} + gboolean sendAllChanges (SmlDataSyncSession *session, SmlDataSyncTestClient *client, GError **error) { - smlTrace(TRACE_ENTRY, "%s", __func__); + smlTrace(TRACE_ENTRY, "%s (%p, %p, %p)", __func__, session, client, error); + gboolean is_server = client ? FALSE : TRUE; SmlDataSyncDataStoreSession *dss = NULL; - if (client) + if (!is_server) dss = sml_data_sync_session_get_data_store_session(session, client->data_store, error); else dss = sml_data_sync_session_get_data_store_session(session, server_data_store, error); sml_fail_unless(dss != NULL, "%s", GET_ERROR_MESSAGE((*error))); - if (client) + if (is_server) { - GList *list = client->items; - size_t count = 0; - for (;list;list = list->next) - { - count++; - char *name = g_strdup_printf("%d", count); - SmlLocation *loc = sml_location_new(); - sml_location_set_uri(loc, name); - smlSafeCFree(&name); + /* determine the remote client */ + client = getTestClientFromDataSyncSession(session); + } - SmlDataSyncChangeItem *item = sml_data_sync_change_item_new(); - sml_data_sync_change_item_set_action(item, SML_CHANGE_ADD); - sml_fail_unless(sml_data_sync_change_item_set_data(item, list->data, 0, error), "%s", GET_ERROR_MESSAGE((*error))); - sml_fail_unless(sml_data_sync_change_item_set_location(item, loc, error), "%s", GET_ERROR_MESSAGE((*error))); - g_object_unref(loc); - loc = NULL; + GList *list = client->items; + size_t count = 0; + for (;list;list = list->next) + { + count++; + char *name = NULL; - sml_fail_unless(sml_data_sync_data_store_session_add_change(dss, item, NULL, error), "%s", GET_ERROR_MESSAGE((*error))); - } + if (is_server) + name = g_strdup_printf("%d from server", count); + else + name = g_strdup_printf("%d", count); + + SmlLocation *loc = sml_location_new(); + sml_location_set_uri(loc, name); + smlSafeCFree(&name); + + SmlDataSyncChangeItem *item = sml_data_sync_change_item_new(); + sml_data_sync_change_item_set_action(item, SML_CHANGE_ADD); + sml_fail_unless(sml_data_sync_change_item_set_data(item, list->data, 0, error), "%s", GET_ERROR_MESSAGE((*error))); + sml_fail_unless(sml_data_sync_change_item_set_location(item, loc, error), "%s", GET_ERROR_MESSAGE((*error))); + g_object_unref(loc); + loc = NULL; + + sml_fail_unless(sml_data_sync_data_store_session_add_change(dss, item, NULL, error), "%s", GET_ERROR_MESSAGE((*error))); } smlTrace(TRACE_EXIT, "%s", __func__); @@ -163,64 +203,39 @@ } static gboolean -recvChangeCallback (SmlDataSyncDataStoreSession *session, +serverRecvChangeCallback (SmlDataSyncDataStoreSession *session, SmlDataSyncChangeItem *item, void *userdata, GError **error) { smlTrace(TRACE_ENTRY, "%s: (%p, %p, %p, %p)", __func__, session, item, userdata, error); - /* clients should never receive a change in this test */ + /* determine the relevant data sync objects */ SmlDataSyncDataStore *datastore = sml_data_sync_data_store_session_get_data_store(session); SmlDataSyncSession *dss = sml_data_sync_data_store_session_get_data_sync_session(session); SmlDataSync *dsObject = sml_data_sync_session_get_data_sync(dss); - if (dsObject != server) { - sml_fail_unless(FALSE, "A change was received by the server."); - } - /* check the source */ - if (datastore != server_data_store) { - sml_fail_unless(FALSE, "The data store is wrong (from client)."); + if (dsObject != server || datastore != server_data_store) { + sml_fail_unless(FALSE, "This is the server callback."); } /* determine client */ - /* This is a hack because of the behaviour of the OBEX server. */ - smlTrace(TRACE_INTERNAL, "%s: session(server->remote) ::= %p", __func__, sml_data_sync_session_get_remote(dss)); - smlTrace(TRACE_INTERNAL, "%s: session(server->remote) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_session_get_remote(dss))); - smlTrace(TRACE_INTERNAL, "%s: session(server->local) ::= %p", __func__, sml_data_sync_session_get_local(dss)); - smlTrace(TRACE_INTERNAL, "%s: session(server->local) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_session_get_local(dss))); - GList *list = clients; - SmlDataSyncTestClient *client = NULL; - for (;list; list = list->next) { - client = list->data; - smlTrace(TRACE_INTERNAL, "%s: client(local) ::= %p", __func__, sml_data_sync_get_local(client->client)); - smlTrace(TRACE_INTERNAL, "%s: client(local) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_get_local(client->client))); - smlTrace(TRACE_INTERNAL, "%s: client(remote) ::= %p", __func__, sml_data_sync_get_remote(client->client)); - smlTrace(TRACE_INTERNAL, "%s: client(remote) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_get_remote(client->client))); - if (sml_location_is_equal(sml_data_sync_get_local(client->client), sml_data_sync_session_get_remote(dss))) - { - /* correct client */ - smlTrace(TRACE_INTERNAL, "%s - correct client", __func__); - break; - } else { - /* wrong client */ - client = NULL; - } - } - sml_fail_unless(client != NULL, "Cannot find correct client."); + SmlDataSyncTestClient *client = getTestClientFromDataSyncSession(dss); /* handle the item */ - list = client->items; + GList *list = client->items; size_t count = 0; for (; list; list = list->next) { count++; /* test the uid */ + smlTrace(TRACE_INTERNAL, "%s - case 1 %p %p", __func__, item, sml_data_sync_change_item_get_location(item)); const gchar *uid = sml_location_get_full_uri(sml_data_sync_change_item_get_location(item)); + smlTrace(TRACE_INTERNAL, "%s - case 1", __func__); char *name = g_strdup_printf("%d", count); if (strcmp(name, uid)) { smlSafeCFree(&name); @@ -239,6 +254,110 @@ return TRUE; } +static gboolean +clientRecvChangeCallback (SmlDataSyncDataStoreSession *session, + SmlDataSyncChangeItem *item, + void *userdata, + GError **error) +{ + smlTrace(TRACE_ENTRY, "%s: (%p, %p, %p, %p)", __func__, session, item, userdata, error); + + /* determine the relevant data sync objects */ + + SmlDataSyncDataStore *datastore = sml_data_sync_data_store_session_get_data_store(session); + SmlDataSyncSession *dss = sml_data_sync_data_store_session_get_data_sync_session(session); + SmlDataSync *dsObject = sml_data_sync_session_get_data_sync(dss); + + /* check the source */ + + if (dsObject == server || datastore == server_data_store) { + sml_fail_unless(FALSE, "This is the client callback."); + } + + /* document remote and local locations */ + + smlTrace(TRACE_INTERNAL, "%s: server->remote ::= %p", __func__, sml_data_sync_get_remote(server)); + if (sml_data_sync_get_remote(server)) + smlTrace(TRACE_INTERNAL, "%s: server->remote ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_get_remote(server))); + smlTrace(TRACE_INTERNAL, "%s: server->local ::= %p", __func__, sml_data_sync_get_local(server)); + smlTrace(TRACE_INTERNAL, "%s: server->local ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_get_local(server))); + smlTrace(TRACE_INTERNAL, "%s: client session(local) ::= %p", __func__, sml_data_sync_session_get_local(dss)); + smlTrace(TRACE_INTERNAL, "%s: client session(local) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_session_get_local(dss))); + smlTrace(TRACE_INTERNAL, "%s: client session(remote) ::= %p", __func__, sml_data_sync_session_get_remote(dss)); + smlTrace(TRACE_INTERNAL, "%s: client session(remote) ::= %s", __func__, sml_location_get_full_uri(sml_data_sync_session_get_remote(dss))); + + /* create a mapping per add item */ + + SmlLocation* remote = sml_data_sync_change_item_get_location(item); + SmlLocation* local = sml_location_clone(remote); + gchar *local_uri = g_strdup_printf("%s => mapped ID", sml_location_get_uri(remote)); + sml_location_set_uri(local, local_uri); + smlSafeCFree(&local_uri); + SmlMapItem *map = sml_map_item_new(); + sml_fail_unless(sml_map_item_set_remote(map, remote, error), "%s", GET_ERROR_MESSAGE((*error))); + sml_fail_unless(sml_map_item_set_local(map, local, error), "%s", GET_ERROR_MESSAGE((*error))); + sml_fail_unless(sml_map_item_is_compliant(map, error), "%s", GET_ERROR_MESSAGE((*error))); + + /* add the mapping to the session */ + + sml_fail_unless(sml_data_sync_data_store_session_add_mapping(session, map, NULL, error), "%s", GET_ERROR_MESSAGE((*error))); + + smlTrace(TRACE_EXIT, "%s - TRUE", __func__); + return TRUE; +} + +static gboolean +serverRecvMappingCallback (SmlDataSyncDataStoreSession *session, + SmlMapItem *item, + void *userdata, + GError **error) +{ + smlTrace(TRACE_ENTRY, "%s: (%p, %p, %p, %p)", __func__, session, item, userdata, error); + + /* determine the relevant data sync objects */ + + SmlDataSyncDataStore *datastore = sml_data_sync_data_store_session_get_data_store(session); + SmlDataSyncSession *dss = sml_data_sync_data_store_session_get_data_sync_session(session); + SmlDataSync *dsObject = sml_data_sync_session_get_data_sync(dss); + + /* check the source */ + + if (dsObject != server || datastore != server_data_store) { + sml_fail_unless(FALSE, "This is the server callback."); + } + + /* determine client */ + + SmlDataSyncTestClient *client = getTestClientFromDataSyncSession(dss); + + /* handle the item */ + GList *list = client->items; + size_t count = 0; + for (; list; list = list->next) { + count++; + + /* test the uid */ + const gchar *uid = sml_map_item_get_remote_uri(item); + char *name = g_strdup_printf("%d from server", count); + if (strcmp(name, uid)) { + smlSafeCFree(&name); + continue; + } + smlSafeCFree(&name); + + /* item with correct uid */ + const gchar *mapped = sml_map_item_get_local_uri(item); + name = g_strdup_printf("%d from server => mapped ID", count); + if (strcmp(name, mapped)) { + sml_fail_unless(FALSE, "The mapped ID of the item %s was wrong(%s != %s).", uid, name, mapped); + } + smlSafeCFree(&name); + } + + smlTrace(TRACE_EXIT, "%s - TRUE", __func__); + return TRUE; +} + //static SmlAlertType recvAlertTypeCallback( // SmlDataSyncObject *dsObject, // const char *source, @@ -286,9 +405,11 @@ /* general init */ setup_testbed(NULL); GError *error = NULL; + clients = NULL; + server = NULL; + server_data_store = NULL; /* initialize clients */ - clients = NULL; unsigned int i = 0; for (;i < peers; i++) { @@ -494,11 +615,13 @@ runMutex = NULL; /* close the object */ + smlTrace(TRACE_INTERNAL, "%s: shutting down all SmlDataSync objects", __func__); GList *list = clients; for (; list; list = list->next) { SmlDataSyncTestClient *client = list->data; g_object_unref(client->client); + g_object_unref(client->data_store); while(client->items) { gchar* item = client->items->data; @@ -532,14 +655,15 @@ client->data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (client->data_store, "text/x-vcard"); sml_data_sync_data_store_set_local_uri (client->data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, client); + sml_data_sync_data_store_register_change_callback(client->data_store, clientRecvChangeCallback, client); if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; server_data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (server_data_store, "text/x-vcard"); sml_data_sync_data_store_set_local_uri (server_data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + sml_data_sync_data_store_register_change_callback(server_data_store, serverRecvChangeCallback, NULL); + sml_data_sync_data_store_register_mapping_callback(server_data_store, serverRecvMappingCallback, NULL); if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; @@ -567,7 +691,7 @@ client->data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (client->data_store, "image/jpeg"); sml_data_sync_data_store_set_local_uri (client->data_store, "dcim"); - sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, NULL); + sml_data_sync_data_store_register_change_callback(client->data_store, clientRecvChangeCallback, NULL); if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; @@ -577,7 +701,8 @@ sml_data_sync_data_store_set_local_uri (server_data_store, "photos"); else sml_data_sync_data_store_set_local_uri (server_data_store, "dcim"); - sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + sml_data_sync_data_store_register_change_callback(server_data_store, serverRecvChangeCallback, NULL); + sml_data_sync_data_store_register_mapping_callback(server_data_store, serverRecvMappingCallback, NULL); if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; @@ -605,14 +730,15 @@ client->data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (client->data_store, "unknown/content-type"); sml_data_sync_data_store_set_local_uri (client->data_store, "data"); - sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, NULL); + sml_data_sync_data_store_register_change_callback(client->data_store, clientRecvChangeCallback, NULL); if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; server_data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (server_data_store, "unknown/content-type"); sml_data_sync_data_store_set_local_uri (server_data_store, "data"); - sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + sml_data_sync_data_store_register_change_callback(server_data_store, serverRecvChangeCallback, NULL); + sml_data_sync_data_store_register_mapping_callback(server_data_store, serverRecvMappingCallback, NULL); if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; @@ -640,14 +766,15 @@ client->data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (client->data_store, "text/x-vcard"); sml_data_sync_data_store_set_local_uri (client->data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, NULL); + sml_data_sync_data_store_register_change_callback(client->data_store, clientRecvChangeCallback, NULL); if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; server_data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (server_data_store, "text/x-vcard"); sml_data_sync_data_store_set_local_uri (server_data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + sml_data_sync_data_store_register_change_callback(server_data_store, serverRecvChangeCallback, NULL); + sml_data_sync_data_store_register_mapping_callback(server_data_store, serverRecvMappingCallback, NULL); if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; @@ -685,7 +812,7 @@ client->data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (client->data_store, "text/x-vcard"); sml_data_sync_data_store_set_local_uri (client->data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, client); + sml_data_sync_data_store_register_change_callback(client->data_store, clientRecvChangeCallback, client); if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; @@ -696,7 +823,8 @@ server_data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (server_data_store, "text/x-vcard"); sml_data_sync_data_store_set_local_uri (server_data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + sml_data_sync_data_store_register_change_callback(server_data_store, serverRecvChangeCallback, NULL); + sml_data_sync_data_store_register_mapping_callback(server_data_store, serverRecvMappingCallback, NULL); if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; @@ -727,7 +855,7 @@ client->data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (client->data_store, "text/x-vcard"); sml_data_sync_data_store_set_local_uri (client->data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(client->data_store, recvChangeCallback, client); + sml_data_sync_data_store_register_change_callback(client->data_store, clientRecvChangeCallback, client); if (!sml_data_sync_add_data_store(client->client, client->data_store, &error)) goto error; @@ -742,7 +870,8 @@ server_data_store = sml_data_sync_data_store_new(); sml_data_sync_data_store_set_content_type (server_data_store, "text/x-vcard"); sml_data_sync_data_store_set_local_uri (server_data_store, "contacts"); - sml_data_sync_data_store_register_change_callback(server_data_store, recvChangeCallback, NULL); + sml_data_sync_data_store_register_change_callback(server_data_store, serverRecvChangeCallback, NULL); + sml_data_sync_data_store_register_mapping_callback(server_data_store, serverRecvMappingCallback, NULL); if (!sml_data_sync_add_data_store(server, server_data_store, &error)) goto error; |
From: <svn...@op...> - 2009-09-24 17:09:00
|
Author: bellmich Date: Thu Sep 24 19:08:41 2009 New Revision: 1282 URL: http://libsyncml.opensync.org/changeset/1282 Log: added code to support the splitting of map commands If maps are really huge then they can exceed MaxMsgSize. The Map command has no MoreData element. So one Map command is simply splitted into several Map commands. Modified: trunk/libsyncml/sml_command.c trunk/libsyncml/sml_command.h trunk/libsyncml/sml_parse.c trunk/libsyncml/sml_session.c Modified: trunk/libsyncml/sml_command.c ============================================================================== --- trunk/libsyncml/sml_command.c Thu Sep 24 19:07:03 2009 (r1281) +++ trunk/libsyncml/sml_command.c Thu Sep 24 19:08:41 2009 (r1282) @@ -1042,6 +1042,66 @@ return g_list_nth_data(cmd->private.map.items, n); } +SmlCommand* +smlCommandCloneWithNumMappings (SmlCommand *cmd, + gsize n, + GError **error) +{ + CHECK_ERROR_REF + smlAssert(cmd); + smlAssert(cmd->type == SML_COMMAND_TYPE_MAP); + + SmlCommand *clone = NULL; + + /* create clone command */ + + clone = smlCommandNew(cmd->type, error); + if (!clone) + goto error; + clone->source = sml_location_clone(cmd->source); + clone->target = sml_location_clone(cmd->target); + + gsize i = 0; + for (; i < n; i++) + { + SmlMapItem *item = smlCommandGetNthMapping(cmd, i); + g_object_ref(item); + clone->private.map.items = g_list_append (clone->private.map.items, item); + } + + return clone; +error: + if (clone) + smlCommandUnref(clone); + return NULL; +} + +gboolean +smlCommandRemoveNumMappings (SmlCommand *cmd, + gsize n, + GError **error) +{ + CHECK_ERROR_REF + smlAssert(cmd); + smlAssert(cmd->type == SML_COMMAND_TYPE_MAP); + + while (n && cmd->private.map.items) + { + n--; + SmlMapItem *item = cmd->private.map.items->data; + if (!item) { + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, + "The item number %d of the map command is empty.", (n+1)); + goto error; + } + cmd->private.map.items = g_list_remove(cmd->private.map.items, item); + g_object_unref(item); + } + return TRUE; +error: + return FALSE; +} + gsize smlCommandGetNthItemSize (SmlCommand *cmd, gsize n, Modified: trunk/libsyncml/sml_command.h ============================================================================== --- trunk/libsyncml/sml_command.h Thu Sep 24 19:07:03 2009 (r1281) +++ trunk/libsyncml/sml_command.h Thu Sep 24 19:08:41 2009 (r1282) @@ -98,11 +98,13 @@ G_CONST_RETURN gchar *smlCommandTypeToString(SmlCommandType type, GError **error); -gsize smlCommandGetNumberOfChanges (SmlCommand *cmd); /* NumberOfChanges in sync command */ -gsize smlCommandGetNumChanges (SmlCommand *cmd); /* number of items in change command */ -SmlDataSyncChangeItem* smlCommandGetNthChange (SmlCommand *cmd, gsize n); -gsize smlCommandGetNumMappings (SmlCommand *cmd); /* number of items in change command */ -SmlMapItem* smlCommandGetNthMapping (SmlCommand *cmd, gsize n); +gsize smlCommandGetNumberOfChanges (SmlCommand *cmd); /* NumberOfChanges in sync command */ +gsize smlCommandGetNumChanges (SmlCommand *cmd); /* number of items in change command */ +SmlDataSyncChangeItem* smlCommandGetNthChange (SmlCommand *cmd, gsize n); +gsize smlCommandGetNumMappings (SmlCommand *cmd); /* number of items in change command */ +SmlMapItem* smlCommandGetNthMapping (SmlCommand *cmd, gsize n); +SmlCommand* smlCommandCloneWithNumMappings (SmlCommand *cmd, gsize n, GError **error); +gboolean smlCommandRemoveNumMappings (SmlCommand *cmd, gsize n, GError **error); SmlStatus* smlCommandResultsGetStatus (SmlCommand *cmd); void smlCommandTransferItems (SmlCommand *source, SmlCommand *target, gsize start); Modified: trunk/libsyncml/sml_parse.c ============================================================================== --- trunk/libsyncml/sml_parse.c Thu Sep 24 19:07:03 2009 (r1281) +++ trunk/libsyncml/sml_parse.c Thu Sep 24 19:08:41 2009 (r1282) @@ -594,16 +594,19 @@ smlAssert(cmd); smlAssert(assm->functions.start_cmd); smlAssert(assm->functions.rem_cmd); - smlAssert(smlCommandGetType(cmd) == SML_COMMAND_TYPE_ADD || smlCommandGetType(cmd) == SML_COMMAND_TYPE_REPLACE); + /* only one change per command is supported by libsyncml * It is possible to parse commands with more items * but it is not supported to send more items than one */ - smlAssert(smlCommandGetNumChanges(cmd) == 1); + if (smlCommandGetType(cmd) == SML_COMMAND_TYPE_ADD || + smlCommandGetType(cmd) == SML_COMMAND_TYPE_REPLACE) + smlAssert(smlCommandGetNumChanges(cmd) == 1); unsigned int parentID = 0; gsize limit = smlAssemblerGetRemoteMaxMsgSize(assm); if (!limit) { + /* The function call is useless in this case. */ *space = -1; smlTrace(TRACE_EXIT, "%s: No limit", __func__); return TRUE; @@ -640,7 +643,9 @@ * The data can be splitted into several chunks. * Please see SupportLargeObj and MoreData. */ - size -= strlen(sml_data_sync_change_item_get_data(smlCommandGetNthChange(cmd, 0))); + if (smlCommandGetType(cmd) == SML_COMMAND_TYPE_ADD || + smlCommandGetType(cmd) == SML_COMMAND_TYPE_REPLACE) + size -= strlen(sml_data_sync_change_item_get_data(smlCommandGetNthChange(cmd, 0))); if (limit <= size) *space = 0; Modified: trunk/libsyncml/sml_session.c ============================================================================== --- trunk/libsyncml/sml_session.c Thu Sep 24 19:07:03 2009 (r1281) +++ trunk/libsyncml/sml_session.c Thu Sep 24 19:08:41 2009 (r1282) @@ -398,8 +398,109 @@ smlTrace(TRACE_INTERNAL, "%s: Fragmented. Added %i already", __func__, session->frag_size); } } + + /* A Map command cannot be splitted like an Add or Change command. + * A map can be splitted into several maps if no Final is sent. + * Maps can be splitted for every SyncML protocol version. + * This is no large object handling. + */ + if (smlCommandGetType(cmd) == SML_COMMAND_TYPE_MAP && + smlAssemblerGetRemoteMaxMsgSize(session->assembler) > 0) + { + smlTrace(TRACE_INTERNAL, "%s: Checking if a map command needs to be splitted", __func__); + + /* Do we need fragmentation? */ + + gssize space = 0; + if (!smlAssemblerGetSpace(session->assembler, &space, parent, cmd, error)) + goto error; + + if (!session->frag_command && space <= 0) + { + /* Yes, fragmentation is required */ + session->frag_size = 0; + + session->frag_command = cmd; + smlCommandRef(cmd); + + session->frag_callback = callback; + session->frag_userdata = userdata; + } + + /* Fragmentation code */ + + if (session->frag_command) + { + /* We need to fragment */ + smlTrace(TRACE_INTERNAL, "%s: Space %i. Fragmenting.", __func__, space); + + /* loop until we found the maximum map */ + gsize count = 0; + do { + count++; + smlTrace(TRACE_INTERNAL, "%s: Try %d mappings ...", __func__, count); + cmd = smlCommandCloneWithNumMappings(session->frag_command, count, error); + if (!smlAssemblerGetSpace(session->assembler, &space, parent, cmd, error)) + goto error; + if (space <= 0) + { + /* to many mappings */ + count--; + } + smlCommandUnref(cmd); + cmd = NULL; + } while (space > 0 && smlCommandGetNumMappings(session->frag_command) > count); + smlTrace(TRACE_INTERNAL, "%s: Add %d mappings ...", __func__, count); + + /* if all mappings are to huge then wait for the next message */ + + if (count == 0 && + smlCommandGetPushedBack(session->frag_command)) + { + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "Even a single mapping is too large for one message."); + goto error; + } + else if (count == 0) + { + smlTrace(TRACE_INTERNAL, "%s: Fragmentation is need but starts with the next message.", __func__); + smlCommandSetPushedBack(session->frag_command, TRUE); + fragmented = TRUE; + } + else if (count < smlCommandGetNumMappings(session->frag_command)) + { + /* partial command */ + smlTrace(TRACE_INTERNAL, "%s: This is a partial map.", __func__); + cmd = smlCommandCloneWithNumMappings(session->frag_command, count, error); + if (!cmd) + goto error; + if (!smlCommandRemoveNumMappings(session->frag_command, count, error)) + goto error; + callback = _smlSessionFragmentStatus; + userdata = NULL; + fragmented = TRUE; + } + else if (count == smlCommandGetNumMappings(session->frag_command)) + { + /* complete map command */ + smlTrace(TRACE_INTERNAL, "%s: This is the last chunk", __func__); + cmd = session->frag_command; + session->frag_command = NULL; + callback = session->frag_callback; + userdata = session->frag_userdata; + fragmented = FALSE; + } + else + { + /* bug */ + g_set_error(error, SML_ERROR, SML_ERROR_GENERIC, "The counting of mappings failed."); + goto error; + } + smlTrace(TRACE_INTERNAL, "%s: cmd %p", __func__, cmd); + } + } /* We now increment the session ID */ + smlTrace(TRACE_INTERNAL, "%s: cmd %p", __func__, cmd); session->lastCommandID++; smlCommandSetID(cmd, session->lastCommandID); smlTrace(TRACE_INTERNAL, "%s: last command id is %i", __func__, session->lastCommandID); @@ -541,7 +642,7 @@ SmlSession *session = userdata; GError *error = NULL; //SmlPendingStatus *pending = NULL; - smlTrace(TRACE_INTERNAL, "%s: session cmd type %i", __func__, sesscmd->type); + smlTrace(TRACE_INTERNAL, "%s: session cmd %p type %i", __func__, sesscmd->cmd, sesscmd->type); /* check if the header is ready */ if (!session->assmHasHeader) |
From: <svn...@op...> - 2009-09-24 17:07:14
|
Author: bellmich Date: Thu Sep 24 19:07:03 2009 New Revision: 1281 URL: http://libsyncml.opensync.org/changeset/1281 Log: added some more error checks Modified: trunk/libsyncml/data_sync_api/data_sync_server.c trunk/libsyncml/data_sync_api/sml_data_sync_session.c Modified: trunk/libsyncml/data_sync_api/data_sync_server.c ============================================================================== --- trunk/libsyncml/data_sync_api/data_sync_server.c Thu Sep 24 19:06:45 2009 (r1280) +++ trunk/libsyncml/data_sync_api/data_sync_server.c Thu Sep 24 19:07:03 2009 (r1281) @@ -48,6 +48,11 @@ GError *error = NULL; SmlAlertType sentType = recvType; + if (!self->priv->data_store_session) + self->priv->data_store_session = dsession; + + smlAssert(self->priv->data_store_session == dsession); + /* libsyncml only supports SML_ALERT_TWO_WAY and SML_ALERT_SLOW_SYNC * but some old phones reply on a SAN alert 206 with a slow sync 201 * alert or a SAN alert 206 (insteed of a normal two way alert 200). Modified: trunk/libsyncml/data_sync_api/sml_data_sync_session.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_session.c Thu Sep 24 19:06:45 2009 (r1280) +++ trunk/libsyncml/data_sync_api/sml_data_sync_session.c Thu Sep 24 19:07:03 2009 (r1281) @@ -230,6 +230,10 @@ GError **error) { smlTrace(TRACE_ENTRY, "%s (%p, %p, %p)", __func__, self, datastore, error); + CHECK_ERROR_REF + sml_return_val_error_if_fail (SML_IS_DATA_SYNC_SESSION (self), FALSE, error, SML_ERROR_GENERIC, "There must be a SmlDataSyncSession object."); + sml_return_val_error_if_fail (SML_IS_DATA_SYNC_DATA_STORE (datastore), FALSE, error, SML_ERROR_GENERIC, "There must be a SmlDataSyncDataStore object."); + smlTrace(TRACE_INTERNAL, "%s: %s", __func__, sml_data_sync_data_store_get_local_uri(datastore)); SmlDataSyncDataStoreSession *data_store_session = g_hash_table_lookup(self->priv->hash_dsds2dsdss, datastore); if (!data_store_session) { |
From: <svn...@op...> - 2009-09-24 17:06:54
|
Author: bellmich Date: Thu Sep 24 19:06:45 2009 New Revision: 1280 URL: http://libsyncml.opensync.org/changeset/1280 Log: added some trace statements Modified: trunk/libsyncml/data_sync_api/sml_data_sync.c trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c Modified: trunk/libsyncml/data_sync_api/sml_data_sync.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync.c Thu Sep 24 19:05:58 2009 (r1279) +++ trunk/libsyncml/data_sync_api/sml_data_sync.c Thu Sep 24 19:06:45 2009 (r1280) @@ -98,6 +98,7 @@ static void sml_data_sync_finalize (GObject *object) { + smlTrace(TRACE_ENTRY, "%s(%p)", __func__, object); SmlDataSync *self = SML_DATA_SYNC (object); /* stop the dispatcher loop */ @@ -190,6 +191,7 @@ self->priv->session_type = SML_SESSION_TYPE_UNKNOWN; G_OBJECT_CLASS (sml_data_sync_parent_class)->finalize (object); + smlTrace(TRACE_EXIT, "%s", __func__, object); } static void Modified: trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c Thu Sep 24 19:05:58 2009 (r1279) +++ trunk/libsyncml/data_sync_api/sml_data_sync_data_store_session.c Thu Sep 24 19:06:45 2009 (r1280) @@ -165,6 +165,7 @@ goto error; SmlDataSyncDataStoreSession *self = NULL; self = sml_data_sync_session_get_data_store_session(data_sync_session, datastore, &error); + smlTrace(TRACE_INTERNAL, "%s: self ::= %p", __func__, self); if (!self) goto error; @@ -515,6 +516,7 @@ SmlDataSyncSession *session, GError **error) { + smlTrace(TRACE_ENTRY, "%s (%p, %p, %p)", __func__, datastore, session, error); CHECK_ERROR_REF sml_return_val_error_if_fail (SML_IS_DATA_SYNC_DATA_STORE (datastore), NULL, error, SML_ERROR_GENERIC, "There must be a SmlDataSyncDataStore object."); sml_return_val_error_if_fail (SML_IS_DATA_SYNC_SESSION (session), NULL, error, SML_ERROR_GENERIC, "There must be a SmlDataSyncSession object."); @@ -524,6 +526,7 @@ self->priv->data_store = datastore; self->priv->data_sync_session = session; + smlTrace(TRACE_EXIT, "%s", __func__); return self; } |
From: <svn...@op...> - 2009-09-24 17:06:14
|
Author: bellmich Date: Thu Sep 24 19:05:58 2009 New Revision: 1279 URL: http://libsyncml.opensync.org/changeset/1279 Log: - the code to set properties is now thread safe (including get_full_uri) - the full URI is cached now Modified: trunk/libsyncml/data_sync_api/sml_location.c Modified: trunk/libsyncml/data_sync_api/sml_location.c ============================================================================== --- trunk/libsyncml/data_sync_api/sml_location.c Tue Sep 15 17:42:12 2009 (r1278) +++ trunk/libsyncml/data_sync_api/sml_location.c Thu Sep 24 19:05:58 2009 (r1279) @@ -37,6 +37,7 @@ gchar* name; gchar* parent_uri; gchar* full_uri; + GMutex* lock; }; static void @@ -66,10 +67,15 @@ const GValue *value, GParamSpec *pspec) { + g_mutex_lock(SML_LOCATION (object)->priv->lock); switch (property_id) { case PROP_URI: g_free (SML_LOCATION (object)->priv->uri); SML_LOCATION (object)->priv->uri = g_strdup (g_value_get_string (value)); + if (SML_LOCATION (object)->priv->full_uri) { + g_free(SML_LOCATION (object)->priv->full_uri); + SML_LOCATION (object)->priv->full_uri = NULL; + } break; case PROP_NAME: g_free (SML_LOCATION (object)->priv->name); @@ -78,25 +84,34 @@ case PROP_PARENT_URI: g_free (SML_LOCATION (object)->priv->parent_uri); SML_LOCATION (object)->priv->parent_uri = g_strdup (g_value_get_string (value)); + if (SML_LOCATION (object)->priv->full_uri) { + g_free(SML_LOCATION (object)->priv->full_uri); + SML_LOCATION (object)->priv->full_uri = NULL; + } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } + g_mutex_unlock(SML_LOCATION (object)->priv->lock); } static void sml_location_finalize (GObject *object) { SmlLocation *self = SML_LOCATION (object); + g_mutex_lock(self->priv->lock); + g_mutex_unlock(self->priv->lock); g_free(self->priv->uri); g_free(self->priv->name); g_free(self->priv->parent_uri); g_free(self->priv->full_uri); + g_mutex_free(self->priv->lock); /* all pointers must be NULL */ self->priv->uri = NULL; self->priv->name = NULL; self->priv->parent_uri = NULL; self->priv->full_uri = NULL; + self->priv->lock = NULL; G_OBJECT_CLASS (sml_location_parent_class)->finalize (object); } @@ -168,7 +183,10 @@ SmlLocation* sml_location_new (void) { - return g_object_new (SML_TYPE_LOCATION, NULL); + SmlLocation *self = g_object_new (SML_TYPE_LOCATION, NULL); + self->priv->full_uri = NULL; + self->priv->lock = g_mutex_new(); + return self; } /** @@ -198,6 +216,13 @@ const gchar* uri) { g_assert(SML_IS_LOCATION (self)); + g_mutex_lock(self->priv->lock); + + /* reset full uri cache */ + if (self->priv->full_uri) { + g_free (self->priv->full_uri); + self->priv->full_uri = NULL; + } /* normalize the URI */ if (uri && strlen(uri) == 0) @@ -207,6 +232,7 @@ self->priv->uri = g_strdup (uri); if (uri && !self->priv->uri) g_error("Cannot copy the URI - out of memory."); + g_mutex_unlock(self->priv->lock); } /** @@ -236,6 +262,7 @@ const gchar* name) { g_assert(SML_IS_LOCATION (self)); + g_mutex_lock(self->priv->lock); /* normalize the name */ if (name && strlen(name) == 0) @@ -245,6 +272,7 @@ self->priv->name = g_strdup (name); if (name && !self->priv->name) g_error("Cannot copy the name - out of memory."); + g_mutex_unlock(self->priv->lock); } /** @@ -274,6 +302,13 @@ const gchar* parent_uri) { g_assert(SML_IS_LOCATION (self)); + g_mutex_lock(self->priv->lock); + + /* reset full uri cache */ + if (self->priv->full_uri) { + g_free (self->priv->full_uri); + self->priv->full_uri = NULL; + } /* normalize the parent URI */ if (parent_uri && strlen(parent_uri) == 0) @@ -283,6 +318,7 @@ self->priv->parent_uri = g_strdup (parent_uri); if (parent_uri && !self->priv->parent_uri) g_error("Cannot copy the parent URI - out of memory."); + g_mutex_unlock(self->priv->lock); } /** @@ -295,6 +331,7 @@ sml_location_clone (SmlLocation *self) { g_assert(self); + g_mutex_lock(self->priv->lock); SmlLocation *loc = sml_location_new(); if (!loc) @@ -305,6 +342,8 @@ sml_location_set_name(loc, self->priv->name); if (self->priv->parent_uri) sml_location_set_parent_uri(loc, self->priv->parent_uri); + + g_mutex_unlock(self->priv->lock); return loc; } @@ -392,11 +431,12 @@ sml_location_get_full_uri (SmlLocation *self) { g_assert(SML_IS_LOCATION (self)); + g_mutex_lock(self->priv->lock); - /* cleanup cache */ + /* use cache */ if (self->priv->full_uri) { - g_free(self->priv->full_uri); - self->priv->full_uri = NULL; + g_mutex_unlock(self->priv->lock); + return self->priv->full_uri; } /* normalize URI */ @@ -433,6 +473,7 @@ self->priv->full_uri = _sml_location_get_normalized_uri(path); g_free(path); + g_mutex_unlock(self->priv->lock); return self->priv->full_uri; } |
From: <svn...@op...> - 2009-09-22 07:28:24
|
Author: bricks Date: Tue Sep 22 09:28:11 2009 New Revision: 5835 URL: http://www.opensync.org/changeset/5835 Log: Fixed copy and paste mistake Modified: plugins/tomboy-sync/trunk/src/tomboy_sync_dbus.c Modified: plugins/tomboy-sync/trunk/src/tomboy_sync_dbus.c ============================================================================== --- plugins/tomboy-sync/trunk/src/tomboy_sync_dbus.c Tue Sep 22 09:15:22 2009 (r5834) +++ plugins/tomboy-sync/trunk/src/tomboy_sync_dbus.c Tue Sep 22 09:28:11 2009 (r5835) @@ -451,5 +451,5 @@ void osync_tomboysync_dbus_finalize(OSyncTomboyEnv *env) { osync_assert(env); - dbus_g_connection_unref(tomboyenv->connection); + dbus_g_connection_unref(env->connection); } |
From: <svn...@op...> - 2009-09-22 07:15:35
|
Author: bricks Date: Tue Sep 22 09:15:22 2009 New Revision: 5834 URL: http://www.opensync.org/changeset/5834 Log: moved missing tests dir to trunk Added: format-plugins/tomboy-note/trunk/tests/ (props changed) - copied from r5832, format-plugins/tomboy-note/tests/ Deleted: format-plugins/tomboy-note/tests/ |
From: <svn...@op...> - 2009-09-22 07:12:37
|
Author: bricks Date: Tue Sep 22 09:12:23 2009 New Revision: 5833 URL: http://www.opensync.org/changeset/5833 Log: set version of tomboy-sync to 0.40. min required opensync version is 0.39 moved files to trunk directory Added: plugins/tomboy-sync/trunk/ (props changed) plugins/tomboy-sync/trunk/CMakeLists.txt (contents, props changed) - copied, changed from r5832, plugins/tomboy-sync/CMakeLists.txt plugins/tomboy-sync/trunk/config.h.cmake (props changed) - copied unchanged from r5832, plugins/tomboy-sync/config.h.cmake plugins/tomboy-sync/trunk/src/ (props changed) - copied from r5832, plugins/tomboy-sync/src/ Deleted: plugins/tomboy-sync/CMakeLists.txt plugins/tomboy-sync/config.h.cmake plugins/tomboy-sync/src/ Modified: plugins/tomboy-sync/ (props changed) Copied and modified: plugins/tomboy-sync/trunk/CMakeLists.txt (from r5832, plugins/tomboy-sync/CMakeLists.txt) ============================================================================== --- plugins/tomboy-sync/CMakeLists.txt Tue Sep 22 09:08:44 2009 (r5832, copy source) +++ plugins/tomboy-sync/trunk/CMakeLists.txt Tue Sep 22 09:12:23 2009 (r5833) @@ -1,10 +1,10 @@ PROJECT( libopensync-plugin-tomboy-sync C ) -SET( VERSION "0.38" ) +SET( VERSION "0.40" ) SET( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules" ) -SET( OPENSYNC_MIN_VERSION "0.38" ) +SET( OPENSYNC_MIN_VERSION "0.39" ) CMAKE_MINIMUM_REQUIRED( VERSION 2.4.4 ) |
From: <svn...@op...> - 2009-09-22 07:08:59
|
Author: bricks Date: Tue Sep 22 09:08:44 2009 New Revision: 5832 URL: http://www.opensync.org/changeset/5832 Log: set version of tomboy-note to 0.40. min required opensync version is 0.39 created trunk directory for ongoing development Added: format-plugins/tomboy-note/trunk/ (props changed) format-plugins/tomboy-note/trunk/CMakeLists.txt (contents, props changed) - copied, changed from r5831, format-plugins/tomboy-note/CMakeLists.txt format-plugins/tomboy-note/trunk/src/ (props changed) - copied from r5831, format-plugins/tomboy-note/src/ Deleted: format-plugins/tomboy-note/CMakeLists.txt format-plugins/tomboy-note/src/ Modified: format-plugins/tomboy-note/ (props changed) Copied and modified: format-plugins/tomboy-note/trunk/CMakeLists.txt (from r5831, format-plugins/tomboy-note/CMakeLists.txt) ============================================================================== --- format-plugins/tomboy-note/CMakeLists.txt Mon Sep 21 23:22:06 2009 (r5831, copy source) +++ format-plugins/tomboy-note/trunk/CMakeLists.txt Tue Sep 22 09:08:44 2009 (r5832) @@ -1,10 +1,10 @@ PROJECT( libopensync-plugin-tomboy C ) -SET( VERSION "0.1" ) +SET( VERSION "0.40" ) SET( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules" ) -SET( OPENSYNC_MIN_VERSION "0.36" ) +SET( OPENSYNC_MIN_VERSION "0.39" ) CMAKE_MINIMUM_REQUIRED( VERSION 2.4.4 ) |
From: <svn...@op...> - 2009-09-21 21:22:24
|
Author: dgollub Date: Mon Sep 21 23:22:06 2009 New Revision: 5831 URL: http://www.opensync.org/changeset/5831 Log: Increase version in advance for snapshot builds Modified: osynctool/trunk/CMakeLists.txt Modified: osynctool/trunk/CMakeLists.txt ============================================================================== --- osynctool/trunk/CMakeLists.txt Mon Sep 21 23:21:36 2009 (r5830) +++ osynctool/trunk/CMakeLists.txt Mon Sep 21 23:22:06 2009 (r5831) @@ -1,6 +1,6 @@ PROJECT( osynctool C ) -SET( OSYNCTOOL_VERSION "0.39" ) +SET( OSYNCTOOL_VERSION "0.40" ) SET( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules" ) @@ -10,7 +10,7 @@ INCLUDE( Testing ) -SET( OPENSYNC_MIN_VERSION "0.39" ) +SET( OPENSYNC_MIN_VERSION "0.40" ) FIND_PACKAGE( OpenSync REQUIRED ) FIND_PACKAGE( GLIB2 REQUIRED ) |
From: <svn...@op...> - 2009-09-21 21:21:48
|
Author: dgollub Date: Mon Sep 21 23:21:36 2009 New Revision: 5830 URL: http://www.opensync.org/changeset/5830 Log: Increase version in advance for snapshot builds Modified: format-plugins/xmlformat/trunk/CMakeLists.txt Modified: format-plugins/xmlformat/trunk/CMakeLists.txt ============================================================================== --- format-plugins/xmlformat/trunk/CMakeLists.txt Mon Sep 21 23:21:07 2009 (r5829) +++ format-plugins/xmlformat/trunk/CMakeLists.txt Mon Sep 21 23:21:36 2009 (r5830) @@ -1,12 +1,12 @@ PROJECT( libopensync-plugin-xmlformat C ) -SET( VERSION "0.39" ) +SET( VERSION "0.40" ) SET( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules" ) CMAKE_MINIMUM_REQUIRED( VERSION 2.4.4 ) -SET( OPENSYNC_MIN_VERSION "0.39" ) +SET( OPENSYNC_MIN_VERSION "0.40" ) FIND_PACKAGE( OpenSync REQUIRED ) FIND_PACKAGE( GLIB2 REQUIRED ) FIND_PACKAGE( LibXml2 REQUIRED ) |
From: <svn...@op...> - 2009-09-21 21:21:21
|
Author: dgollub Date: Mon Sep 21 23:21:07 2009 New Revision: 5829 URL: http://www.opensync.org/changeset/5829 Log: Increase version in advance for snapshot builds Modified: format-plugins/vformat/CMakeLists.txt Modified: format-plugins/vformat/CMakeLists.txt ============================================================================== --- format-plugins/vformat/CMakeLists.txt Mon Sep 21 23:20:41 2009 (r5828) +++ format-plugins/vformat/CMakeLists.txt Mon Sep 21 23:21:07 2009 (r5829) @@ -1,6 +1,6 @@ PROJECT( libopensync-plugin-vformat C ) -SET( VERSION "0.39" ) +SET( VERSION "0.40" ) SET( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules" ) @@ -11,7 +11,7 @@ CMAKE_MINIMUM_REQUIRED( VERSION 2.4.4 ) -SET( OPENSYNC_MIN_VERSION "0.39" ) +SET( OPENSYNC_MIN_VERSION "0.40" ) FIND_PACKAGE( OpenSync REQUIRED ) FIND_PACKAGE( GLIB2 REQUIRED ) FIND_PACKAGE( Check ) |
From: <svn...@op...> - 2009-09-21 21:21:00
|
Author: dgollub Date: Mon Sep 21 23:20:41 2009 New Revision: 5828 URL: http://www.opensync.org/changeset/5828 Log: Increase version in advance for snapshot builds Modified: plugins/syncml/CMakeLists.txt Modified: plugins/syncml/CMakeLists.txt ============================================================================== --- plugins/syncml/CMakeLists.txt Mon Sep 21 23:20:06 2009 (r5827) +++ plugins/syncml/CMakeLists.txt Mon Sep 21 23:20:41 2009 (r5828) @@ -11,7 +11,7 @@ # find requirements SET ( LIBSYNCML_MIN_VERSION "0.5.0" ) -SET ( OPENSYNC_MIN_VERSION "0.39" ) +SET ( OPENSYNC_MIN_VERSION "0.40" ) FIND_PACKAGE( OpenSync REQUIRED ) FIND_PACKAGE( GLIB2 REQUIRED ) |
From: <svn...@op...> - 2009-09-21 21:20:19
|
Author: dgollub Date: Mon Sep 21 23:20:06 2009 New Revision: 5827 URL: http://www.opensync.org/changeset/5827 Log: Increase version in advance for snapshot builds Modified: plugins/evolution2/CMakeLists.txt Modified: plugins/evolution2/CMakeLists.txt ============================================================================== --- plugins/evolution2/CMakeLists.txt Mon Sep 21 23:19:45 2009 (r5826) +++ plugins/evolution2/CMakeLists.txt Mon Sep 21 23:20:06 2009 (r5827) @@ -1,11 +1,11 @@ CMAKE_MINIMUM_REQUIRED( VERSION 2.4.4 ) PROJECT( libopensync-plugin-evolution2 C ) -SET( VERSION "0.39" ) +SET( VERSION "0.40" ) SET( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules" ) -SET( OPENSYNC_MIN_VERSION "0.39" ) +SET( OPENSYNC_MIN_VERSION "0.40" ) FIND_PACKAGE( EPackage REQUIRED ) FIND_PACKAGE( OpenSync REQUIRED ) |