Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2
libopensync-plugin-sunbird
libopensync-plugin-sunbird-readonly-fix.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File libopensync-plugin-sunbird-readonly-fix.diff of Package libopensync-plugin-sunbird
Index: src/sunbird_sync.c =================================================================== --- src/sunbird_sync.c (Revision 1860) +++ src/sunbird_sync.c (Revision 2371) @@ -57,11 +57,10 @@ GString* get_local_path_from_url(plugin_environment* env, const char* url) { GString* gstr; - const char* p = url + strlen(url); - while (p > url && *p != '/') - p--; - gstr = g_string_new(get_datapath(env)); - g_string_append(gstr, p); + guint hash; + gstr = g_string_new(NULL); + hash = g_string_hash(g_string_new(url)); + g_string_printf(gstr, "%s/%x.ics", get_datapath(env), hash); return gstr; } @@ -106,15 +105,17 @@ if (cfg->typ == TYP_WEBDAV) { - int tmpresult; + int tmpresult=0; GString *local_path = get_local_path_from_url(env, cfg->filename->str); if (upload) { - osync_trace(TRACE_INTERNAL, "Uploading %s -> %s", - local_path->str, cfg->filename->str); - tmpresult = webdav_upload(local_path->str, cfg->filename->str, - cfg->username->str, cfg->password->str); + if(!cfg->isreadonly){ + osync_trace(TRACE_INTERNAL, "Uploading %s -> %s", + local_path->str, cfg->filename->str); + tmpresult = webdav_upload(local_path->str, cfg->filename->str, + cfg->username->str, cfg->password->str); + } } else { osync_trace(TRACE_INTERNAL, "Downloading %s -> %s", @@ -569,13 +570,14 @@ strcmp((char*)cur->name, "file")== 0 || strcmp((char*)cur->name, "webdav") == 0)) { plugin_calendar_config *cfg; - xmlChar *attr_default, *attr_username, *attr_password; + xmlChar *attr_default, *attr_username, *attr_password, *attr_isreadonly; xmlChar *attr_filename, *attr_deletedaysold; osync_trace(TRACE_INTERNAL, "reading node of type '%s'", cur->name); cfg = (plugin_calendar_config*)g_malloc0(sizeof(plugin_calendar_config)); cfg->isdefault = 0; + cfg->isreadonly = 0; cfg->filename = NULL; cfg->username = NULL; cfg->password = NULL; @@ -587,6 +589,7 @@ /* Parse attributes of this node */ attr_default = xmlGetProp(cur, (const xmlChar*)"default"); + attr_isreadonly = xmlGetProp(cur, (const xmlChar*)"read-only"); attr_username = xmlGetProp(cur, (const xmlChar*)"username"); attr_password = xmlGetProp(cur, (const xmlChar*)"password"); attr_deletedaysold = xmlGetProp(cur, (const xmlChar*)"deletedaysold"); @@ -602,6 +605,13 @@ xmlFree(attr_default); osync_trace(TRACE_INTERNAL, "set isdefault to %i", cfg->isdefault); } + + if (attr_isreadonly) + { + cfg->isreadonly = atoi((char*)attr_isreadonly); + xmlFree(attr_isreadonly); + osync_trace(TRACE_INTERNAL, "set isreadonly to %i", cfg->isreadonly); + } if (attr_username) { Index: src/sunbird_sync.h =================================================================== --- src/sunbird_sync.h (Revision 1860) +++ src/sunbird_sync.h (Revision 2371) @@ -10,6 +10,7 @@ int typ; /* one of CALENDAR_CONFIG_TYP_... */ int isdefault; /* boolean */ int deletedaysold; /* integer, 0=don't delete (default) */ + int isreadonly; /* don't upload webdav (default false) */ GString* filename; GString* username; /* can be NULL if not specified */ GString* password; /* can be NULL if not specified */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor