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

46 Commits

Author SHA1 Message Date
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
Falk Werner
bb917ab5c5 fixed issues regarding usleep 2019-02-13 20:49:05 +01:00
Falk Werner
cf1b57e86e project structure changed 2019-02-10 14:19:15 +01:00