finished the command line parser

This commit is contained in:
Fufu Fang 2018-07-22 20:31:43 +01:00
parent 16d89b9ad0
commit 36dcba413f
2 changed files with 23 additions and 6 deletions

20
main.c
View File

@ -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 */

View File

@ -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);
}