gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r20771 - gnunet-fuse/src/ext


From: gnunet
Subject: [GNUnet-SVN] r20771 - gnunet-fuse/src/ext
Date: Mon, 26 Mar 2012 15:26:59 +0200

Author: mauricio
Date: 2012-03-26 15:26:59 +0200 (Mon, 26 Mar 2012)
New Revision: 20771

Modified:
   gnunet-fuse/src/ext/gnunet-fuse.c
   gnunet-fuse/src/ext/gnunet-fuse.h
   gnunet-fuse/src/ext/readdir.c
Log:
-n.w.c


Modified: gnunet-fuse/src/ext/gnunet-fuse.c
===================================================================
--- gnunet-fuse/src/ext/gnunet-fuse.c   2012-03-26 13:17:34 UTC (rev 20770)
+++ gnunet-fuse/src/ext/gnunet-fuse.c   2012-03-26 13:26:59 UTC (rev 20771)
@@ -31,11 +31,16 @@
 
 #include "gnunet-fuse.h"
 #include <gnunet/gnunet_container_lib.h>
+#include <gnunet/gnunet_crypto_lib.h>
 
+struct GNUNET_CONTAINER_MultiHashMap *map;
+
 static int ret;
 
 
 
+
+
 /* Context for the command. */
 struct CommandContext
 {
@@ -134,6 +139,46 @@
           a[4] = "-d";
        }
 
+
+       /* Store a key-value pair in the map. */
+                       struct path_uri *t;
+
+                       t = GNUNET_malloc (sizeof (struct path_uri));
+
+                       GNUNET_CONTAINER_multihashmap_put (map, directory, 
source, GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY);
+
+
+
+/* create MultiHashMap
+struct GNUNET_CONTAINER_MultiHashMap *map;
+unsigned int len = strlen(path);
+
+map = GNUNET_malloc (sizeof (struct GNUNET_CONTAINER_MultiHashMap));
+map = GNUNET_CONTAINER_multihashmap_create (len);
+*/
+
+/* compute key
+
+int size = sizeof(block);
+struct path_uri * r;
+
+GNUNET_CRYPTO_hash (path, len, r);
+*/
+
+
+/* Store a key-value pair in the map.
+
+struct path_uri *t;
+
+t = GNUNET_malloc (sizeof (struct path_uri));
+
+GNUNET_CONTAINER_multihashmap_put (map, t->path, t->source, 
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY);
+
+
+*/
+
+
+/* main function of fuse */
        fuse_main(argc, a, &fops, NULL);
 }
 
@@ -148,8 +193,6 @@
 main (int argc, char *const *argv)
 {
 
-
-
        static const struct GNUNET_GETOPT_CommandLineOption options[] = {
        {'s', "source", "URI",
        gettext_noop ("Source you get the URI from"), 1,

Modified: gnunet-fuse/src/ext/gnunet-fuse.h
===================================================================
--- gnunet-fuse/src/ext/gnunet-fuse.h   2012-03-26 13:17:34 UTC (rev 20770)
+++ gnunet-fuse/src/ext/gnunet-fuse.h   2012-03-26 13:26:59 UTC (rev 20771)
@@ -46,15 +46,19 @@
 static char *directory;
 
 
+
 /* struct containing mapped Path, with URI and other Information like 
Attributes etc. */
 
-struct gnunet_fuse_path_uri
+struct path_uri
 {
 /* uri to corresponding path */
        char* source;
-
+/* pathname */
+       char* path;
+/* key */
+       int key;
 /*name of temporary file */
-       char* tf;
+       char* tmpfile;
 };
 
 

Modified: gnunet-fuse/src/ext/readdir.c
===================================================================
--- gnunet-fuse/src/ext/readdir.c       2012-03-26 13:17:34 UTC (rev 20770)
+++ gnunet-fuse/src/ext/readdir.c       2012-03-26 13:26:59 UTC (rev 20771)
@@ -38,6 +38,8 @@
 //#include <GNUnet/gnunet_ecrs_lib.h>
 #include <gnunet-fuse.h>
 #include <gnunet/gnunet_fs_service.h>
+#include <gnunet/gnunet_container_lib.h>
+#include "gnunet/gnunet_crypto_lib.h"
 
 static int ret;
 
@@ -63,6 +65,10 @@
 
 static struct GNUNET_FS_Handle *ctx;
 
+struct GNUNET_CONTAINER_MultiHashMap *map;
+
+
+
 static void
 cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
@@ -84,7 +90,7 @@
 }
 
 
-
+/* callback function */
 void *progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo * info)
 {
 
@@ -161,18 +167,16 @@
        struct GNUNET_FS_Uri *uri;
        char *emsg;
        enum GNUNET_FS_DownloadOptions options;
-       struct gnunet_fuse_path_uri *w;
 
-       w = GNUNET_malloc (sizeof (struct gnunet_fuse_path_uri));
 
-       w->tf = GNUNET_DISK_mktemp("gnunet-fuse-tempfile");
-       w->source = source;
+
        uri = GNUNET_FS_uri_parse(w->source, &emsg);
 
        if (NULL == uri)
        {
          FPRINTF (stderr, _("Failed to parse URI: %s\n"), emsg);
          GNUNET_free (emsg);
+         GNUNET_FS_stop (ctx); // ?? hmmm....stop before start ??
        }
 
 
@@ -197,7 +201,7 @@
            options |= GNUNET_FS_DOWNLOAD_OPTION_LOOPBACK_ONLY;
 
        struct GNUNET_FS_DownloadContext* dc;
-       dc = GNUNET_FS_download_start (fs, uri, NULL, w->tf, NULL, 0,
+       dc = GNUNET_FS_download_start (fs, uri, NULL, w->tmpfile, NULL, 0,
                                                                
GNUNET_FS_uri_chk_get_file_size(uri),
                                                                anonymity, 
options, NULL, NULL);
 
@@ -221,6 +225,28 @@
        (void) fi;
        (void) offset;
 
+
+       /* create MultiHashMap */
+               unsigned int len = strlen();
+
+               map = GNUNET_malloc (sizeof (struct 
GNUNET_CONTAINER_MultiHashMap));
+               map = GNUNET_CONTAINER_multihashmap_create (len);
+
+
+               /* compute key */
+               struct path_uri * r;
+
+               GNUNET_CRYPTO_hash (r->path, len, r->key);
+
+
+               /* find value with given key */
+
+               w = GNUNET_malloc (sizeof (struct path_uri));
+               w->tmpfile = GNUNET_DISK_mktemp("gnunet-fuse-tempfile");
+               w->source = GNUNET_CONTAINER_multihashmap_get (map, w->path);
+
+
+
        GNUNET_SCHEDULER_run(&readdir_task, NULL);
 
 




reply via email to

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