1
0
mirror of https://github.com/falk-werner/webfuse-provider synced 2024-09-28 07:20:45 +00:00
Commit Graph

152 Commits

Author SHA1 Message Date
Falk Werner
edcad5dc4c fix: fixed deadlock in tests (wait for client to connect, instead on relying on the server) 2020-06-13 23:47:52 +02:00
Falk Werner
51cb628410 put wf_client into a separate thread for testing 2020-06-13 18:24:45 +02:00
Falk Werner
4713ec3e93 fix: don't send messages if not connected 2020-06-13 17:08:05 +02:00
Falk Werner
55de95caf7 added another server to simplify testing 2020-06-13 14:59:58 +02:00
Falk Werner
5a439f4ef9 removed unused code 2020-06-13 11:36:02 +02:00
Falk Werner
f12d3e99c0 removed unused include 2020-06-13 11:35:39 +02:00
Falk Werner
0c702ff25f refactor: make filesystem independent of session 2020-06-12 22:53:42 +02:00
Falk Werner
adaec875d9 added implementation of wf_client_authenticate 2020-06-12 20:38:20 +02:00
Falk Werner
021e056960 added timeout watcher to observe loops 2020-06-12 19:05:10 +02:00
Falk Werner
1753841353 replaced callback by mock object 2020-06-12 19:00:28 +02:00
Falk Werner
cd76427f83 renamed ThreadedWsServer -> WsServer 2020-06-12 16:53:36 +02:00
Falk Werner
4d277701cb removed single threaded test server 2020-06-12 16:48:15 +02:00
Falk Werner
8a03f16aa5 allow system to choose port of webfuse server 2020-06-12 13:32:31 +02:00
Falk Werner
e72e78180e let system choose port of test server 2020-06-12 10:17:17 +02:00
Falk Werner
eb48dbecc5 added implementation of wf_client_connect and wf_client_disconnect 2020-06-11 22:57:56 +02:00
Falk Werner
f2bbebd670 moved wf_url to core 2020-06-11 19:12:07 +02:00
Falk Werner
06a24e09da added wf_client_tlsconfig 2020-06-11 18:07:42 +02:00
Falk Werner
81fd41f46a feature: added wf_credentials_set_type and wf_credentials_add 2020-06-10 22:42:26 +02:00
Falk Werner
b9eff8d100 change: make credentials const in wf_authenticate_fn (breaking change) 2020-06-10 22:18:34 +02:00
Falk Werner
16996e1f9a added first impression of adapter client API 2020-06-09 22:41:38 +02:00
Falk Werner
df57043445 fix: invalid memory access fixed 2020-06-08 19:10:35 +02:00
Falk Werner
11565d22ad fix: prevent deadlock if libfuse is not available at runtime 2020-06-06 10:59:06 +02:00
Falk Werner
69af19193a removed wfp_client_ontimer (breaking change) 2020-04-07 20:52:50 +02:00
Falk Werner
3eb5dc89a7 added implementation of wfp_client_disconnect 2020-04-07 20:37:50 +02:00
Falk Werner
36f2b82a67 fix: added missing call of mock object 2020-04-07 19:43:10 +02:00
Falk Werner
357ca12e65 removed server timeout (breaking change) 2020-04-06 20:44:18 +02:00
Falk Werner
7cea9828cb replaces death tests by popen 2020-04-05 20:11:07 +02:00
Falk Werner
49469c73e3 renamed operation_context 2020-04-04 23:27:34 +02:00
Falk Werner
745d47bb30 added unit tests for lookup operation (adapter) 2020-04-04 23:16:25 +02:00
Falk Werner
654015c95c added unit tests for getattr operation (adapter) 2020-04-04 22:26:15 +02:00
Falk Werner
c769c02c55 added unit tests for readdir operation (adapter) 2020-04-04 20:23:50 +02:00
Falk Werner
98e02240e9 fixed memory leak 2020-04-04 18:20:45 +02:00
Falk Werner
e000500735 added unit tests for read operation (adapter); did some hardening 2020-04-04 15:41:33 +02:00
Falk Werner
bfd4d43dee fix: compile error on arm targets 2020-04-04 12:49:02 +02:00
Falk Werner
289264e269 added unit tests for close operation (adapter) 2020-04-04 08:55:59 +02:00
Falk Werner
77a870b9b7 added unit tests for open (adapter) 2020-04-04 08:32:26 +02:00
Falk Werner
d56bbcbd39 added test for open (adapter) 2020-04-03 22:46:47 +02:00
Falk Werner
48e3575d6d added integrative test of low level api 2020-04-02 22:00:01 +02:00
Falk Werner
f8a402c3a1 use TLS in integration test 2020-04-01 21:42:50 +02:00
Falk Werner
b2142ee963 added tests for wfp_impl_readdir 2020-03-30 22:38:12 +02:00
Falk Werner
d482f4dfe5 added test for wfp_impl_read 2020-03-30 22:25:14 +02:00
Falk Werner
0b0c16bf10 added tests for wfp_impl_open 2020-03-30 21:42:13 +02:00
Falk Werner
821c67ee46 fixed test 2020-03-30 21:28:59 +02:00
Falk Werner
2c62e16c98 added test for wfp_impl_lookup 2020-03-30 21:16:32 +02:00
Falk Werner
e9f371c14a added tests for wfp_impl_getattr 2020-03-30 20:40:03 +02:00
Falk Werner
70e9f0a278 added tests for wfp_impl_getattr 2020-03-29 20:41:31 +02:00
Falk Werner
8d28da5e82 added tests for wfp_impl_close 2020-03-29 19:30:08 +02:00
Falk Werner
bbdd5a24f5 integrated libwf_timer and libwf_jsonrpc into libwebfuse-core 2020-03-29 17:40:33 +02:00
Falk Werner
71a8c30d36 increased test coverage 2020-03-21 22:25:50 +01:00
Falk Werner
214d6b738d removed NULL-checks after malloc: they are not necessary, they were not consequently used and objects constructed by 3rd party libs are also unchecked 2020-03-21 21:22:22 +01:00
Falk Werner
43c989e7af removed uuid mountpoint and factory 2020-03-21 09:11:18 +01:00
Falk Werner
e5da835e80 chore: use interrupt function in tests 2020-03-07 17:13:16 +01:00
Falk Werner
107e66b65a chore: replaced msleep by std::this_thread::sleep_for 2020-03-01 17:23:59 +01:00
Falk Werner
1a29b44ad6 chore: prefixed jsonrpc by wf_ 2020-03-01 16:55:58 +01:00
Falk Werner
1b4034e081 fix: do not ignore return value of mkdtemp 2020-03-01 14:00:49 +01:00
Falk Werner
7856b5a99d feature: enabled authentication 2020-03-01 13:42:46 +01:00
Falk Werner
79318c47b8 refactor: extracted timer function of adapter into separate library 2020-02-29 21:06:40 +01:00
Falk Werner
b2d6ed8754 reorganized library code 2020-02-29 02:44:26 +01:00
Falk Werner
69a1faaa3f chore: cleanup jsonrpc library 2020-02-29 02:32:03 +01:00
Falk Werner
e3a3427ca8 refactor: made jsonrpc an independent library 2020-02-28 23:17:41 +01:00
Falk Werner
c6ca2e14bd changed credentials API 2020-02-25 22:05:48 +01:00
Falk Werner
767bafcd01 added first idea of API 2020-02-25 15:36:28 +01:00
Falk Werner
afb9c528e7 made c'tor explicit; disallow copy and assign 2020-02-24 18:25:25 +01:00
Falk Werner
5a80e0233c refactored test fixture 2020-02-24 18:16:30 +01:00
Falk Werner
7ed99088db fix: make c'tor explicit 2020-02-23 23:26:30 +01:00
Falk Werner
7c02b12449 fix: don't copy exceptions 2020-02-23 23:25:17 +01:00
Falk Werner
391b5926b6 added mock for provider client 2020-02-23 23:20:26 +01:00
Falk Werner
555058dbb5 made client protocol test single threaded 2020-02-23 21:02:01 +01:00
Falk Werner
77810168e0 fix: initialize context 2020-02-22 16:58:11 +01:00
Falk Werner
c6265aeaf7 chore: added default ctor for ClientProtocolTest (to initialize members properly) 2020-02-22 16:49:56 +01:00
Falk Werner
e21c716d34 refactored fake adapter server into ws server; added test for client protocol getattr 2020-02-22 16:46:21 +01:00
Falk Werner
4b418a45d4 chore: refactored test 2020-02-20 20:13:39 +01:00
Falk Werner
384de32bf5 removed some dead code 2020-02-20 19:06:38 +01:00
Falk Werner
17fa84bc38 made static_filesystem private (used for test purposes only) 2020-02-20 18:54:29 +01:00
Falk Werner
a27e68f5a6 organized unit tests 2020-02-20 17:15:13 +01:00
Falk Werner
abd6efe477
fixed client protocol low level API (#49)
* fixed client protocol low level API: enables usage of providing clients along with other websocket protocols

* fix: made some c'tors explicit
2020-02-19 22:44:56 +01:00
Falk Werner
8f40f73072 fixed test expectation 2020-02-16 22:58:28 +01:00
Falk Werner
bc1b5343df added unit tests for server_config 2020-02-16 22:36:31 +01:00
Falk Werner
ae9fb63900 fix: made c'tor explicit 2020-02-16 21:38:37 +01:00
Falk Werner
77627b7c8b integrated uuid_mountpoint_factory 2020-02-16 21:03:17 +01:00
Falk Werner
2b91f159cf added unit tests of uuid_mountpoint_factory 2020-02-16 17:33:11 +01:00
Falk Werner
096c244445 added unit tests for uuid_mountpoint 2020-02-16 14:47:21 +01:00
Falk Werner
cfadf85f49 added uuid mountpoint and factory 2020-02-16 04:02:23 +01:00
Falk Werner
6a94cea6f9 added ondispose to mountpoint to allow custom cleanup 2020-02-15 15:50:32 +01:00
Falk Werner
e727a9a54d added implementation of mountpoint 2020-02-15 15:11:35 +01:00
Falk Werner
9cd058a747 switched to own base64 implementation 2019-12-01 17:17:21 +01:00
Falk Werner
07e32757f8
chore(webfuse) Increase test coverage (#34)
* removes unnecessary code

* adds test of wf_status

* adds tests of wf_message

* adds tests of wf_message_queue

* changed branch of coverage badge to display correct results

* moves core tests into separate subdirectory

* increases coverage of timer test

* moves adapter specific tests into separate directory

* moves provider specific tests into separate directory

* adds tests of jsonrpc utilities

* adds tests of jsonrpc request

* adds test of jsonrpc response

* adds tests of jsonrpc server

* adds tests of jsonrpc proxy

* adds integration test (found some issues)

* disables problematic tests

* fixes resource leak: pending timer after cleanup proxy

* fixes order of cleanup to prevent processing pending requests after filesystem shut down

* fixes some memcheck and helgrind errors: initialization of lws_log; setup of client and server

* disabled a test

* fixes error in msleep utility

* fixes deadlock at IntegrationTest using valgrind

* removes unit test code from coverage report

* adds some integration tests

* makes badge show coverage of master

* fixes some coding style issues

* fixes eary trigger of is_connected (provider)

* fixes read error in 32 bit environments\n\ninode is always 64 bit, but variadic wf_impl_jsonrpc_proxy_invoke expects int
2019-05-19 14:33:42 +02:00
Falk Werner
9130f00289
improves slist implementation (#29) 2019-04-26 20:50:57 +02:00
Falk Werner
fa78e23533
feat(webfuse): static file provider (#30)
* added API stub of static_filesystem

* added callback functions

* added basic directory listing

* resize filesystem if necessary

* added path stub

* adds imlementation and tests of path

* adds mock of wpf_request

* adds test implementation and some matchers

* added matcher of readdir results

* fixes default directory test

* adds implementation of static_filesystem_add and add_text

* added implementation of read

* adds implementation of filesystem_read

* corrects naming of some functions

* removes Flawfinder comments, since Flawfinder is disabled
2019-04-26 20:49:09 +02:00
Falk Werner
a717248e80
chore(WF_CONTAINER_OF): makes WF_CONTAINER_OF use typeof, if available (#26)
* makes WF_CONTAINER_OF use typeof, if available

* convertss WF_CONTAINER_OF to lower case

* fixes include guard
2019-04-25 20:08:34 +02:00
Falk Werner
3a7c064af7 feat(webfuse): add multiclient support (#23)
* fixes verbosity option when set through command line

* adds support for build type and allows to run gdb in container

* adds missing toolchain headers to project

* renames container macros

* adds gdbserver

* fixes verbosity option when set through command line

* adds support for build type and allows to run gdb in container

* adds missing toolchain headers to project

* renames container macros

* adds gdbserver

* removes language settings, which contains alternating values

* adds wrapper script to launch gdbserver

* fix docker command in wrapper script

* fixes run in dind setup

* replaces docker's init through dump-init

* moves filesystem to session

* fixes verbosity option when set through command line

* adds support for build type and allows to run gdb in container

* renames container macros

* adds gdbserver

* fixes verbosity option when set through command line

* adds support for build type and allows to run gdb in container

* renames container macros

* adds gdbserver

* adds wrapper script to launch gdbserver

* fix docker command in wrapper script

* fixes run in dind setup

* replaces docker's init through dump-init

* moves filesystem to session

* adds container_of

* added dlist

* allows multiple clients to connect

* removes directory when session is closed

* adds dependecy to uuid-dev

* allow clients to register filesystems

* updates documentation

* moves mountpoint handling into filesystem: mountpoints are removed during session cleanup

* adds filesystem name/id to request parameters

* fixes security issue: add_filesystem did not check name

* removes default link, if it is broken

* recreates symlink "default", if filesystem is gone

* updates documentation

* fixes memory leak

* makes authentication work .. again

* updates provider to support changed protocol

* removes execute right of hello.txt

* fixes style issues

* fixes javascript style issues

* fixes flase positive from Flawfinder

* fixes some javascript style issues

* removes use of PATH_MAX

* removes use of GNU extensions in container_of implementation

* ignores findings of flawfinder

* replaces dlist by slist

* removes duplicate implementation of slist (message_queue)
2019-04-17 22:51:16 +02:00
Falk Werner
87f34fa768 feat(authentication): provide an authentication mechanism (#19)
* moves server into session

* renames jsonrpc server to jsonrpc proxy

* moves server into session

* renames jsonrpc server to jsonrpc proxy

* adds json rpc server

* removes obsolete proxy from protocol

* changes interface of jsonrpc_proxy_onresult to accept previously parsed messages

* adds infrastructure to process incoming requests; fixes invalid read of ill formatted responses

* adds description of authentication request

* adds authentication request

* adds userdb for authentication purposes

* removes debug code: console.log()

* fixes cmake build error (missing openssl symbols)

* fixes typo

* replaces ASCII art by UML diagram

* renames BAD_NOACCESS to BAD_ACCESS_DENIED

* fixes style

* adds docu of authentication

* ignored false positives of flawfinder

* fixes style issues

* fixes javascript style issues
2019-04-01 22:15:12 +02:00
Falk Werner
7447fb5dff renamed to webfuse 2019-03-26 23:04:53 +01:00
Falk Werner
1c9d1c8420
feat(API wrapper): separates implementation from public API
* moves implementation to impl subdirectory
* adds prefix _impl to implementation symbols
* removes double compilation for shared and static libraries
* fixes include guards
* fixes usage of extern "C"
2019-03-26 15:35:33 +01:00
Falk Werner
48185776b6
Feature/authentication (#14)
* makes wsfs_server_config opaque

* feature: try to create mount point, if not present

* fixes server start failure due to existing mountpoint

* added basic authentication infrastructure

* makes wsfs_server_config opaque

* feature: try to create mount point, if not present

* fixes server start failure due to existing mountpoint

* added basic authentication infrastructure

* added unit tests for credentials

* added unit tests for authenticators

* propagates authenticators to server protocol

* enabled username authentication in daemon example

* adds example to compute password hash

* adds infrastructure to execute commands

* added userdb to encapsulate authentication stuff

* adds session and session_manager

* fixes warning about unused param

* moves some logic from server_protocol to session

* makes wsfs_server_config opaque

* feature: try to create mount point, if not present

* fixes server start failure due to existing mountpoint

* added basic authentication infrastructure

* makes wsfs_server_config opaque

* added unit tests for credentials

* added unit tests for authenticators

* propagates authenticators to server protocol

* enabled username authentication in daemon example

* adds example to compute password hash

* adds infrastructure to execute commands

* added userdb to encapsulate authentication stuff

* adds session and session_manager

* fixes warning about unused param

* moves some logic from server_protocol to session

* updates libcrypto to version 1.1.0
2019-03-23 22:53:14 +01:00
Falk Werner
1976841334 reorganized project: prepared to extract common functionality 2019-02-25 20:17:13 +01:00
Falk Werner
9f468f600e added use_tls (determine from URL, whether TLS is used) 2019-02-23 16:19:00 +01:00
Falk Werner
d18150d305 added code to parse urls 2019-02-23 15:57:57 +01:00
Falk Werner
2c8c6d588a removed leading underscore of include guards 2019-02-22 16:59:08 +01:00
Falk Werner
0279f1f7bd fix: use std::string instead of plain C string to get rid of waring about strlen() 2019-02-15 16:18:02 +01:00