|
- /*
- * This file is part of GNUnet
- * Copyright (C) 2013 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 <http://www.gnu.org/licenses/>.
-
- SPDX-License-Identifier: AGPL3.0-or-later
- */
-
- /**
- * @file psyc/psyc.h
- * @brief Common type definitions for the PSYC service and API.
- * @author Gabor X Toth
- */
-
- #ifndef PSYC_H
- #define PSYC_H
-
- #include "platform.h"
- #include "gnunet_psyc_service.h"
-
-
- int
- GNUNET_PSYC_check_message_parts (uint16_t data_size, const char *data,
- uint16_t *first_ptype, uint16_t *last_ptype);
-
- void
- GNUNET_PSYC_log_message (enum GNUNET_ErrorType kind,
- const struct GNUNET_MessageHeader *msg);
-
-
- enum MessageState
- {
- MSG_STATE_START = 0,
- MSG_STATE_HEADER = 1,
- MSG_STATE_METHOD = 2,
- MSG_STATE_MODIFIER = 3,
- MSG_STATE_MOD_CONT = 4,
- MSG_STATE_DATA = 5,
- MSG_STATE_END = 6,
- MSG_STATE_CANCEL = 7,
- MSG_STATE_ERROR = 8,
- };
-
-
- enum MessageFragmentState
- {
- MSG_FRAG_STATE_START = 0,
- MSG_FRAG_STATE_HEADER = 1,
- MSG_FRAG_STATE_DATA = 2,
- MSG_FRAG_STATE_END = 3,
- MSG_FRAG_STATE_CANCEL = 4,
- MSG_FRAG_STATE_DROP = 5,
- };
-
-
- GNUNET_NETWORK_STRUCT_BEGIN
-
-
- /**** library -> service ****/
-
-
- struct MasterStartRequest
- {
- /**
- * Type: GNUNET_MESSAGE_TYPE_PSYC_MASTER_START
- */
- struct GNUNET_MessageHeader header;
-
- uint32_t policy GNUNET_PACKED;
-
- struct GNUNET_CRYPTO_EddsaPrivateKey channel_key;
- };
-
-
- struct SlaveJoinRequest
- {
- /**
- * Type: GNUNET_MESSAGE_TYPE_PSYC_SLAVE_JOIN
- */
- struct GNUNET_MessageHeader header;
-
- uint32_t relay_count GNUNET_PACKED;
-
- struct GNUNET_CRYPTO_EddsaPublicKey channel_pub_key;
-
- struct GNUNET_CRYPTO_EcdsaPrivateKey slave_key;
-
- struct GNUNET_PeerIdentity origin;
-
- uint32_t flags GNUNET_PACKED;
-
- /* Followed by struct GNUNET_PeerIdentity relays[relay_count] */
-
- /* Followed by struct GNUNET_MessageHeader join_msg */
- };
-
-
- struct ChannelMembershipStoreRequest
- {
- /**
- * Type: GNUNET_MESSAGE_TYPE_PSYC_CHANNEL_MEMBERSHIP_STORE
- */
- struct GNUNET_MessageHeader header;
-
- uint32_t reserved GNUNET_PACKED;
-
- uint64_t op_id GNUNET_PACKED;
-
- struct GNUNET_CRYPTO_EcdsaPublicKey slave_pub_key;
-
- uint64_t announced_at GNUNET_PACKED;
-
- uint64_t effective_since GNUNET_PACKED;
-
- uint8_t did_join;
- };
-
-
- struct HistoryRequest
- {
- /**
- * Type: GNUNET_MESSAGE_TYPE_PSYC_CHANNEL_HISTORY_REQUEST
- */
- struct GNUNET_MessageHeader header;
-
- uint32_t reserved GNUNET_PACKED;
-
- /**
- * ID for this operation.
- */
- uint64_t op_id GNUNET_PACKED;
-
- uint64_t start_message_id GNUNET_PACKED;
-
- uint64_t end_message_id GNUNET_PACKED;
-
- uint64_t message_limit GNUNET_PACKED;
- };
-
-
- struct StateRequest
- {
- /**
- * Types:
- * - GNUNET_MESSAGE_TYPE_PSYC_CHANNEL_STATE_GET
- * - GNUNET_MESSAGE_TYPE_PSYC_CHANNEL_STATE_GET_PREFIX
- */
- struct GNUNET_MessageHeader header;
-
- uint32_t reserved GNUNET_PACKED;
-
- /**
- * ID for this operation.
- */
- uint64_t op_id GNUNET_PACKED;
-
- /* Followed by NUL-terminated name. */
- };
-
-
- /**** service -> library ****/
-
-
- GNUNET_NETWORK_STRUCT_END
-
- #endif
|