summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/data.c b/data.c
index ad4ca7d..b3788e2 100644
--- a/data.c
+++ b/data.c
@@ -1894,6 +1894,7 @@ void tag_index(const char *id, const xs_dict *obj)
1894/* update the tag indexes for this object */ 1894/* update the tag indexes for this object */
1895{ 1895{
1896 const xs_list *tags = xs_dict_get(obj, "tag"); 1896 const xs_list *tags = xs_dict_get(obj, "tag");
1897 xs *md5_id = xs_md5_hex(id, strlen(id));
1897 1898
1898 if (is_msg_public(obj) && xs_type(tags) == XSTYPE_LIST && xs_list_len(tags) > 0) { 1899 if (is_msg_public(obj) && xs_type(tags) == XSTYPE_LIST && xs_list_len(tags) > 0) {
1899 xs *g_tag_dir = xs_fmt("%s/tag", srv_basedir); 1900 xs *g_tag_dir = xs_fmt("%s/tag", srv_basedir);
@@ -1920,7 +1921,9 @@ void tag_index(const char *id, const xs_dict *obj)
1920 mkdirx(tag_dir); 1921 mkdirx(tag_dir);
1921 1922
1922 xs *g_tag_idx = xs_fmt("%s/%s.idx", tag_dir, md5_tag); 1923 xs *g_tag_idx = xs_fmt("%s/%s.idx", tag_dir, md5_tag);
1923 index_add(g_tag_idx, id); 1924
1925 if (!index_in_md5(g_tag_idx, md5_id))
1926 index_add_md5(g_tag_idx, md5_id);
1924 1927
1925 FILE *f; 1928 FILE *f;
1926 xs *g_tag_name = xs_replace(g_tag_idx, ".idx", ".tag"); 1929 xs *g_tag_name = xs_replace(g_tag_idx, ".idx", ".tag");