int
of_list_uint8_first(of_list_uint8_t *list,
    of_uint8_t *obj)
{
    int rv;

    of_uint8_init(obj,
            list->version, 0, 1);
    if ((rv = of_list_first((of_object_t *)list, (of_object_t *)obj)) < 0) {
        return rv;
    }

    of_object_wire_init((of_object_t *) obj, OF_UINT8,
                        list->length);
    if (obj->length == 0) {
        return OF_ERROR_PARSE;
    }

    return rv;
}
Exemple #2
0
of_uint8_t *
of_uint8_new(of_version_t version)
{
    of_uint8_t *obj;
    int bytes;

    bytes = of_object_fixed_len[version][OF_UINT8] + of_object_extra_len[version][OF_UINT8];

    /* Allocate a maximum-length wire buffer assuming we'll be appending to it. */
    if ((obj = (of_uint8_t *)of_object_new(OF_WIRE_BUFFER_MAX_LENGTH)) == NULL) {
        return NULL;
    }

    of_uint8_init(obj, version, bytes, 0);

    if (of_uint8_push_wire_values(obj) < 0) {
        FREE(obj);
        return NULL;
    }

    return obj;
}