Example #1
0
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 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") );
}
Example #3
0
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");
}