diff options
Diffstat (limited to 'src/reducer/anastasis_api_redux.h')
-rw-r--r-- | src/reducer/anastasis_api_redux.h | 68 |
1 files changed, 64 insertions, 4 deletions
diff --git a/src/reducer/anastasis_api_redux.h b/src/reducer/anastasis_api_redux.h index 4d62d5e..03eef33 100644 --- a/src/reducer/anastasis_api_redux.h +++ b/src/reducer/anastasis_api_redux.h @@ -3,14 +3,14 @@ Copyright (C) 2020, 2021 Anastasis SARL Anastasis is free software; you can redistribute it and/or modify it under the - terms of the GNU Lesser General Public License as published by the Free Software + terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU Affero General Public License along with + You should have received a copy of the GNU General Public License along with Anastasis; see the file COPYING.GPL. If not, see <http://www.gnu.org/licenses/> */ /** @@ -25,7 +25,7 @@ #define ANASTASIS_GENERIC_STATES(REDUX_STATE) \ - REDUX_STATE (ERROR) \ + REDUX_STATE (INVALID) \ REDUX_STATE (CONTINENT_SELECTING) \ REDUX_STATE (COUNTRY_SELECTING) \ REDUX_STATE (USER_ATTRIBUTES_COLLECTING) @@ -108,6 +108,42 @@ ANASTASIS_REDUX_load_continents_ (void); /** + * Try to obtain configuration information on all configured + * providers. Upon success, call @a cb with the updated provider + * status data. + * + * @param[in] state we are in + * @param arguments our arguments with the solution + * @param cb functiont o call with the new state + * @param cb_cls closure for @a cb + * @return handle to cancel challenge selection step + */ +struct ANASTASIS_ReduxAction * +ANASTASIS_REDUX_poll_providers_ (json_t *state, + const json_t *arguments, + ANASTASIS_ActionCallback cb, + void *cb_cls); + + +/** + * Check if we have information on all providers involved in + * a recovery procedure, and if not, try to obtain it. Upon + * success, call @a cb with the updated provider status data. + * + * @param[in] state we are in + * @param arguments our arguments with the solution + * @param cb functiont o call with the new state + * @param cb_cls closure for @a cb + * @return handle to cancel challenge selection step + */ +struct ANASTASIS_ReduxAction * +ANASTASIS_REDUX_sync_providers_ (json_t *state, + const json_t *arguments, + ANASTASIS_ActionCallback cb, + void *cb_cls); + + +/** * Returns the enum value to a string value of a state. * * @param state_string string to convert @@ -168,6 +204,20 @@ ANASTASIS_recovery_state_to_string_ (enum ANASTASIS_RecoveryState rs); /** + * Lookup @a salt of @a provider_url in @a state. + * + * @param state the state to inspect + * @param provider_url provider to look into + * @param[out] salt value to extract + * @return #GNUNET_OK on success + */ +enum GNUNET_GenericReturnValue +ANASTASIS_reducer_lookup_salt (const json_t *state, + const char *provider_url, + struct ANASTASIS_CRYPTO_ProviderSaltP *salt); + + +/** * Function to return a json error response. * * @param cb callback to give error to @@ -328,6 +378,16 @@ ANASTASIS_backup_action_ (json_t *state, /** + * Check if an external reducer binary is requested. + * Cache the result and unset the corresponding environment + * variable. + * + * @returns name of the external reducer or NULL to user internal reducer + */ +const char * +ANASTASIS_REDUX_probe_external_reducer (void); + +/** * Generic container for an action with asynchronous activities. */ struct ANASTASIS_ReduxAction |