From 36dcba413f6e4631afbb6cafd5c139f50f4f08dd Mon Sep 17 00:00:00 2001 From: Fufu Fang Date: Sun, 22 Jul 2018 20:31:43 +0100 Subject: [PATCH] finished the command line parser --- main.c | 20 +++++++++++++++++--- network.c | 9 ++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/main.c b/main.c index d6edf23..d5f0c70 100644 --- a/main.c +++ b/main.c @@ -23,13 +23,27 @@ static struct fuse_operations fs_oper = { .read = fs_read, }; +static void fs_usage() +{ + fprintf(stderr, + "usage: mount-http-dir [options] URL mount_point\n"); + abort(); +} int main(int argc, char **argv) { - network_init("http://127.0.0.1/~fangfufu/"); + /* + * Copied from: + * https://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/src/bbfs.c + */ + if ((argc < 3) || (argv[argc-2][0] == '-') || (argv[argc-1][0] == '-')) { + fs_usage(); + } -// return fuse_main(argc - 1, argv + 1, &fs_oper, NULL); + network_init(argv[argc-2]); + argv[argc-2] = argv[argc-1]; + argv[argc-1] = NULL; + argc--; return fuse_main(argc, argv, &fs_oper, NULL); - return 0; } /** \brief return the attributes for a single file indicated by path */ diff --git a/network.c b/network.c index 39ad92f..fb47ae8 100644 --- a/network.c +++ b/network.c @@ -65,8 +65,10 @@ static char *url_append(const char *url, const char *sublink) } /* This is the single thread version */ +#pragma GCC diagnostic ignored "-Wunused-function" static void do_transfer(CURL *curl) { +#pragma GCC diagnostic ignored "-Wformat" fprintf(stderr, "do_transfer(): handle %x\n", curl); fflush(stderr); CURLcode res = curl_easy_perform(curl); @@ -80,6 +82,7 @@ static void do_transfer(CURL *curl) } /* This is the version that uses curl multi handle */ +#pragma GCC diagnostic ignored "-Wunused-function" static void do_transfer_(CURL *curl) { /* Add the transfer handle */ @@ -171,9 +174,9 @@ WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp) void network_init(const char *url) { curl_global_init(CURL_GLOBAL_ALL); -// curl_multi = curl_multi_init(); -// curl_multi_setopt(curl_multi, CURLMOPT_MAXCONNECTS, -// (long)NETWORK_MAXIMUM_CONNECTION); + curl_multi = curl_multi_init(); + curl_multi_setopt(curl_multi, CURLMOPT_MAXCONNECTS, + (long)NETWORK_MAXIMUM_CONNECTION); ROOT_LINK_TBL = LinkTable_new(url); }