|
|
|
@ -170,6 +170,7 @@ static void meta_ptime(metafile_t *mf, unsigned long mnum, int ptime) |
|
|
|
// updates the contents, does not remove previously set entries |
|
|
|
static void meta_metadata_parse(metafile_t *mf) { |
|
|
|
// XXX offload this parsing to proxy module -> bencode list/dictionary |
|
|
|
t_hash_table_remove_all(mf->metadata_parsed); |
|
|
|
str all_meta = STR_INIT(mf->metadata); |
|
|
|
while (all_meta.len > 1) { |
|
|
|
str token; |
|
|
|
@ -182,7 +183,12 @@ static void meta_metadata_parse(metafile_t *mf) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
t_hash_table_replace(mf->metadata_parsed, str_dup(&key), str_dup(&token)); |
|
|
|
str_q *q = t_hash_table_lookup(mf->metadata_parsed, &key); |
|
|
|
if (!q) { |
|
|
|
q = str_q_new(); |
|
|
|
t_hash_table_replace(mf->metadata_parsed, str_dup(&key), q); |
|
|
|
} |
|
|
|
t_queue_push_tail(q, str_dup(&token)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|