gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r20555 - gnunet-fuse/src/ext
Date: Fri, 16 Mar 2012 07:49:42 +0100

Author: mauricio
Date: 2012-03-16 07:49:42 +0100 (Fri, 16 Mar 2012)
New Revision: 20555

Modified:
   gnunet-fuse/src/ext/Makefile.am
   gnunet-fuse/src/ext/gnunet-fuse.c
Log:
argv is "gnunet-fuse" and directory


Modified: gnunet-fuse/src/ext/Makefile.am
===================================================================
--- gnunet-fuse/src/ext/Makefile.am     2012-03-15 22:22:16 UTC (rev 20554)
+++ gnunet-fuse/src/ext/Makefile.am     2012-03-16 06:49:42 UTC (rev 20555)
@@ -14,7 +14,6 @@
        dirent.c \
        file.c \
        getattr.c \
-       main.c \
        mkdir.c \
        mknod.c \
        open.c \
@@ -38,8 +37,10 @@
 gnunet_fuse_LDFLAGS = \
   -export-dynamic
 gnunet_fuse_CPPFLAGS = \
-       -D_FILE_OFFSET_BITS=64 
+       -D_FILE_OFFSET_BITS=64 \
+       -DFUSE_USE_VERSION=26
 
+
 #check_PROGRAMS = \
 # test_fuse_api 
 #

Modified: gnunet-fuse/src/ext/gnunet-fuse.c
===================================================================
--- gnunet-fuse/src/ext/gnunet-fuse.c   2012-03-15 22:22:16 UTC (rev 20554)
+++ gnunet-fuse/src/ext/gnunet-fuse.c   2012-03-16 06:49:42 UTC (rev 20555)
@@ -35,13 +35,9 @@
 static int ret;
 
 static char *source;
+static char *directory;
 
-/*struct with renamed fuseoperations*/
-static struct fuse_operations fops = {};
 
-
-
-
 #include "gnunet/gnunet_common.h"
 #include "gnunet/gnunet_configuration_lib.h"
 #include "gnunet/gnunet_crypto_lib.h"
@@ -57,6 +53,7 @@
 
 #define LOG_STRERROR_FILE(kind,syscall,filename) GNUNET_log_from_strerror_file 
(kind, "util", syscall, filename)
 
+
 /**
  * Context for the command.
  */
@@ -144,155 +141,69 @@
  * @param task_cls closure for task
  * @return GNUNET_SYSERR on error, GNUNET_OK on success
  */
-int
-gnunet_fuse_run2 (int argc, char *const *argv, const char *binaryName,
-                    const char *binaryHelp,
-                    const struct GNUNET_GETOPT_CommandLineOption *options,
-                    GNUNET_PROGRAM_Main task, void *task_cls,
-                    int run_with_schedule)
-{
-  struct CommandContext cc;
-  char *path;
-  char *loglev;
-  char *logfile;
-  int ret;
-  unsigned int cnt;
-  unsigned long long skew_offset;
-  unsigned long long skew_variance;
-  long long clock_offset;
-  struct GNUNET_CONFIGURATION_Handle *cfg;
 
-  struct GNUNET_GETOPT_CommandLineOption defoptions[] = {
-    GNUNET_GETOPT_OPTION_CFG_FILE (&cc.cfgfile),
-    GNUNET_GETOPT_OPTION_HELP (binaryHelp),
-    GNUNET_GETOPT_OPTION_LOGLEVEL (&loglev),
-    GNUNET_GETOPT_OPTION_LOGFILE (&logfile),
-    GNUNET_GETOPT_OPTION_VERSION (PACKAGE_VERSION)
-  };
-  struct GNUNET_GETOPT_CommandLineOption *allopts;
-  const char *gargs;
-  char *lpfx;
-  char *spc;
 
-  logfile = NULL;
-  gargs = getenv ("GNUNET_ARGS");
-  if (gargs != NULL)
-  {
-    char **gargv;
-    unsigned int gargc;
-    int i;
-    char *tok;
-    char *cargs;
 
-    gargv = NULL;
-    gargc = 0;
-    for (i = 0; i < argc; i++)
-      GNUNET_array_append (gargv, gargc, GNUNET_strdup (argv[i]));
-    cargs = GNUNET_strdup (gargs);
-    tok = strtok (cargs, " ");
-    while (NULL != tok)
-    {
-      GNUNET_array_append (gargv, gargc, GNUNET_strdup (tok));
-      tok = strtok (NULL, " ");
-    }
-    GNUNET_free (cargs);
-    GNUNET_array_append (gargv, gargc, NULL);
-    argv = (char *const *) gargv;
-    argc = gargc - 1;
-  }
-  memset (&cc, 0, sizeof (cc));
-  loglev = NULL;
-  cc.task = task;
-  cc.task_cls = task_cls;
-  cc.cfg = cfg = GNUNET_CONFIGURATION_create ();
 
-  /* prepare */
-#if ENABLE_NLS
-  setlocale (LC_ALL, "");
-  path = GNUNET_OS_installation_get_path (GNUNET_OS_IPK_LOCALEDIR);
-  if (path != NULL)
-  {
-    BINDTEXTDOMAIN ("GNUnet", path);
-    GNUNET_free (path);
-  }
-  textdomain ("GNUnet");
-#endif
-  cnt = 0;
-  while (options[cnt].name != NULL)
-    cnt++;
-  allopts =
-      GNUNET_malloc ((cnt +
-                      1) * sizeof (struct GNUNET_GETOPT_CommandLineOption) +
-                     sizeof (defoptions));
-  memcpy (allopts, defoptions, sizeof (defoptions));
-  memcpy (&allopts
-          [sizeof (defoptions) /
-           sizeof (struct GNUNET_GETOPT_CommandLineOption)], options,
-          (cnt + 1) * sizeof (struct GNUNET_GETOPT_CommandLineOption));
-  cnt += sizeof (defoptions) / sizeof (struct GNUNET_GETOPT_CommandLineOption);
-  qsort (allopts, cnt, sizeof (struct GNUNET_GETOPT_CommandLineOption),
-         &cmd_sorter);
-  loglev = NULL;
-  cc.cfgfile = GNUNET_strdup (GNUNET_DEFAULT_USER_CONFIG_FILE);
-  lpfx = GNUNET_strdup (binaryName);
-  if (NULL != (spc = strstr (lpfx, " ")))
-    *spc = '\0';
-  if ((-1 ==
-       (ret =
-        GNUNET_GETOPT_run (binaryName, allopts, (unsigned int) argc, argv))) ||
-      (GNUNET_OK != GNUNET_log_setup (lpfx, loglev, logfile)))
-  {
-    GNUNET_CONFIGURATION_destroy (cfg);
-    GNUNET_free_non_null (cc.cfgfile);
-    GNUNET_free_non_null (loglev);
-    GNUNET_free_non_null (logfile);
-    GNUNET_free (allopts);
-    GNUNET_free (lpfx);
-    return GNUNET_SYSERR;
-  }
-  (void) GNUNET_CONFIGURATION_load (cfg, cc.cfgfile);
-  GNUNET_free (allopts);
-  GNUNET_free (lpfx);
-  if (GNUNET_OK ==
-      GNUNET_CONFIGURATION_get_value_number (cc.cfg, "testing", "skew_offset",
-                                             &skew_offset) &&
-      (GNUNET_OK ==
-       GNUNET_CONFIGURATION_get_value_number (cc.cfg, "testing",
-                                              "skew_variance", 
&skew_variance)))
-  {
-    clock_offset = skew_offset - skew_variance;
-    GNUNET_TIME_set_offset (clock_offset);
-  }
-  /* run */
-  cc.args = &argv[ret];
-  if (GNUNET_NO == run_with_schedule)
-  {
-         GNUNET_SCHEDULER_run (&program_main, &cc);
-  }
-  else
-  {
-         GNUNET_RESOLVER_connect (cc.cfg);
-         cc.task (cc.task_cls, cc.args, cc.cfgfile, cc.cfg);
-  }
-  /* clean up */
-  GNUNET_CONFIGURATION_destroy (cfg);
-  GNUNET_free_non_null (cc.cfgfile);
-  GNUNET_free_non_null (loglev);
-  GNUNET_free_non_null (logfile);
-  return GNUNET_OK;
-}
+#include <sys/stat.h>
+#include <string.h>
+#include <errno.h>
+#include <fuse.h>
+//#include "gnfs.h"
 
+static int ret;
 
-int
-gnunet_fuse_run (int argc, char *const *argv, const char *binaryName,
-                    const char *binaryHelp,
-                    const struct GNUNET_GETOPT_CommandLineOption *options,
-                    GNUNET_PROGRAM_Main task, void *task_cls)
-{
-       return gnunet_fuse_run2 (argc, argv, binaryName, binaryHelp, options, 
task, task_cls, GNUNET_NO);
-}
+int gn_getattr(const char *path, struct stat *stbuf)
+{};
+int gn_mknod(const char *path, mode_t mode, dev_t rdev)
+{};
+int gn_mkdir(const char *path, mode_t mode)
+{};
+int gn_unlink(const char *path)
+{};
+int gn_rmdir(const char *path)
+{};
+int gn_rename(const char *from, const char *to)
+{};
+int gn_truncate(const char *path, off_t size)
+{};
+int gn_open(const char *path, struct fuse_file_info *fi)
+{};
+int gn_read(const char *path, char *buf, size_t size, off_t offset,    struct 
fuse_file_info *fi)
+{};
+int gn_write(const char *path, const char *buf, size_t size, off_t offset, 
struct fuse_file_info *fi)
+{};
+int gn_release(const char *path, struct fuse_file_info *fi)
+{};
+int gn_readdir(const char *path, void *buf, fuse_fill_dir_t filler,    off_t 
offset, struct fuse_file_info *fi)
+{};
+int gn_utimens(const char *path, const struct timespec ts[2])
+{};
 
 
+/*struct with renamed fuseoperations*/
+static struct fuse_operations fops = {
+               .getattr = gn_getattr,
+               .mknod = gn_mknod,
+               .mkdir = gn_mkdir,
+               .unlink = gn_unlink,
+               .rmdir = gn_rmdir,
+               .rename = gn_rename,
+               .truncate = gn_truncate,
+               .open = gn_open,
+               .read = gn_read,
+               .write = gn_write,
+               .release = gn_release,
+               .readdir = gn_readdir,
+               .utimens = gn_utimens,
+};
+
+
+
+
+
+
+
 /**
  * Main function that will be run by the scheduler.
  *
@@ -307,17 +218,14 @@
      const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
+
        ret = 0;
-       int argc = 0;
-       while (args[argc] != NULL)
-       {
-               GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "`%s'\n", args[argc]);
-               argc++;
-       }
-       if (argc > 0)
-               fuse_main(argc, args, &fops, NULL);
-       else
-               GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No fuse arguments 
given\n");
+
+       char *a[2];
+       a[0]="gnunet-fuse";
+       a[1]= directory;
+   fuse_main(2, a, &fops, NULL);
+
 }
 
 /**
@@ -330,19 +238,23 @@
 int
 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,
        &GNUNET_GETOPT_set_string, &source},
+       {'d', "directory", "PATH",
+               gettext_noop ("path to your mountpoint"), 1,
+               &GNUNET_GETOPT_set_string, &directory},
        GNUNET_GETOPT_OPTION_END };
 
   return (GNUNET_OK ==
-          gnunet_fuse_run (argc,
+          GNUNET_PROGRAM_run2(argc,
                               argv,
                               "gnunet-fuse -s URI [-- FUSE-OPTIONS] 
DIRECTORYNAME", //"gnunet-fuse [options [value]]",
                               gettext_noop
                               ("fuse"),
-                              options, &run, NULL)) ? ret : 1;
+                              options, &run, NULL, GNUNET_YES)) ? ret : 1;
 }
 
 /* end of gnunet-fuse.c */




reply via email to

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