Commit graph

44 commits

Author SHA1 Message Date
Omar Rizwan b948c235b8 fs,extension: Make truncate work on cached file content.
We now remember the path of each cached file, so when someone
truncates that path, we can truncate all open instances of it in
cache. Important when someone pipes to stomp a file / opens with
O_TRUNC (which FUSE disaggregates into an open() and then a truncate()
call). Gets rid of the need for FUSE_CAP_ATOMIC_O_TRUNC, which never
worked on macOS anyway.

Fixes #40.
2021-04-06 13:48:48 -07:00
Omar Rizwan 4fb8aee789 create -> mknod
(our create was broken, we weren't opening files as required)
2021-02-25 15:41:21 -08:00
Omar Rizwan 5c3e851baf fs: fix create call (it was sending mkdir to extension) 2021-02-22 15:32:39 -08:00
Omar Rizwan 0a6c542c76 fs: missed one %lld fix 2021-01-12 00:30:29 -08:00
Omar Rizwan 6d4b8ef5d1 fs: fix for off_t on 32-bit arch
(it's actually 64-bit bc of -D_FILE_OFFSET_BITS=64 at build time)
2021-01-12 00:17:34 -08:00
Omar Rizwan 9e1a145d23 Merge branch 'huglovefan-truncate' 2021-01-12 00:16:29 -08:00
Omar Rizwan 740e2f3bb3 fs: fix fh handling on 32-bit arch 2021-01-11 23:25:42 -08:00
Konstantin Schukraft 88925318e0
Fix FreeBSD support that broke when multithreading was implemented 2021-01-11 17:23:53 +01:00
human a7ab34ebbc fix truncating in defineFile()
- in the C part: enable FUSE_CAP_ATOMIC_O_TRUNC so that open() will get called with O_TRUNC in flags instead of truncate() being called separately
  - this also prevents truncate() from calling setData() with an empty string when a file is opened with O_TRUNC
- in defineFile()->open(): if O_TRUNC is used, don't call getData() but start with an empty file as if it had just been truncated
- in defineFile()->write()/truncate(): correct buffer resizing/copying
2021-01-11 10:25:57 +02:00
David Buckley b77bf24168 Merge remote-tracking branch 'huglovefan/master' 2021-01-05 11:17:03 -05:00
human 509a0e1ce9 support TABFS_MOUNT_DIR 2021-01-05 03:18:25 +02:00
David Buckley daa3785d7c Merge branch 'master' of github.com:osnr/TabFS 2021-01-04 13:19:04 -05:00
Omar Rizwan 180a71732e restore tabfs.c note; reword md 2021-01-04 04:30:32 -08:00
human 57331e2092 macfuse fix attempt 2021-01-04 11:40:22 +02:00
human 3c8570ac52 multi-threaded tabfs.c 2021-01-03 12:52:38 +02:00
David Buckley 901d4c9810 remove unnecessary malloc 2021-01-02 23:36:52 -05:00
David Buckley 9f38203ebf Merge branch 'master' of github.com:osnr/TabFS 2021-01-02 23:03:41 -05:00
David Buckley 598c67a775 use environment variable TABFS_MOUNT_DIR instead of hardcoded mnt 2021-01-02 22:58:54 -05:00
Konstantin Schukraft 2c7e302171
Add FreeBSD compatibility 2021-01-02 19:30:56 +01:00
Omar Rizwan 86cf0a0ae8 update md, add some stubs, move console inside scope 2020-12-31 17:33:11 -08:00
Omar Rizwan e31f915bdd vendor frozen 2020-12-27 18:20:34 -08:00
Omar Rizwan bb0376c407 checkpoint: starting work on truncate. more README stubs. 2020-12-18 23:54:36 -08:00
Omar Rizwan 9feca9b0b9 Add unlink support. Make by-title/ writable. Add . and .. entries.
Still haven't added the unlink handler to by-title/, though.
2020-12-13 22:02:29 -08:00
Omar Rizwan e4c92ac4e9 trying to fix resource read. fix releasedir call. 2020-12-04 13:44:35 -08:00
Omar Rizwan 22aaeaa9e1 base64 reads. start working on screenshot stuff. 2020-12-02 20:24:20 -08:00
Omar Rizwan 506751b3d5 fix write (base64-encoding) 2020-12-02 16:57:06 -08:00
Omar Rizwan 648d595807 fs: more cleanup 2020-12-01 22:32:53 -08:00
Omar Rizwan a45e9ae97a cut base64 and cJSON modules out. fix read!
this wasn't too bad
2020-12-01 22:31:03 -08:00
Omar Rizwan adf4330f54 start refactor to use frozen instead of cJSON; I can list dirs, but can't read file yet
also (... at the same time ...) more work on refactoring background.js
to eliminate middle layer, I guess
2020-12-01 21:47:05 -08:00
Omar Rizwan 976c5ef20a start on refactor to eliminate layer of fs op handling 2020-11-30 16:01:56 -08:00
Omar Rizwan a7e38dc258 read/write loops in case payload > 65536 (pipe buffer size) 2020-11-22 20:52:26 -08:00
Omar Rizwan 746cf02bd5 fs: remove out-of-date ws.c reference from comment 2020-11-03 18:47:27 -08:00
Omar Rizwan a9cb8e14af working on refactor of fs spec. also Linux port and README stuff. 2020-10-27 20:53:39 -07:00
Omar Rizwan 543dc7d4b2 works on FF!! key thing was... to add indexedDB permission...
(I guess FF uses the DB in the backend? it makes async errors work...)
2020-10-22 19:54:37 -07:00
Omar Rizwan 8bbcaf9343 postMessage back from browser. Kill other instances of fs.
Currently stuck not getting response to a getattr...
2020-10-22 06:47:00 -07:00
Omar Rizwan 64bd1f3948 fs: Attempt to switch to native messaging. It relays 1 message ok! 2020-10-21 15:53:27 -07:00
Omar Rizwan 09291ea6bc Comment out websocket stuff so tabfs builds. 2020-10-21 15:14:06 -07:00
Omar Rizwan 74b1b0f789 Starting to move to native messaging.
Why? The WebSocket stuff is broken right now, and I want to get rid of
the dep...
2020-10-16 21:56:49 -07:00
Omar Rizwan 53de6736fe write works to close tabs! 2019-03-02 12:16:08 -08:00
Omar Rizwan a3f25d346f Add tabs/by-title. Fix symlink stuff to make it work?
FUSE readlink needing to return 0 + getattr needing to return correct
st_size was _not_ obvious, lol.
2019-02-28 01:05:28 -08:00
Omar Rizwan 73f8bc754e base64 hack to handle binary files.
add memory fences because why not.
2019-02-27 22:06:37 -08:00
Omar Rizwan cca53bc199 fs: Some comments. 2019-02-25 19:57:07 -08:00
Omar Rizwan a8ce61d9a1 fs: Fix formatting. 2019-02-25 19:29:04 -08:00
Omar Rizwan 784ec83696 Rewrite and refactor C half. No more shared memory! It's fast!
Three C modules:
- tabfs (main thread; talks to FUSE)
- common (tabfs<->ws communication helpers)
- ws (side thread; talks to browser over WebSocket)

It's single-threaded, but I don't think that matters anyway.
2019-02-25 13:02:25 -08:00