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