shared-storage.c revision f534c0d42f1470fca8e4ff3493c94927bf600260
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase/* Copyright (c) 2008-2011 Dovecot authors, see the included COPYING file */
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehasestatic struct mail_storage *shared_storage_alloc(void)
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase pool = pool_alloconly_create("shared storage", 1024);
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase storage = p_new(pool, struct shared_storage, 1);
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehaseshared_storage_create(struct mail_storage *_storage, struct mail_namespace *ns,
e206832a0402e82f2fd05b4d073388acc5ccb395Tim Reddehase const char **error_r)
e206832a0402e82f2fd05b4d073388acc5ccb395Tim Reddehase struct shared_storage *storage = (struct shared_storage *)_storage;
e206832a0402e82f2fd05b4d073388acc5ccb395Tim Reddehase const char *driver, *p;
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase /* location must begin with the actual mailbox driver */
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase *error_r = "Shared mailbox location not prefixed with driver";
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase driver = t_strdup_until(ns->set->location, p);
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase storage->location = p_strdup(_storage->pool, ns->set->location);
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase p_strdup(_storage->pool, ns->unexpanded_set->location);
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase storage->storage_class = mail_storage_find_class(driver);
2883814db03fc155dce10fa355421c6a60bba4fdTim Reddehase *error_r = t_strconcat("Unknown shared storage driver: ",
if (!have_username) {
const char **_name)
int ret;
if (*p != *name)
p++; name++;
i_unreached();
domain++;
if (ret > 0)
NULL,
NULL,
NULL,
NULL,
NULL,