static void netfilter_print_info(Monitor *mon, NetFilterState *nf)

{

    char *str;

    ObjectProperty *prop;

    ObjectPropertyIterator iter;

    StringOutputVisitor *ov;



    /* generate info str */

    object_property_iter_init(&iter, OBJECT(nf));

    while ((prop = object_property_iter_next(&iter))) {

        if (!strcmp(prop->name, "type")) {

            continue;

        }

        ov = string_output_visitor_new(false);

        object_property_get(OBJECT(nf), string_output_get_visitor(ov),

                            prop->name, NULL);

        str = string_output_get_string(ov);

        visit_free(string_output_get_visitor(ov));

        monitor_printf(mon, ",%s=%s", prop->name, str);

        g_free(str);

    }

    monitor_printf(mon, "\n");

}

static void netfilter_print_info(Monitor *mon, NetFilterState *nf)

{

    char *str;

    ObjectProperty *prop;

    ObjectPropertyIterator iter;

    StringOutputVisitor *ov;



    

    object_property_iter_init(&iter, OBJECT(nf));

    while ((prop = object_property_iter_next(&iter))) {

        if (!strcmp(prop->name, "type")) {

            continue;

        }

        ov = string_output_visitor_new(false);

        object_property_get(OBJECT(nf), string_output_get_visitor(ov),

                            prop->name, NULL);

        str = string_output_get_string(ov);

        visit_free(string_output_get_visitor(ov));

        monitor_printf(mon, ",%s=%s", prop->name, str);

        g_free(str);

    }

    monitor_printf(mon, "\n");

}

static void FUNC_0(Monitor *VAR_0, NetFilterState *VAR_1)

{

    char *VAR_2;

    ObjectProperty *prop;

    ObjectPropertyIterator iter;

    StringOutputVisitor *ov;



    

    object_property_iter_init(&iter, OBJECT(VAR_1));

    while ((prop = object_property_iter_next(&iter))) {

        if (!strcmp(prop->name, "type")) {

            continue;

        }

        ov = string_output_visitor_new(false);

        object_property_get(OBJECT(VAR_1), string_output_get_visitor(ov),

                            prop->name, NULL);

        VAR_2 = string_output_get_string(ov);

        visit_free(string_output_get_visitor(ov));

        monitor_printf(VAR_0, ",%s=%s", prop->name, VAR_2);

        g_free(VAR_2);

    }

    monitor_printf(VAR_0, "\n");

}

static void FUNC_0(Monitor *VAR_0, NetFilterState *VAR_1)
{ char *VAR_2; ObjectProperty *prop; ObjectPropertyIterator iter; StringOutputVisitor *ov; object_property_iter_init(&iter, OBJECT(VAR_1)); while ((prop = object_property_iter_next(&iter))) { if (!strcmp(prop->name, "type")) { continue; } ov = string_output_visitor_new(false); object_property_get(OBJECT(VAR_1), string_output_get_visitor(ov),
prop->name, NULL); VAR_2 = string_output_get_string(ov); visit_free(string_output_get_visitor(ov)); monitor_printf(VAR_0, ",%s=%s", prop->name, VAR_2); g_free(VAR_2); } monitor_printf(VAR_0, "\n"); }