projects
/
oweals
/
gnunet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- FIX: GNUNET_SET_STATUS_HALF_DONE is never called only GNUNET_SET_STATUS_DONE
[oweals/gnunet.git]
/
src
/
dv
/
dv.h
diff --git
a/src/dv/dv.h
b/src/dv/dv.h
index d43befd70927b60ce5ce26dbbdef32a872366f6c..c0a4828a20592a7f55fc05d9b68a9a9e2931bfd2 100644
(file)
--- a/
src/dv/dv.h
+++ b/
src/dv/dv.h
@@
-1,10
+1,10
@@
/*
This file is part of GNUnet.
/*
This file is part of GNUnet.
- (C) 20
01, 2002, 2003, 2004, 2009
Christian Grothoff (and other contributing authors)
+ (C) 20
13
Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version
2
, or (at your
+ by the Free Software Foundation; either version
3
, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
@@
-20,196
+20,168
@@
/**
* @author Christian Grothoff
/**
* @author Christian Grothoff
- * @author NOT Nathan Evans
* @file dv/dv.h
* @file dv/dv.h
+ * @brief IPC messages between DV service and DV plugin
*/
#ifndef DV_H
#define DV_H
#include "gnunet_common.h"
*/
#ifndef DV_H
#define DV_H
#include "gnunet_common.h"
-#define DEBUG_DV GNUNET_YES
-#define DEBUG_DV_API GNUNET_YES
-
-typedef void (*GNUNET_DV_MessageReceivedHandler) (void *cls,
- struct GNUNET_PeerIdentity *sender,
- char *msg,
- size_t msg_len,
- unsigned int distance,
- char *sender_address,
- size_t sender_address_len);
+GNUNET_NETWORK_STRUCT_BEGIN
/**
/**
- * DV Message, contains a message that was received
- * via DV for this peer!
- *
- * Sender address is copied to the end of this struct,
- * followed by the actual message received.
+ * DV service tells plugin about a DV-connection being
+ * now available.
*/
*/
-struct GNUNET_DV_
MessageReceived
+struct GNUNET_DV_
ConnectMessage
{
/**
{
/**
- * Type: GNUNET_MESSAGE_TYPE_TRANSPORT_DV_
MESSAGE
+ * Type: GNUNET_MESSAGE_TYPE_TRANSPORT_DV_
CONNECT
*/
struct GNUNET_MessageHeader header;
/**
*/
struct GNUNET_MessageHeader header;
/**
- * The sender of the message
- */
- struct GNUNET_PeerIdentity sender;
-
- /**
- * The message that was sent
+ * The distance to the peer that we are now connected to
*/
*/
-
size_t msg_len
;
+
uint32_t distance GNUNET_PACKED
;
/**
/**
- * The
distance to the peer that we received the message from
+ * The
other peer (at the given distance).
*/
*/
- size_t distance;
-
- /**
- * Length of the sender address, appended to end of this message
- */
- size_t sender_address_len;
+ struct GNUNET_PeerIdentity peer;
};
/**
};
/**
- * DV Message, indicates that we have learned of a new DV level peer.
+ * DV service tells plugin about a DV-connection being
+ * no longer available.
*
*
- * Sender address is copied to the end of this struct.
+ * Sender address is copied to the end of this struct,
+ * followed by the actual message received.
*/
*/
-struct GNUNET_DV_
C
onnectMessage
+struct GNUNET_DV_
Disc
onnectMessage
{
/**
{
/**
- * Type: GNUNET_MESSAGE_TYPE_TRANSPORT_DV_
MESSAGE
+ * Type: GNUNET_MESSAGE_TYPE_TRANSPORT_DV_
DISCONNECT
*/
struct GNUNET_MessageHeader header;
/**
*/
struct GNUNET_MessageHeader header;
/**
- *
The sender of the message
+ *
Always zero.
*/
*/
-
struct GNUNET_PeerIdentity *sender
;
+
uint32_t reserved GNUNET_PACKED
;
/**
/**
- * The
message that was sent
+ * The
peer that is no longer available.
*/
*/
- struct GNUNET_MessageHeader *msg;
-
- /**
- * The distance to the peer that we received the message from
- */
- size_t distance;
-
- /**
- * Length of the sender address, appended to end of this message
- */
- size_t sender_address_len;
+ struct GNUNET_PeerIdentity peer;
};
/**
};
/**
- * Message to send a message over DV via a specific peer
+ * DV Message, contains a message that was received via DV for this
+ * peer. Send from the DV service to the DV plugin.
+ *
+ * Sender address is copied to the end of this struct,
+ * followed by the actual message received.
*/
*/
-struct GNUNET_DV_
Sen
dMessage
+struct GNUNET_DV_
Receive
dMessage
{
/**
{
/**
- * Type:
GNUNET_MESSAGE_TYPE_DV_SEND
+ * Type:
GNUNET_MESSAGE_TYPE_TRANSPORT_DV_RECV
*/
struct GNUNET_MessageHeader header;
/**
*/
struct GNUNET_MessageHeader header;
/**
- *
Intended final recipient of this message
+ *
The distance to the peer that we received the message from
*/
*/
-
struct GNUNET_PeerIdentity target
;
+
uint32_t distance GNUNET_PACKED
;
/**
/**
- * The
message(s) to be sent.
+ * The
(actual) sender of the message
*/
*/
-
char *msgbuf
;
+
struct GNUNET_PeerIdentity sender
;
- /**
- * The size of the msgbuf
- */
- size_t msgbuf_size;
+ /* payload follows */
+};
- /**
- * Message priority
- */
- size_t priority;
+/**
+ * Message from plugin to DV service, requesting a
+ * message to be routed.
+ */
+struct GNUNET_DV_SendMessage
+{
/**
/**
- *
How long can we delay sending?
+ *
Type: GNUNET_MESSAGE_TYPE_DV_SEND
*/
*/
- struct GNUNET_
TIME_Relative timeout
;
+ struct GNUNET_
MessageHeader header
;
/**
/**
- *
Size of the address (appended to end of struct)
+ *
Unique ID for this message, for confirm callback, must never be zero.
*/
*/
-
size_t addrlen
;
+
uint32_t uid GNUNET_PACKED
;
- /*
- * Sender, appended to end of struct tells via whom
- * to send this message.
+ /**
+ * The (actual) target of the message
*/
*/
+ struct GNUNET_PeerIdentity target;
};
};
+
/**
/**
- * Message that gets sent between nodes updating dv infos
+ * Message from service to DV plugin, saying that a
+ * SEND request was handled.
*/
*/
-typedef struct
+struct GNUNET_DV_AckMessage
{
{
- struct GNUNET_MessageHeader header;
-
/**
/**
- * Cost from received from node to neighbor node, takes distance into account
+ * Type: GNUNET_MESSAGE_TYPE_DV_SEND_ACK or
+ * GNUNET_MESSAGE_TYPE_DV_SEND_NACK.
*/
*/
-
unsigned int cost GNUNET_PACKED
;
+
struct GNUNET_MessageHeader header
;
/**
/**
- *
Identity of neighbor we learned information about
+ *
Which message is being acknowledged?
*/
*/
-
struct GNUNET_PeerIdentity neighbor
;
+
uint32_t uid GNUNET_PACKED
;
/**
/**
- *
Neighbor ID to use when sending to this peer
+ *
The (actual) target of the message
*/
*/
- unsigned int neighbor_id GNUNET_PACKED;
+ struct GNUNET_PeerIdentity target;
+
+};
-} p2p_dv_MESSAGE_NeighborInfo;
/**
/**
- * Message that gets sent between nodes carrying information
+ * Message from service to DV plugin, saying that our
+ * distance to another peer changed.
*/
*/
-typedef struct
+struct GNUNET_DV_DistanceUpdateMessage
{
{
+ /**
+ * Type: GNUNET_MESSAGE_TYPE_DV_DISTANCE_CHANGED.
+ */
struct GNUNET_MessageHeader header;
/**
struct GNUNET_MessageHeader header;
/**
- * Identity of peer that ultimately sent the message.
- * Should be looked up in the set of 'neighbor_id's of
- * the referring peer.
+ * What is the new distance?
*/
*/
- u
nsigned int sender
GNUNET_PACKED;
+ u
int32_t distance
GNUNET_PACKED;
/**
/**
- * Identity of neighbor this message is going to. Should
- * be looked up in the set of our own identifiers for
- * neighbors!
+ * The peer for which the distance changed.
*/
*/
-
unsigned int recipient GNUNET_PACKED
;
+
struct GNUNET_PeerIdentity peer
;
-}
p2p_dv_MESSAGE_Data
;
+};
-struct GNUNET_DV_Handle *
-GNUNET_DV_connect (struct GNUNET_SCHEDULER_Handle *sched,
- const struct GNUNET_CONFIGURATION_Handle *cfg,
- GNUNET_DV_MessageReceivedHandler receive_handler,
- void *receive_handler_cls);
+GNUNET_NETWORK_STRUCT_END
#endif
#endif