Fufu Fang
b6777c0478
Bugfix: No longer deadlock after encountering HTTP 429 while filling up a Linktable.
...
- Renamed some functions
- After initialise parse of the HTML file, files are no longer assigned as LINK_FILE. They are now assigned as LINK_UNINITIALISED_FILE.
- Link_req_file_stat() now crashes if the link type is other than LINK_UNINITIALISED_FILE.
2019-09-04 17:43:18 +01:00
Fufu Fang
367ce58e7f
change the maximum number of stack frames returned by backtrace()
2019-09-03 19:29:37 +01:00
Fufu Fang
cf49bf86b8
improved LinkTable_fill() status message
2019-09-03 15:12:38 +01:00
Fufu Fang
656edbf578
improved error messages when mutex locking/unlocking fails
2019-09-03 14:59:30 +01:00
Fufu Fang
c7dfa241d4
Backtrace will now be printed when the program crashes
...
- Note that static functions are not included in the printed backtrace.
2019-09-03 14:53:32 +01:00
Fufu Fang
9ff099cd3a
added a status indicator when filling up the linktable
2019-09-03 14:02:41 +01:00
Fufu Fang
765f4e00d0
Updated Makefile, fixed issue #44
...
- When header files get changed, the relevant object will get recompiled.
2019-09-02 17:56:23 +01:00
Fufu Fang
ee397d1513
Data_read() no longer gives warning messages when reaching the end of the cache file.
2019-09-02 16:51:42 +01:00
Fufu Fang
4c0b7da34b
stop the background download thread from pre-fetching beyond EOF
2019-09-02 16:05:55 +01:00
Fufu Fang
eb463478a8
The background download thread is being spawned again.
2019-09-02 15:47:10 +01:00
Fufu Fang
6c8a15d8cc
Fixed buffer over-read at the boundary.
...
- Say we are using a lock size of 1024k, we send a request for 128k at 1008k. It won't trigger the download, because we already download 1024k at 0. So it would read off from the empty disk space!
- This problem only occurs during the first time you download a file. During subsequent accesses, when you are only reading from the cache, this problem does not occur.
2019-09-02 15:19:41 +01:00
Fufu Fang
9e3e4747ae
fixed Cache_bgdl()
...
- Cache_bgdl() used to corrupt the cache file
2019-09-02 09:04:20 +01:00
Fufu Fang
e06ea6dc06
Wrapped mutex lock / unlock functions into function rather than macro
2019-09-01 21:36:58 +01:00
Fufu Fang
ed5457c76f
Bugfix: partially fixed the cache lock
...
- now when the same file is opened twice, the fread() output is consistent.
2019-09-01 11:39:47 +01:00
Fufu Fang
20f30a0e38
Tidied up some of the comments and formatting
2019-09-01 08:52:18 +01:00
Fufu Fang
1a44a4d960
Wrapped mutex locking and unlocking functions in error checking macro
2019-09-01 01:21:40 +01:00
Fufu Fang
92a9658c66
Cache system bug fix
...
- Now keep track of the number of times a file has been opened. The on-disk
cache file no longer gets opened multiple times, if a file is opened multiple
times.
2019-09-01 00:43:50 +01:00
Fufu Fang
afb2a8fe6c
Directory listing performance improvement while file transfers are going on
...
- Added a LinkTable generation priority lock
- This allows LinkTable generation to be run exclusively. This
effectively gives LinkTable generation priority over file transfer.
2019-08-31 21:21:28 +01:00
Fufu Fang
d6fbcb4113
fixed issue #40
...
curl handles should NOT be added when there are transfers going on!!!
2019-08-31 08:10:36 +01:00
Fufu Fang
600f3c3fe5
added more documentation
2019-08-27 10:52:46 +01:00
Fufu Fang
20577e516c
updated README.me, suppress "-Wunused-function" in crypto lock function in network.c
2019-08-24 18:13:47 +01:00
Fufu Fang
e409e816eb
Merge branch 'master' of github.com:fangfufu/httpdirfs
2019-08-23 23:21:26 +01:00
Fufu Fang
23611b8b1c
Version 1.1.7
...
- Now mutex associated debugging outputs are not compiled by default.
- Tagging version 1.1.7
2019-08-23 23:15:01 +01:00
Jerome Charaoui
6ba5ccda0e
tweak usage texts
2019-08-23 12:44:06 -04:00
Jerome Charaoui
145f70aa33
refer to usage info on argument parsing error
2019-08-23 12:43:23 -04:00
Jerome Charaoui
e71576ded6
print limited FUSE options
2019-08-23 12:42:39 -04:00
Jerome Charaoui
290ad9482e
rename long help function
2019-08-23 12:40:19 -04:00
Fufu Fang
45cee81e15
reverting segment size back to 8MB
2019-07-28 09:38:54 +01:00
Fufu Fang
71da71148f
removed excess fflush
2019-07-28 09:31:49 +01:00
Fufu Fang
ab15800b3a
improved error message
2019-07-28 08:20:17 +01:00
Fufu Fang
c72b0d4a7f
added pthread_detach() for cleanup
2019-07-27 02:49:38 +01:00
Fufu Fang
91af975ff8
changed default segment size, moved the locking sequence of bgt_lock and rw_lock
2019-07-26 00:06:36 +01:00
Fufu Fang
64cd6ca2c6
added more debug messages
2019-07-24 17:55:32 +01:00
Fufu Fang
c660159a18
added mutex locking / unlocking messages
2019-07-22 09:25:30 +01:00
Fufu Fang
ee2d3edcbf
Fixed issue #37
...
If a cache file already exists, the download segment size is set
to the size set by the metadata. The user specified download
segment size is ignored for existing cache files.
2019-07-21 17:53:35 +01:00
Fufu Fang
6aa180db5e
updated some error message
2019-07-21 17:08:25 +01:00
Fufu Fang
ed37aa5ca0
removed CURL_LOCK_DATA_CONNECT to solve #36 without disabling HTTP2
2019-07-21 08:41:02 +01:00
Fufu Fang
4491377f64
forces HTTP1.1 to fix issue #36
2019-07-20 19:25:25 +01:00
Fufu Fang
78d816716c
Fixed issue #34 - file / directory detection
2019-07-20 17:19:40 +01:00
Fufu Fang
a4fd2e17dc
changed variable size to fix Wstringop-truncation warnings
2019-07-20 15:33:08 +01:00
Fufu Fang
22b672d4e2
updated help message and readme
2019-04-30 08:24:56 +01:00
Fufu Fang
283520136c
Closing issue #33 , now set a default cache directory
2019-04-30 08:06:09 +01:00
Fufu Fang
99b530ee15
changed the way the full path for the config file is calculated.
2019-04-29 23:40:48 +01:00
Fufu Fang
88efbdf87c
path_append now check both path and filename for '/'
2019-04-29 23:40:21 +01:00
Fufu Fang
f1c7e6e97e
setting CURLMOPT_MAX_HOST_CONNECTIONS just in case
2019-04-28 01:24:35 +01:00
Fufu Fang
74878cfcfe
rearranged the orders of the help text
2019-04-27 04:59:46 +01:00
Fufu Fang
4acf91a2b8
added --max-seg-count command line option
2019-04-27 04:52:39 +01:00
Fufu Fang
2a93e95aea
improved debug message formatting
2019-04-27 03:28:28 +01:00
Fufu Fang
ba8c7232e2
HTTP 429, LinkTable_print(), variable shadowing
...
changed the way HTTP 429 gets handled while querying for file stats
fixed LinkTable_print(), added variable shawdowing warning in Makefile
2019-04-27 02:42:29 +01:00
Fufu Fang
2a2ac2dce2
rewrote curl_multi_perform_once()
2019-04-27 01:53:09 +01:00
Fufu Fang
2cee4b33a7
cosmetic changes
2019-04-26 23:29:16 +01:00
Fufu Fang
3c0a5fdf65
removed excess #include directive
2019-04-26 23:10:09 +01:00
Fufu Fang
040092b8bb
improved error message during sleeping
2019-04-26 20:39:29 +01:00
Fufu Fang
7c1c1d2195
added retry-wait command line option
2019-04-26 20:37:49 +01:00
Fufu Fang
6cef84874c
fixed LinkTable_print()
2019-04-26 19:49:20 +01:00
Fufu Fang
17587852ff
fixed LinkTable_gap_fill
2019-04-26 19:47:03 +01:00
Fufu Fang
1dc54afdeb
Improved LinkTable_fill() and LinkTable_gapfill()
2019-04-26 19:30:39 +01:00
Fufu Fang
245d4a3ff4
removed the restriction for Link_get_stat()
2019-04-26 18:53:26 +01:00
Fufu Fang
9fe02d8304
reverted LINK_INVALID to '\0'
2019-04-26 18:50:41 +01:00
Fufu Fang
99761b249a
restored LinkTable_print()
2019-04-26 18:45:38 +01:00
Fufu Fang
8110438cd1
reduce the amount of debug output
2019-04-26 18:30:35 +01:00
Fufu Fang
e2c47260a0
now calculate the number of invalid links in the linktable
2019-04-26 18:25:40 +01:00
Fufu Fang
3f41aba125
remove unnecessary lock
2019-04-26 18:09:39 +01:00
Fufu Fang
84f2ebc970
improved error messages
2019-04-26 16:24:55 +01:00
Fufu Fang
39820e3814
improved performance when encountering HTTP 429
2019-04-26 16:20:01 +01:00
Fufu Fang
9717d016ed
added LinkTable_gap_fill() to fill in the gaps in the link table when it is loaded from the disk
2019-04-26 15:35:48 +01:00
Fufu Fang
15cbe8a693
removed some locks
2019-04-26 14:36:54 +01:00
Fufu Fang
7d81d742d3
more error messages in curl_process_msgs() for handling HTTP 429
2019-04-26 14:25:52 +01:00
Fufu Fang
04c0499fae
added HTTP 429 handling for file stat query
2019-04-26 14:14:42 +01:00
Fufu Fang
93f9701aa8
minor error message formatting
2019-04-26 13:32:59 +01:00
Fufu Fang
774f14c8e7
if we get HTTP 429, wait for 5 secs
2019-04-26 13:20:55 +01:00
Fufu Fang
9065dcffb5
minor bug fix
2019-04-26 11:43:35 +01:00
Fufu Fang
edc3df733c
minor bug fix
2019-04-26 11:42:11 +01:00
Fufu Fang
85d66adf6c
added command line switch to configure user agent and the maximum number of network connections allowed
2019-04-26 11:39:03 +01:00
Fufu Fang
f4fd419528
added command line option to change the number of the maximum number of network connection allowed
2019-04-26 11:27:39 +01:00
Fufu Fang
80a98a79f9
improved thread synchronisation, to stop Cache_read() from downloading the segment that is being downloaded in the background by Cache_bgdl()
2019-04-26 10:57:07 +01:00
Fufu Fang
f479482d7b
stop Cache_bgdl() from downloading past the last segment, remove excess debug message
2019-04-26 10:36:25 +01:00
Fufu Fang
5f6fc3f761
Now caches the directory structures by dumping LinkTables to the disk.
2019-04-26 08:26:47 +01:00
Fufu Fang
9a5f37d91f
replaced strndupcat with path_append, added LinkTable_disk_*() functions
2019-04-26 07:39:45 +01:00
Fufu Fang
825bd4d3fb
added the command line switch to control the download segment size
2019-04-25 21:34:07 +01:00
Fufu Fang
b6b101bc63
removed unnecessary goto statements
2019-04-25 13:14:54 +01:00
Fufu Fang
df025b1caf
improved the correctness of Cache_bgdl()
2019-04-25 08:50:04 +01:00
Fufu Fang
f5acebafe2
Merge branch 'master' of github.com:fangfufu/httpdirfs
2019-04-25 01:17:18 +01:00
Fufu Fang
f628939713
Now dynamically allocate the receive buffers on the heap.
2019-04-25 00:58:29 +01:00
Fufu Fang
86999915e8
Merge pull request #29 from Lewiscowles1986/patch-1
...
Make larger block size
2019-04-24 23:59:02 +01:00
Fufu Fang
e442871899
added Cache_background_download() to enable the download of the next block
2019-04-24 23:58:26 +01:00
Lewis Cowles
6d02b0554b
Make larger block size
...
The queue is inherently serial, not a queue data structure, and the code has no concurrency / parallelization added, but making the block-size larger should increase supported file-size & use disk cache more efficiently.
2019-04-24 06:22:43 +01:00
Fufu Fang
12c19e3421
improved Cache_read()
2019-04-24 04:28:54 +01:00
Fufu Fang
97ea20ef89
updated comment
2019-04-24 04:28:54 +01:00
Fufu Fang
cc1697894b
Resolved race condition - this code is now considered as stable.
...
Reference:
https://wiki.sei.cmu.edu/confluence/display/c/FIO24-C.+Do+not+open+a+file+that+is+already+open
2019-04-24 04:28:54 +01:00
Fufu Fang
2ebf37fb65
fixed doxygen warnings
2019-04-24 04:28:54 +01:00
Fufu Fang
797501514d
changed the log output
2019-04-24 04:28:54 +01:00
Fufu Fang
60b2e6c0c8
minor cosmetic changes
2019-04-24 04:28:54 +01:00
Fufu Fang
0892cd0a8a
changed header inclusion order
2019-04-24 04:28:54 +01:00
Fufu Fang
3a0c431bba
Stability improvement
...
Metadata corruption still occasionally happens when it gets read in.
I suspect it is due to some sort of race condition.
2019-04-24 04:28:54 +01:00
Fufu Fang
fb8a132c14
added a mutex lock for closing cache dataset
2019-04-24 04:28:54 +01:00
Fufu Fang
cba66c58fd
more stability and error handling improvements
2019-04-24 04:28:54 +01:00
Fufu Fang
fe079f6266
improved stability / error handling
2019-04-24 04:28:54 +01:00
Fufu Fang
36ddbe9ec5
fixed bug in fs_open(), now handles cache dataset creation properly
2019-04-24 04:28:46 +01:00
Fufu Fang
6536163f98
improve cached dataset creation process, better error handling
2019-04-24 04:28:46 +01:00