static bool cmd_report_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { int opt_code = 0; sieve_code_dumpf(denv, "REPORT"); sieve_code_descend(denv); /* Dump optional operands */ for (;;) { int opt; if ( (opt=sieve_opr_optional_dump (denv, address, &opt_code)) < 0 ) return FALSE; if ( opt == 0 ) break; switch ( opt_code ) { case OPT_HEADERS_ONLY: sieve_code_dumpf(denv, "headers_only"); break; default: return FALSE; } } return sieve_opr_string_dump(denv, address, "feedback-type") && sieve_opr_string_dump(denv, address, "message") && sieve_opr_string_dump(denv, address, "address"); }
static bool cmd_test_imap_metadata_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { int opt_code = 0; sieve_code_dumpf(denv, "%s:", sieve_operation_mnemonic(denv->oprtn)); sieve_code_descend(denv); /* Dump optional operands */ for (;;) { int opt; bool opok = TRUE; if ( (opt=sieve_opr_optional_dump(denv, address, &opt_code)) < 0 ) return FALSE; if ( opt == 0 ) break; switch ( opt_code ) { case OPT_MAILBOX: opok = sieve_opr_string_dump(denv, address, "mailbox"); break; default: return FALSE; } if ( !opok ) return FALSE; } return ( sieve_opr_string_dump(denv, address, "annotation") && sieve_opr_string_dump(denv, address, "value") ); }
static bool cmd_test_config_set_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { sieve_code_dumpf(denv, "TEST_CONFIG_SET:"); sieve_code_descend(denv); return sieve_opr_string_dump(denv, address, "setting") && sieve_opr_string_dump(denv, address, "value"); }
static bool cmd_test_config_reload_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { int opt_code = 0; sieve_code_dumpf(denv, "TEST_CONFIG_RELOAD:"); sieve_code_descend(denv); /* Dump optional operands */ for (;;) { int opt; bool opok = TRUE; if ( (opt=sieve_opr_optional_dump(denv, address, &opt_code)) < 0 ) return FALSE; if ( opt == 0 ) break; switch ( opt_code ) { case OPT_EXTENSION: opok = sieve_opr_string_dump(denv, address, "extensions"); break; default: opok = FALSE; break; } if ( !opok ) return FALSE; } return TRUE; }
static bool tst_spamvirustest_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { int opt_code = 0; const struct sieve_operation *op = denv->oprtn; sieve_code_dumpf(denv, "%s", sieve_operation_mnemonic(op)); sieve_code_descend(denv); /* Optional operands */ for (;;) { int opt; if ( (opt=sieve_match_opr_optional_dump(denv, address, &opt_code)) < 0 ) return FALSE; if ( opt == 0 ) break; switch ( opt_code ) { case OPT_SPAMTEST_PERCENT: sieve_code_dumpf(denv, "percent"); break; default: return FALSE; } } return sieve_opr_string_dump(denv, address, "value"); }
static bool cmd_error_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { sieve_code_dumpf(denv, "ERROR"); sieve_code_descend(denv); return sieve_opr_string_dump(denv, address, "message"); }
static bool cmd_test_binary_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { sieve_code_dumpf(denv, "%s:", sieve_operation_mnemonic(denv->oprtn)); sieve_code_descend(denv); return sieve_opr_string_dump(denv, address, "binary-name"); }
static bool cmd_test_set_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { sieve_code_dumpf(denv, "TEST SET:"); sieve_code_descend(denv); return testsuite_object_dump(denv, address) && sieve_opr_string_dump(denv, address, "value"); }
static bool cmd_execute_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { int opt_code = 0; unsigned int is_test = 0; /* Read is_test flag */ if ( !sieve_binary_read_byte(denv->sblock, address, &is_test) ) return FALSE; sieve_code_dumpf(denv, "EXECUTE (%s)", (is_test ? "test" : "command")); sieve_code_descend(denv); /* Dump optional operands */ for (;;) { int opt; bool opok = TRUE; if ( (opt=sieve_action_opr_optional_dump(denv, address, &opt_code)) < 0 ) return FALSE; if ( opt == 0 ) break; switch ( opt_code ) { case OPT_INPUT: opok = sieve_opr_string_dump_ex(denv, address, "input", "PIPE"); break; case OPT_OUTPUT: opok = sieve_opr_string_dump(denv, address, "output"); break; default: return FALSE; } if ( !opok ) return FALSE; } if ( !sieve_opr_string_dump(denv, address, "program-name") ) return FALSE; return sieve_opr_stringlist_dump_ex(denv, address, "arguments", ""); }
static bool ext_fileinto_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { sieve_code_dumpf(denv, "FILEINTO"); sieve_code_descend(denv); if ( sieve_action_opr_optional_dump(denv, address, NULL) != 0 ) return FALSE; return sieve_opr_string_dump(denv, address, "folder"); }
static bool cmd_filter_operation_dump (const struct sieve_dumptime_env *denv, sieve_size_t *address) { unsigned int is_test = 0; /* Read is_test flag */ if ( !sieve_binary_read_byte(denv->sblock, address, &is_test) ) return FALSE; sieve_code_dumpf(denv, "FILTER (%s)", (is_test ? "test" : "command")); sieve_code_descend(denv); /* Dump optional operands */ if ( sieve_action_opr_optional_dump(denv, address, NULL) != 0 ) return FALSE; if ( !sieve_opr_string_dump(denv, address, "program-name") ) return FALSE; return sieve_opr_stringlist_dump_ex(denv, address, "arguments", ""); }