gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r18852 - gnunet-gtk/src/fs


From: gnunet
Subject: [GNUnet-SVN] r18852 - gnunet-gtk/src/fs
Date: Fri, 30 Dec 2011 23:13:26 +0100

Author: grothoff
Date: 2011-12-30 23:13:26 +0100 (Fri, 30 Dec 2011)
New Revision: 18852

Modified:
   gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_file_publish.c
Log:
-LRN: give all directories embedded names; CG: except if they match HOME, 
that'd be far too dangerous

Modified: gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_file_publish.c
===================================================================
--- gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_file_publish.c  2011-12-30 
21:38:56 UTC (rev 18851)
+++ gnunet-gtk/src/fs/gnunet-fs-gtk-main_window_file_publish.c  2011-12-30 
22:13:26 UTC (rev 18852)
@@ -526,6 +526,7 @@
   GNUNET_CRYPTO_hash (filename, strlen (filename), &hc);
   GNUNET_CONTAINER_multihashmap_put (adc->metamap, &hc, pd,
                                      
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY);
+  /* FIXME: what if this put fails? I think it actually can... Why unique 
only? */
   GNUNET_CONTAINER_meta_data_iterate (pd->meta, &add_to_meta_counter,
                                       adc->metacounter);
 }
@@ -745,6 +746,9 @@
   struct GNUNET_CONTAINER_MultiHashMap *mhm;
   struct GNUNET_CONTAINER_MultiHashMap *mcm;
   unsigned int pc;
+  const char *ss;
+  const char *short_fn;
+  const char *user;
 
   if (0 != STAT (filename, &sbuf))
     return GNUNET_OK;
@@ -769,30 +773,33 @@
     adc->metacounter = mcm;
     adc->parent = parent;
     adc->dir_entry_count = pc + 1;
+    short_fn = filename;
+    while ( (NULL != (ss = strstr (short_fn, DIR_SEPARATOR_STR))) && 
+           (ss[1] != '\0') )
+      short_fn = 1 + ss;
+    user = getenv ("USER");
+    if ( (user == NULL) ||
+        (0 != strncasecmp (user,
+                           short_fn,
+                           strlen(user))) )
+    {
+      /* only use filename if it doesn't match $USER */
+      GNUNET_CONTAINER_meta_data_insert (pd->meta, "<gnunet-gtk>",
+                                        EXTRACTOR_METATYPE_FILENAME,
+                                        EXTRACTOR_METAFORMAT_UTF8,
+                                        "text/plain", short_fn,
+                                        strlen (short_fn) + 1);
+    }
     if (adc->metamap != NULL)
     {
       GNUNET_CRYPTO_hash (filename, strlen (filename), &hc);
       GNUNET_CONTAINER_multihashmap_put (adc->metamap, &hc, pd,
                                          
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY);
+      /* FIXME: what if this put fails? I think it actually can... Why unique 
only? */
       GNUNET_CONTAINER_meta_data_iterate (pd->meta, &add_to_meta_counter, mcm);
     }
     else
     {
-      char *filename_utf8;
-      const char *ss, *short_fn;
-
-      GNUNET_assert (mcm == NULL);
-      /* we're top-level */
-      short_fn = filename;
-      while (NULL != (ss = strstr (short_fn, DIR_SEPARATOR_STR)))
-        short_fn = 1 + ss;
-      filename_utf8 = GNUNET_GTK_from_loc_to_utf8 ((char *) short_fn);
-      GNUNET_CONTAINER_meta_data_insert (pd->meta, "<gnunet-gtk>",
-                                         EXTRACTOR_METATYPE_FILENAME,
-                                         EXTRACTOR_METAFORMAT_UTF8,
-                                         "text/plain", filename_utf8,
-                                         strlen (filename_utf8) + 1);
-      GNUNET_free_non_null (filename_utf8);
       add_entry_to_ts (adc->ts, &pd->iter, filename, &adc->bo, adc->do_index,
                        NULL, pd->meta);
     }
@@ -1540,6 +1547,7 @@
     return;
   GNUNET_CONTAINER_multihashmap_put (uc->seen, &hc, "dummy",
                                      
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST);
+  /* FIXME: what if this put fails?  Not convinced it cannot... */
   desc =
       GNUNET_CONTAINER_meta_data_get_first_by_types (last_meta,
                                                      
EXTRACTOR_METATYPE_DESCRIPTION,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]