static struct ext_ihave_binary_context *ext_ihave_binary_create_context (const struct sieve_extension *this_ext, struct sieve_binary *sbin) { pool_t pool = sieve_binary_pool(sbin); struct ext_ihave_binary_context *ctx = p_new(pool, struct ext_ihave_binary_context, 1); ctx->binary = sbin; p_array_init(&ctx->missing_extensions, pool, 64); sieve_binary_extension_set(sbin, this_ext, &ihave_binary_ext, ctx); return ctx; }
static struct ext_include_binary_context *ext_include_binary_create_context (const struct sieve_extension *this_ext, struct sieve_binary *sbin) { pool_t pool = sieve_binary_pool(sbin); struct ext_include_binary_context *ctx = p_new(pool, struct ext_include_binary_context, 1); ctx->binary = sbin; hash_table_create(&ctx->included_scripts, pool, 0, sieve_script_hash, sieve_script_cmp); p_array_init(&ctx->include_index, pool, 128); sieve_binary_extension_set(sbin, this_ext, &include_binary_ext, ctx); return ctx; }