int mail_stats_connection_connect(struct stats_connection *conn,
struct mail_user *user)
{
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
string_t *str = t_str_new(128);
str_append(str, "CONNECT\t");
void mail_stats_connection_disconnect(struct stats_connection *conn,
struct mail_user *user)
{
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
string_t *str = t_str_new(128);
str_append(str, "DISCONNECT\t");
struct mail_user *user,
const struct stats *stats)
{
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
string_t *str = t_str_new(256);
buffer_t *buf;
#include "stats-plugin.h"
#define STATS_CONTEXT(obj) \
- MODULE_CONTEXT(obj, stats_storage_module)
+ MODULE_CONTEXT_REQUIRE(obj, stats_storage_module)
/* If session isn't refreshed every 15 minutes, it's dropped.
Must be smaller than MAIL_SESSION_IDLE_TIMEOUT_MSECS in stats server */
static void stats_io_activate(struct mail_user *user)
{
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
struct mail_stats *mail_stats;
if (stats_user_count == 1) {
static void stats_add_session(struct mail_user *user)
{
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
struct stats *new_stats, *diff_stats;
const char *error;
static void session_stats_refresh(struct mail_user *user)
{
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
unsigned int to_next_secs;
time_t now = time(NULL);
bool changed;
enum mailbox_transaction_flags flags,
const char *reason)
{
- struct stats_user *suser = STATS_USER_CONTEXT(box->storage->user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(box->storage->user);
struct stats_mailbox *sbox = STATS_CONTEXT(box);
struct mailbox_transaction_context *trans;
struct stats_transaction_context *strans;
{
struct stats_transaction_context *strans = STATS_CONTEXT(ctx);
struct stats_mailbox *sbox = STATS_CONTEXT(ctx->box);
- struct stats_user *suser = STATS_USER_CONTEXT(ctx->box->storage->user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(ctx->box->storage->user);
stats_transaction_free(suser, strans);
return sbox->module_ctx.super.transaction_commit(ctx, changes_r);
{
struct stats_transaction_context *strans = STATS_CONTEXT(ctx);
struct stats_mailbox *sbox = STATS_CONTEXT(ctx->box);
- struct stats_user *suser = STATS_USER_CONTEXT(ctx->box->storage->user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(ctx->box->storage->user);
stats_transaction_free(suser, strans);
sbox->module_ctx.super.transaction_rollback(ctx);
{
struct stats_mailbox *sbox = STATS_CONTEXT(ctx->transaction->box);
struct mail_user *user = ctx->transaction->box->storage->user;
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
bool ret;
ret = sbox->module_ctx.super.
static void stats_io_deactivate(struct mail_user *user)
{
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
unsigned int last_update_secs;
if (stats_global_user == NULL)
static void stats_user_stats_fill(struct mail_user *user, struct stats *stats)
{
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
struct mail_stats *mail_stats;
mail_stats = stats_fill_ptr(stats, mail_stats_item);
static void stats_user_deinit(struct mail_user *user)
{
- struct stats_user *suser = STATS_USER_CONTEXT(user);
+ struct stats_user *suser = STATS_USER_CONTEXT_REQUIRE(user);
struct stats_connection *stats_conn = suser->stats_conn;
i_assert(stats_user_count > 0);