void TestBencodeCloneClones(
    CuTest * tc
)
{
    bencode_t ben, ben2;

    char *str = strdup("d3:keyl4:test3:fooe3:foo3:bare");

    bencode_init(&ben, str, strlen(str));

    bencode_clone(&ben, &ben2);

    CuAssertTrue(tc, !strcmp(ben.str, ben2.str));
    CuAssertTrue(tc, !strcmp(ben.start, ben2.start));
    CuAssertTrue(tc, ben.len == ben2.len);
    free(str);
}
int BencodeParser::bencode_dict_get_start_and_len(
		bencode_t * be,
		const char **start,
		int *len
)
{
	bencode_t ben, ben2;
	const char *ren;
	int tmplen;

	bencode_clone(be, &ben);
	*start = ben.str;
	while (bencode_dict_has_next(&ben))
		bencode_dict_get_next(&ben, &ben2, &ren, &tmplen);

	*len = ben.str - *start + 1;
	return 0;
}