From 2781aadf55aed05302cf4478cff6f1d3c4ef2d0e Mon Sep 17 00:00:00 2001 From: Falk Werner Date: Mon, 4 Mar 2019 19:19:04 +0100 Subject: [PATCH] makes wsfs_status public (usable in provider example) --- CMakeLists.txt | 4 ++- example/provider/main.c | 14 +++++----- include/wsfs/provider/operation/error.h | 3 ++- include/wsfs_adapter.h | 2 ++ include/wsfs_provider.h | 2 ++ lib/wsfs/adapter/jsonrpc/method.h | 2 +- lib/wsfs/adapter/jsonrpc/response.h | 2 +- lib/wsfs/adapter/operation/open.c | 2 +- lib/wsfs/adapter/status.c | 34 ------------------------- lib/wsfs/adapter/status.h | 30 ---------------------- lib/wsfs/provider/operation/lookup.c | 2 +- lib/wsfs/provider/operation/open.c | 2 +- lib/wsfs/provider/operation/read.c | 4 +-- lib/wsfs/provider/operation/readdir.c | 2 +- lib/wsfs/provider/request.c | 2 +- 15 files changed, 25 insertions(+), 82 deletions(-) delete mode 100644 lib/wsfs/adapter/status.c delete mode 100644 lib/wsfs/adapter/status.h diff --git a/CMakeLists.txt b/CMakeLists.txt index d078a34..36637ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,12 +46,14 @@ set(EXTRA_CFLAGS set(WSFS_COMMON_SOURCES lib/wsfs/message.c lib/wsfs/message_queue.c + lib/wsfs/status.c ) +install(FILES include/wsfs/status.h DESTINATION include/wsfs) + # libwsfs-adapter set(WSFS_ADAPTER_SOURCES - lib/wsfs/adapter/status.c lib/wsfs/adapter/filesystem.c lib/wsfs/adapter/server.c lib/wsfs/adapter/time/timepoint.c diff --git a/example/provider/main.c b/example/provider/main.c index 4f3cb7e..dcdfecd 100644 --- a/example/provider/main.c +++ b/example/provider/main.c @@ -102,7 +102,7 @@ static void fs_lookup( } else { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOENTRY); } } @@ -124,7 +124,7 @@ static void fs_getattr( } else { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOENTRY); } } @@ -156,7 +156,7 @@ static void fs_readdir( } else { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOENTRY); } } @@ -177,12 +177,12 @@ static void fs_open( } else { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOACCESS); } } else { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOENTRY); } } @@ -214,12 +214,12 @@ static void fs_read( } else { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD); } } else { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOENTRY); } } diff --git a/include/wsfs/provider/operation/error.h b/include/wsfs/provider/operation/error.h index c2a8567..be2dd19 100644 --- a/include/wsfs/provider/operation/error.h +++ b/include/wsfs/provider/operation/error.h @@ -2,6 +2,7 @@ #define WSFSP_OPERATION_ERROR_H #include "wsfs/provider/api.h" +#include "wsfs/status.h" struct wsfsp_request; @@ -12,7 +13,7 @@ extern "C" extern WSFSP_API void wsfsp_respond_error( struct wsfsp_request * request, - int status); + wsfs_status status); #ifdef __cplusplus } diff --git a/include/wsfs_adapter.h b/include/wsfs_adapter.h index c6f1d00..6a812a3 100644 --- a/include/wsfs_adapter.h +++ b/include/wsfs_adapter.h @@ -1,6 +1,8 @@ #ifndef WSFS_ADAPTER_H #define WSFS_ADAPTER_H +#include + #include #include #include diff --git a/include/wsfs_provider.h b/include/wsfs_provider.h index c6ff25f..9c033ec 100644 --- a/include/wsfs_provider.h +++ b/include/wsfs_provider.h @@ -1,6 +1,8 @@ #ifndef WSFS_PROVIDER_H #define WSFS_PROVIDER_H +#include + #include #include #include diff --git a/lib/wsfs/adapter/jsonrpc/method.h b/lib/wsfs/adapter/jsonrpc/method.h index 00f52c7..038bce4 100644 --- a/lib/wsfs/adapter/jsonrpc/method.h +++ b/lib/wsfs/adapter/jsonrpc/method.h @@ -6,7 +6,7 @@ #endif #include -#include "wsfs/adapter/status.h" +#include "wsfs/status.h" typedef bool wsfs_jsonrpc_method_invoke_fn( diff --git a/lib/wsfs/adapter/jsonrpc/response.h b/lib/wsfs/adapter/jsonrpc/response.h index 3e10022..4e6e34a 100644 --- a/lib/wsfs/adapter/jsonrpc/response.h +++ b/lib/wsfs/adapter/jsonrpc/response.h @@ -9,7 +9,7 @@ using std::size_t; #endif #include -#include "wsfs/adapter/status.h" +#include "wsfs/status.h" struct wsfs_jsonrpc_response { diff --git a/lib/wsfs/adapter/operation/open.c b/lib/wsfs/adapter/operation/open.c index ed86c69..27efc0c 100644 --- a/lib/wsfs/adapter/operation/open.c +++ b/lib/wsfs/adapter/operation/open.c @@ -6,7 +6,7 @@ #include "wsfs/adapter/jsonrpc/server.h" #include "wsfs/util.h" -#include "wsfs/adapter/status.h" +#include "wsfs/status.h" static void wsfs_operation_open_finished( void * user_data, diff --git a/lib/wsfs/adapter/status.c b/lib/wsfs/adapter/status.c deleted file mode 100644 index 44db17b..0000000 --- a/lib/wsfs/adapter/status.c +++ /dev/null @@ -1,34 +0,0 @@ -#include "wsfs/adapter/status.h" - -#include - - int wsfs_status_to_rc(wsfs_status status) -{ - switch(status) - { - case WSFS_GOOD: return 0; - case WSFS_BAD_NOTIMPLEMENTED: return -ENOSYS; - case WSFS_BAD_TIMEOUT: return -ETIMEDOUT; - case WSFS_BAD_BUSY: return -ENOENT; - case WSFS_BAD_FORMAT: return -ENOENT; - case WSFS_BAD_NOENTRY: return -ENOENT; - case WSFS_BAD_NOACCESS: return -EACCES; - default: return -ENOENT; - } -} - -char const * wsfs_status_tostring(wsfs_status status) -{ - switch(status) - { - case WSFS_GOOD: return "Good"; - case WSFS_BAD: return "Bad"; - case WSFS_BAD_NOTIMPLEMENTED: return "Bad (not implelemted)"; - case WSFS_BAD_TIMEOUT: return "Bad (timeout)"; - case WSFS_BAD_BUSY: return "Bad (busy)"; - case WSFS_BAD_FORMAT: return "Bad (format)"; - case WSFS_BAD_NOENTRY: return "Bad (no entry)"; - case WSFS_BAD_NOACCESS: return "Bad (no access)"; - default: return "Bad (unknown)"; - } -} diff --git a/lib/wsfs/adapter/status.h b/lib/wsfs/adapter/status.h deleted file mode 100644 index 219a935..0000000 --- a/lib/wsfs/adapter/status.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef WSFS_ADAPTER_STATUS_H -#define WSFS_ADAPTER_STATUS_H - -#define WSFS_GOOD 0 -#define WSFS_BAD 1 - -#define WSFS_BAD_NOTIMPLEMENTED 2 -#define WSFS_BAD_TIMEOUT 3 -#define WSFS_BAD_BUSY 4 -#define WSFS_BAD_FORMAT 5 - -#define WSFS_BAD_NOENTRY 101 -#define WSFS_BAD_NOACCESS 102 - -typedef int wsfs_status; - -#ifdef __cplusplus -extern "C" { -#endif - -extern int wsfs_status_to_rc(wsfs_status status); - -extern char const * wsfs_status_tostring(wsfs_status status); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/lib/wsfs/provider/operation/lookup.c b/lib/wsfs/provider/operation/lookup.c index 646205b..900b901 100644 --- a/lib/wsfs/provider/operation/lookup.c +++ b/lib/wsfs/provider/operation/lookup.c @@ -62,6 +62,6 @@ void wsfsp_lookup_default( char const * WSFS_UNUSED_PARAM(name), void * WSFS_UNUSED_PARAM(user_data)) { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOENTRY); } diff --git a/lib/wsfs/provider/operation/open.c b/lib/wsfs/provider/operation/open.c index a9670e7..9602c71 100644 --- a/lib/wsfs/provider/operation/open.c +++ b/lib/wsfs/provider/operation/open.c @@ -33,7 +33,7 @@ void wsfsp_open_default( int WSFS_UNUSED_PARAM(flags), void * WSFS_UNUSED_PARAM(user_data)) { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOENTRY); } void wsfsp_respond_open( diff --git a/lib/wsfs/provider/operation/read.c b/lib/wsfs/provider/operation/read.c index c7e4fec..c738761 100644 --- a/lib/wsfs/provider/operation/read.c +++ b/lib/wsfs/provider/operation/read.c @@ -43,7 +43,7 @@ void wsfsp_read_default( size_t WSFS_UNUSED_PARAM(length), void * WSFS_UNUSED_PARAM(user_data)) { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOENTRY); } void wsfsp_respond_read( @@ -69,7 +69,7 @@ void wsfsp_respond_read( } else { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD); } } else diff --git a/lib/wsfs/provider/operation/readdir.c b/lib/wsfs/provider/operation/readdir.c index 87284d8..f94c0f3 100644 --- a/lib/wsfs/provider/operation/readdir.c +++ b/lib/wsfs/provider/operation/readdir.c @@ -29,7 +29,7 @@ void wsfsp_readdir_default( ino_t WSFS_UNUSED_PARAM(directory), void * WSFS_UNUSED_PARAM(user_data)) { - wsfsp_respond_error(request, -1); + wsfsp_respond_error(request, WSFS_BAD_NOENTRY); } void wsfsp_respond_readdir( diff --git a/lib/wsfs/provider/request.c b/lib/wsfs/provider/request.c index e5e8d5b..4f6d90f 100644 --- a/lib/wsfs/provider/request.c +++ b/lib/wsfs/provider/request.c @@ -40,7 +40,7 @@ extern void wsfsp_respond( void wsfsp_respond_error( struct wsfsp_request * request, - int status) + wsfs_status status) { json_t * response = json_object(); json_t * error = json_object();