forked from pool/evolution-data-server
41 lines
1.2 KiB
Diff
41 lines
1.2 KiB
Diff
Index: servers/exchange/lib/e2k-autoconfig.c
|
|
===================================================================
|
|
--- servers/exchange/lib/e2k-autoconfig.c (revision 9780)
|
|
+++ servers/exchange/lib/e2k-autoconfig.c (working copy)
|
|
@@ -1516,6 +1516,8 @@ validate (const char *owa_url, char *use
|
|
}
|
|
|
|
if (*result == E2K_AUTOCONFIG_OK) {
|
|
+ int len;
|
|
+
|
|
*result = e2k_autoconfig_check_global_catalog (ac, &op);
|
|
e2k_operation_free (&op);
|
|
|
|
@@ -1524,6 +1526,13 @@ validate (const char *owa_url, char *use
|
|
path = g_strdup (euri->path + 1);
|
|
e2k_uri_free (euri);
|
|
|
|
+ /* no slash at the end of path */
|
|
+ len = strlen (path);
|
|
+ while (len && path [len - 1] == '/') {
|
|
+ path [len - 1] = '\0';
|
|
+ len--;
|
|
+ }
|
|
+
|
|
/* change a mailbox only if not set by the caller */
|
|
if (!exchange_params->mailbox || !*exchange_params->mailbox) {
|
|
mailbox = strrchr (path, '/');
|
|
@@ -1536,6 +1545,12 @@ validate (const char *owa_url, char *use
|
|
|
|
g_free (exchange_params->mailbox);
|
|
exchange_params->mailbox = g_strdup (mailbox);
|
|
+ } else {
|
|
+ /* always strip the mailbox part from the path */
|
|
+ char *slash = strrchr (path, '/');
|
|
+
|
|
+ if (slash)
|
|
+ *slash = '\0';
|
|
}
|
|
|
|
exchange_params->owa_path = g_strdup_printf ("%s%s", "/", path);
|