Commit Graph

83 Commits

Author SHA1 Message Date
liuchenghao 2791f96603 fix: Failed to mount an empty file in the cache state 2021-07-27 15:55:19 +08:00
Fufu Fang 55ad0cd9fc
converted sonic_id to a string, to support epoupon LMS 2019-10-28 01:09:55 +00:00
Fufu Fang ff1d34855c
Sonic ID3 mode is now working properly, but Sonic index mode stopped working 2019-10-27 21:21:30 +00:00
Fufu Fang cf1d46edf4
fixed regression - cache system stopped working on regular http server
updated readme / help

Update README.md

Update README.md
2019-10-24 02:38:59 +01:00
Fufu Fang f3d5ffc3fc
now cache works on subsonic server 2019-10-24 02:15:05 +01:00
Fufu Fang a8ef8c88b5
added code to check if the server supports range requests 2019-10-24 00:44:18 +01:00
Fufu Fang 5062f511bd
Finished writing the code to generate Subsonic LinkTable
- Also refactored various bits and pieces
2019-10-23 21:04:25 +01:00
Fufu Fang 1a9c10f783
more changes to the subsonic module
completed sonic_gen_auth_str()

completed sonic_gen_url_first_part()

change calloc to CALLOC (the wrapper function with error handling)
2019-10-21 23:12:02 +01:00
Fufu Fang bc23ee03a2
Fixed regression: LinkTable caching now works again. 2019-09-04 19:53:11 +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 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 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 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
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 283520136c Closing issue #33, now set a default cache directory 2019-04-30 08:06:09 +01:00
Fufu Fang 4acf91a2b8 added --max-seg-count command line option 2019-04-27 04:52:39 +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 774f14c8e7 if we get HTTP 429, wait for 5 secs 2019-04-26 13:20:55 +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 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 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