[Top][All Lists]
[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r20771 - gnunet-fuse/src/ext,
gnunet <=