Esempio n. 1
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");
}
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") );
}
Esempio n. 3
0
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");
}
Esempio n. 4
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;
}
Esempio n. 5
0
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");
}
Esempio n. 6
0
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");
}
Esempio n. 7
0
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");
}
Esempio n. 8
0
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");
}
Esempio n. 9
0
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", "");
}
Esempio n. 10
0
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");
}
Esempio n. 11
0
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", "");
}