From ac3aa3cc3a617bc54ed8beb2b5a30c0b95483525 Mon Sep 17 00:00:00 2001 From: TheJackiMonster Date: Sat, 20 Mar 2021 13:53:23 +0100 Subject: -multiple fixes and correction regarding messenger service Signed-off-by: TheJackiMonster -added message states to tunnels Signed-off-by: TheJackiMonster -fixed requests for deleted messages returning previous ones Signed-off-by: TheJackiMonster -added automatic solving of member id collissions Signed-off-by: TheJackiMonster -added light timestamp verification Signed-off-by: TheJackiMonster -fixed decoding asserts and member session forwarding Signed-off-by: TheJackiMonster -added permission check for member sessions during local join Signed-off-by: TheJackiMonster --- .../gnunet-service-messenger_message_state.h | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/messenger/gnunet-service-messenger_message_state.h (limited to 'src/messenger/gnunet-service-messenger_message_state.h') diff --git a/src/messenger/gnunet-service-messenger_message_state.h b/src/messenger/gnunet-service-messenger_message_state.h new file mode 100644 index 000000000..dc8671df4 --- /dev/null +++ b/src/messenger/gnunet-service-messenger_message_state.h @@ -0,0 +1,63 @@ +/* + This file is part of GNUnet. + Copyright (C) 2020--2021 GNUnet e.V. + + GNUnet is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. + + GNUnet 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. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + + SPDX-License-Identifier: AGPL3.0-or-later + */ +/** + * @author Tobias Frisch + * @file src/messenger/gnunet-service-messenger_message_state.h + * @brief GNUnet MESSENGER service + */ + +#ifndef GNUNET_SERVICE_MESSENGER_MESSAGE_STATE_H +#define GNUNET_SERVICE_MESSENGER_MESSAGE_STATE_H + +#include "platform.h" +#include "gnunet_crypto_lib.h" + +#include "messenger_api_message.h" +#include "gnunet-service-messenger_list_messages.h" + +struct GNUNET_MESSENGER_MessageState +{ + struct GNUNET_MESSENGER_ListMessages last_messages; +}; + +void +init_message_state (struct GNUNET_MESSENGER_MessageState *state); + +void +clear_message_state (struct GNUNET_MESSENGER_MessageState *state); + +void +get_message_state_chain_hash (const struct GNUNET_MESSENGER_MessageState *state, + struct GNUNET_HashCode *hash); + +const struct GNUNET_HashCode* +get_message_state_merge_hash (const struct GNUNET_MESSENGER_MessageState *state); + +void +update_message_state (struct GNUNET_MESSENGER_MessageState *state, int requested, + const struct GNUNET_MESSENGER_Message *message, const struct GNUNET_HashCode *hash); + +void +load_message_state (struct GNUNET_MESSENGER_MessageState *state, const char *path); + +void +save_message_state (const struct GNUNET_MESSENGER_MessageState *state, const char *path); + +#endif //GNUNET_SERVICE_MESSENGER_MESSAGE_STATE_H -- cgit v1.2.3