imap-urlauth-backend.c revision d49214c55881d251a54edddb117ca7735360addc
/* Copyright (c) 2012 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "buffer.h"
#include "hex-binary.h"
#include "randgen.h"
#include "dict.h"
#include "mail-user.h"
#include "mail-storage.h"
#include "imap-urlauth-private.h"
#include "imap-urlauth-backend.h"
struct imap_urlauth_backend {
};
struct imap_urlauth_backend **backend_r)
{
struct imap_urlauth_backend *backend;
const char *error;
if (user->mail_debug)
return -1;
}
random_init();
return 0;
}
{
}
}
static int
const char *path, const char *mailbox_key)
{
struct dict_transaction_context *dtrans;
}
static int
const char *path)
{
struct dict_transaction_context *dtrans;
}
static int
const char *path, const char **mailbox_key_r)
{
}
unsigned char mailbox_key_r[IMAP_URLAUTH_KEY_LEN],
const char **error_r,
enum mail_error *error_code_r)
{
struct mailbox_metadata metadata;
int ret;
*error_r = "Internal server error";
return -1;
}
&mailbox_key_hex)) < 0)
return -1;
i_debug("imap-urlauth backend: %skey found for mailbox %s at %s",
}
if (ret == 0) {
if (!create)
return 0;
/* create new key */
mailbox_key_hex)) < 0)
return -1;
i_debug("imap-urlauth backend: created key for mailbox %s at %s",
}
} else {
/* read existing key */
i_error("imap-urlauth backend: key found for mailbox %s at %s is invalid",
return -1;
}
}
return 1;
}
{
struct mailbox_metadata metadata;
return 0;
}
{
struct dict_transaction_context *dtrans;
struct dict_iterate_context *diter;
int ret = 1;
if (dict_iterate_deinit(&diter) < 0)
ret = -1;
if (dict_transaction_commit(&dtrans) < 0)
ret = -1;
return ret;
}