fixing common off-by-one error with respect to maximum message size
[oweals/gnunet.git] / src / fs / fs_getopt.c
index dfcc4fdc4a756781c433a59f4d69537aee71ebf9..f985ed8d0555c474f4a743b105bfa88a181b3cb5 100644 (file)
@@ -42,7 +42,7 @@
  * @return GNUNET_OK on success
  */
 int
-GNUNET_FS_getopt_configure_set_keywords (struct GNUNET_GETOPT_CommandLineProcessorContext* ctx, 
+GNUNET_FS_getopt_set_keywords (struct GNUNET_GETOPT_CommandLineProcessorContext* ctx, 
                                         void *scls,
                                         const char *option,
                                         const char *value)
@@ -124,14 +124,14 @@ GNUNET_FS_getopt_configure_set_keywords (struct GNUNET_GETOPT_CommandLineProcess
  * @return GNUNET_OK on success
  */
 int
-GNUNET_FS_getopt_configure_set_metadata (struct GNUNET_GETOPT_CommandLineProcessorContext* ctx, 
+GNUNET_FS_getopt_set_metadata (struct GNUNET_GETOPT_CommandLineProcessorContext* ctx, 
                                         void *scls,
                                         const char *option,
                                         const char *value)
 
 {
   struct GNUNET_CONTAINER_MetaData **mm = scls;
-  EXTRACTOR_KeywordType type;
+  enum EXTRACTOR_MetaType type;
   const char *typename;
   const char *typename_i18n;
   struct GNUNET_CONTAINER_MetaData *meta;
@@ -151,17 +151,23 @@ GNUNET_FS_getopt_configure_set_metadata (struct GNUNET_GETOPT_CommandLineProcess
                                "utf-8"
 #endif
     );
-  type = EXTRACTOR_getHighestKeywordTypeNumber ();
+  type = EXTRACTOR_metatype_get_max ();
   while (type > 0)
     {
       type--;
-      typename = EXTRACTOR_getKeywordTypeAsString (type);
+      typename = EXTRACTOR_metatype_to_string (type);
       typename_i18n = dgettext (LIBEXTRACTOR_GETTEXT_DOMAIN, typename);
       if ((strlen (tmp) >= strlen (typename) + 1) &&
           (tmp[strlen (typename)] == ':') &&
           (0 == strncmp (typename, tmp, strlen (typename))))
         {
-          GNUNET_CONTAINER_meta_data_insert (meta, type, &tmp[strlen (typename) + 1]);
+          GNUNET_CONTAINER_meta_data_insert (meta, 
+                                            "<gnunet>",
+                                            type,
+                                            EXTRACTOR_METAFORMAT_UTF8,
+                                            "text/plain",
+                                            &tmp[strlen (typename) + 1],
+                                            strlen (&tmp[strlen (typename) + 1])+1);
           GNUNET_free (tmp);
           tmp = NULL;
           break;
@@ -170,8 +176,13 @@ GNUNET_FS_getopt_configure_set_metadata (struct GNUNET_GETOPT_CommandLineProcess
           (tmp[strlen (typename_i18n)] == ':') &&
           (0 == strncmp (typename_i18n, tmp, strlen (typename_i18n))))
         {
-          GNUNET_CONTAINER_meta_data_insert (meta, type,
-                                            &tmp[strlen (typename_i18n) + 1]);
+          GNUNET_CONTAINER_meta_data_insert (meta,
+                                            "<gnunet>",
+                                            type,
+                                            EXTRACTOR_METAFORMAT_UTF8,
+                                            "text/plain",
+                                            &tmp[strlen (typename_i18n) + 1],
+                                            strlen (&tmp[strlen (typename_i18n) + 1]) + 1);
           GNUNET_free (tmp);
           tmp = NULL;
           break;
@@ -179,7 +190,13 @@ GNUNET_FS_getopt_configure_set_metadata (struct GNUNET_GETOPT_CommandLineProcess
     }
   if (tmp != NULL)
     {
-      GNUNET_CONTAINER_meta_data_insert (meta, EXTRACTOR_UNKNOWN, tmp);
+      GNUNET_CONTAINER_meta_data_insert (meta, 
+                                        "<gnunet>",
+                                        EXTRACTOR_METATYPE_UNKNOWN, 
+                                        EXTRACTOR_METAFORMAT_UTF8,
+                                        "text/plain",
+                                        tmp,
+                                        strlen(tmp) + 1);
       GNUNET_free (tmp);
       printf (_
               ("Unknown metadata type in metadata option `%s'.  Using metadata type `unknown' instead.\n"),