Returns now GNUNET_SYSERR
[oweals/gnunet.git] / src / util / container_meta_data.c
index 3f2d7a95c6ec9067317513fa7a9156f3df9caae1..9d20f8dc59ebaa8e428fc94489ada134ede7132e 100644 (file)
@@ -283,7 +283,6 @@ GNUNET_CONTAINER_meta_data_insert (struct GNUNET_CONTAINER_MetaData *md,
       if (pos->data_size < data_len)
        break;
       if ( (pos->type == type) &&
-          (pos->format == format) &&
           (pos->data_size == data_len) &&
           (0 == memcmp (pos->data, 
                         data,
@@ -295,6 +294,12 @@ GNUNET_CONTAINER_meta_data_insert (struct GNUNET_CONTAINER_MetaData *md,
              pos->mime_type = GNUNET_strdup (data_mime_type);
              invalidate_sbuf (md);  
            }
+         if ( (pos->format == EXTRACTOR_METAFORMAT_C_STRING) &&
+              (format == EXTRACTOR_METAFORMAT_UTF8) )
+           {
+             pos->format = EXTRACTOR_METAFORMAT_UTF8;
+             invalidate_sbuf (md);
+           }
          return GNUNET_SYSERR;
        }
       prev = pos;
@@ -585,8 +590,9 @@ GNUNET_CONTAINER_meta_data_get_thumbnail (const struct
   match = NULL;
   pos = md->items;
   while (NULL != pos)
-    {
-      if ( (0 == strncasecmp ("image/", pos->mime_type,
+    {      
+      if ( (NULL != pos->mime_type) && 
+          (0 == strncasecmp ("image/", pos->mime_type,
                              strlen("image/"))) &&
           (pos->format == EXTRACTOR_METAFORMAT_BINARY) )
        {