1
0
mirror of https://github.com/falk-werner/webfuse synced 2024-10-27 20:34:10 +00:00
Commit Graph

80 Commits

Author SHA1 Message Date
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
425e017bc4 renamed function: wf_impl_server_protocol_create2 to ..create: remove of uuid mountpoint was already API breaking 2020-03-21 09:18:04 +01:00
Falk Werner
43c989e7af removed uuid mountpoint and factory 2020-03-21 09:11:18 +01:00
Falk Werner
d2f078298e added function to interrupt _service calls 2020-03-07 15:35:02 +01:00
Falk Werner
ab6a6198b1 chore: removed webfuse dependency in unit tests 2020-03-01 17:44:12 +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
8a40919296 fix: do not ignore return value of symlink 2020-03-01 14:39:58 +01:00
Falk Werner
7856b5a99d feature: enabled authentication 2020-03-01 13:42:46 +01:00
Falk Werner
f79b9c998a added error handling on authentication failure 2020-03-01 11:06:09 +01:00
Falk Werner
af2343c67a use jsonrpc_proxy to send requests within client_protocol (provider) 2020-03-01 01:13:24 +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
85b283c1e3 removed dead code 2020-02-24 18:20:26 +01:00
Falk Werner
555058dbb5 made client protocol test single threaded 2020-02-23 21:02:01 +01:00
Falk Werner
8841ac40f8 add toString function for lws reasons (for debugging and logging purposes) 2020-02-23 21:01:05 +01:00
Falk Werner
17fa84bc38 made static_filesystem private (used for test purposes only) 2020-02-20 18:54:29 +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
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
cae0e0613c be compatible to libfuse 3.1+ 2019-12-02 20:44:56 +01:00
Falk Werner
494035e5a6 updated libfuse to 3.8.0 2019-12-01 20:27:10 +01:00
Falk Werner
9cd058a747 switched to own base64 implementation 2019-12-01 17:17:21 +01:00
Falk Werner
7f29a7987e workaround: lws decode base64 size requirements changed 2019-12-01 13:10:26 +01:00
Falk Werner
ce6affd4a2 fixes type in define 2019-05-27 22:01:00 +02:00
Falk Werner
83c7feee82 fixes missing inode using stat and ls -i 2019-05-26 17:37:34 +02:00
Falk Werner
a0ae32caa6 fixes adding multiple files to same directory 2019-05-25 09:19:35 +02: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
09df34debc
removes shutdown method (#27) 2019-04-26 20:51:24 +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
f4180224b2
fixes invalid read if www is not specified (#28) 2019-04-25 20:06:54 +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
c4ef4f126b fixes flawfinder findings (ignores them) 2019-03-04 21:42:45 +01:00
Falk Werner
76713554ee fixes missing files 2019-03-04 21:18:16 +01:00
Falk Werner
d205d2f127 refactors provider client api (introduces client_config) 2019-03-04 21:17:37 +01:00
Falk Werner
2781aadf55 makes wsfs_status public (usable in provider example) 2019-03-04 19:19:04 +01:00