aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-09-12 11:31:50 +0000
committerChristian Grothoff <christian@grothoff.org>2016-09-12 11:31:50 +0000
commit02ccdcf0ef5c039224a397f057b2a76f54364d92 (patch)
treedb9e4faee6831b965fedb5648915a556be5ff091 /src
parent17987cc9db00b169dd8bff5a620e5d5ab51ff044 (diff)
downloadgnunet-02ccdcf0ef5c039224a397f057b2a76f54364d92.tar.gz
gnunet-02ccdcf0ef5c039224a397f057b2a76f54364d92.zip
realigning CADET messages and bumping message types to avoid interactions with incompatible old versions complicating diagnostics
Diffstat (limited to 'src')
-rw-r--r--src/cadet/cadet.h108
-rw-r--r--src/cadet/cadet_protocol.h57
-rw-r--r--src/cadet/gnunet-service-cadet_channel.c200
-rw-r--r--src/cadet/gnunet-service-cadet_channel.h10
-rw-r--r--src/cadet/gnunet-service-cadet_connection.h2
-rw-r--r--src/cadet/gnunet-service-cadet_local.c65
-rw-r--r--src/cadet/gnunet-service-cadet_tunnel.h41
-rw-r--r--src/include/gnunet_protocols.h446
8 files changed, 439 insertions, 490 deletions
diff --git a/src/cadet/cadet.h b/src/cadet/cadet.h
index 063711fd2..3ff93c254 100644
--- a/src/cadet/cadet.h
+++ b/src/cadet/cadet.h
@@ -69,16 +69,17 @@ GNUNET_NETWORK_STRUCT_BEGIN
69 */ 69 */
70struct GNUNET_CADET_PortMessage 70struct GNUNET_CADET_PortMessage
71{ 71{
72 /** 72 /**
73 * Type: GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_[OPEN|CLOSE] 73 * Type: #GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_OPEN
74 * 74 * or #GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_CLOSE
75 * Size: sizeof(struct GNUNET_CADET_ChannelMessage) 75 *
76 */ 76 * Size: sizeof(struct GNUNET_CADET_ChannelMessage)
77 */
77 struct GNUNET_MessageHeader header; 78 struct GNUNET_MessageHeader header;
78 79
79 /** 80 /**
80 * Port to open/close. 81 * Port to open/close.
81 */ 82 */
82 struct GNUNET_HashCode port GNUNET_PACKED; 83 struct GNUNET_HashCode port GNUNET_PACKED;
83}; 84};
84 85
@@ -96,31 +97,31 @@ typedef uint32_t CADET_ChannelNumber;
96 */ 97 */
97struct GNUNET_CADET_ChannelCreateMessage 98struct GNUNET_CADET_ChannelCreateMessage
98{ 99{
99 /** 100 /**
100 * Type: GNUNET_MESSAGE_TYPE_CADET_LOCAL_TUNNEL_CREATE 101 * Type: #GNUNET_MESSAGE_TYPE_CADET_LOCAL_TUNNEL_CREATE
101 * 102 *
102 * Size: sizeof(struct GNUNET_CADET_ChannelCreateMessage) 103 * Size: sizeof(struct GNUNET_CADET_ChannelCreateMessage)
103 */ 104 */
104 struct GNUNET_MessageHeader header; 105 struct GNUNET_MessageHeader header;
105 106
106 /** 107 /**
107 * ID of a channel controlled by this client. 108 * ID of a channel controlled by this client.
108 */ 109 */
109 CADET_ChannelNumber channel_id GNUNET_PACKED; 110 CADET_ChannelNumber channel_id GNUNET_PACKED;
110 111
111 /** 112 /**
112 * Channel's peer 113 * Channel's peer
113 */ 114 */
114 struct GNUNET_PeerIdentity peer; 115 struct GNUNET_PeerIdentity peer;
115 116
116 /** 117 /**
117 * Port of the channel. 118 * Port of the channel.
118 */ 119 */
119 struct GNUNET_HashCode port; 120 struct GNUNET_HashCode port;
120 121
121 /** 122 /**
122 * Options. 123 * Options.
123 */ 124 */
124 uint32_t opt GNUNET_PACKED; 125 uint32_t opt GNUNET_PACKED;
125}; 126};
126 127
@@ -130,16 +131,16 @@ struct GNUNET_CADET_ChannelCreateMessage
130 */ 131 */
131struct GNUNET_CADET_ChannelDestroyMessage 132struct GNUNET_CADET_ChannelDestroyMessage
132{ 133{
133 /** 134 /**
134 * Type: GNUNET_MESSAGE_TYPE_CADET_LOCAL_TUNNEL_DESTROY 135 * Type: #GNUNET_MESSAGE_TYPE_CADET_LOCAL_TUNNEL_DESTROY
135 * 136 *
136 * Size: sizeof(struct GNUNET_CADET_ChannelDestroyMessage) 137 * Size: sizeof(struct GNUNET_CADET_ChannelDestroyMessage)
137 */ 138 */
138 struct GNUNET_MessageHeader header; 139 struct GNUNET_MessageHeader header;
139 140
140 /** 141 /**
141 * ID of a channel controlled by this client. 142 * ID of a channel controlled by this client.
142 */ 143 */
143 CADET_ChannelNumber channel_id GNUNET_PACKED; 144 CADET_ChannelNumber channel_id GNUNET_PACKED;
144}; 145};
145 146
@@ -149,19 +150,19 @@ struct GNUNET_CADET_ChannelDestroyMessage
149 */ 150 */
150struct GNUNET_CADET_LocalData 151struct GNUNET_CADET_LocalData
151{ 152{
152 /** 153 /**
153 * Type: GNUNET_MESSAGE_TYPE_CADET_LOCAL_DATA 154 * Type: #GNUNET_MESSAGE_TYPE_CADET_LOCAL_DATA
154 */ 155 */
155 struct GNUNET_MessageHeader header; 156 struct GNUNET_MessageHeader header;
156 157
157 /** 158 /**
158 * ID of the channel 159 * ID of the channel
159 */ 160 */
160 uint32_t id GNUNET_PACKED; 161 uint32_t id GNUNET_PACKED;
161 162
162 /** 163 /**
163 * Payload follows 164 * Payload follows
164 */ 165 */
165}; 166};
166 167
167 168
@@ -171,14 +172,14 @@ struct GNUNET_CADET_LocalData
171 */ 172 */
172struct GNUNET_CADET_LocalAck 173struct GNUNET_CADET_LocalAck
173{ 174{
174 /** 175 /**
175 * Type: GNUNET_MESSAGE_TYPE_CADET_LOCAL_ACK 176 * Type: #GNUNET_MESSAGE_TYPE_CADET_LOCAL_ACK
176 */ 177 */
177 struct GNUNET_MessageHeader header; 178 struct GNUNET_MessageHeader header;
178 179
179 /** 180 /**
180 * ID of the channel allowed to send more data. 181 * ID of the channel allowed to send more data.
181 */ 182 */
182 CADET_ChannelNumber channel_id GNUNET_PACKED; 183 CADET_ChannelNumber channel_id GNUNET_PACKED;
183 184
184}; 185};
@@ -190,7 +191,8 @@ struct GNUNET_CADET_LocalAck
190struct GNUNET_CADET_LocalInfo 191struct GNUNET_CADET_LocalInfo
191{ 192{
192 /** 193 /**
193 * Type: GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO[_TUNNEL,_PEER] 194 * Type: #GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_TUNNEL or
195 * #GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER
194 */ 196 */
195 struct GNUNET_MessageHeader header; 197 struct GNUNET_MessageHeader header;
196 198
@@ -217,7 +219,8 @@ struct GNUNET_CADET_LocalInfo
217struct GNUNET_CADET_LocalInfoPeer 219struct GNUNET_CADET_LocalInfoPeer
218{ 220{
219 /** 221 /**
220 * Type: GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER[S] 222 * Type: #GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER or
223 * #GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEERS
221 */ 224 */
222 struct GNUNET_MessageHeader header; 225 struct GNUNET_MessageHeader header;
223 226
@@ -246,7 +249,8 @@ struct GNUNET_CADET_LocalInfoPeer
246struct GNUNET_CADET_LocalInfoTunnel 249struct GNUNET_CADET_LocalInfoTunnel
247{ 250{
248 /** 251 /**
249 * Type: GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_TUNNEL[S] 252 * Type: #GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_TUNNEL
253 * or #GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_TUNNELS
250 */ 254 */
251 struct GNUNET_MessageHeader header; 255 struct GNUNET_MessageHeader header;
252 256
diff --git a/src/cadet/cadet_protocol.h b/src/cadet/cadet_protocol.h
index e40fa0e7b..2df652e34 100644
--- a/src/cadet/cadet_protocol.h
+++ b/src/cadet/cadet_protocol.h
@@ -61,6 +61,11 @@ struct GNUNET_CADET_ConnectionCreate
61 struct GNUNET_MessageHeader header; 61 struct GNUNET_MessageHeader header;
62 62
63 /** 63 /**
64 * For alignment.
65 */
66 uint32_t reserved GNUNET_PACKED;
67
68 /**
64 * ID of the connection 69 * ID of the connection
65 */ 70 */
66 struct GNUNET_CADET_Hash cid; 71 struct GNUNET_CADET_Hash cid;
@@ -78,14 +83,19 @@ struct GNUNET_CADET_ConnectionCreate
78 */ 83 */
79struct GNUNET_CADET_ConnectionACK 84struct GNUNET_CADET_ConnectionACK
80{ 85{
81 /** 86 /**
82 * Type: #GNUNET_MESSAGE_TYPE_CADET_CONNECTION_ACK 87 * Type: #GNUNET_MESSAGE_TYPE_CADET_CONNECTION_ACK
83 */ 88 */
84 struct GNUNET_MessageHeader header; 89 struct GNUNET_MessageHeader header;
85 90
86 /** 91 /**
87 * ID of the connection. 92 * For alignment.
88 */ 93 */
94 uint32_t reserved GNUNET_PACKED;
95
96 /**
97 * ID of the connection.
98 */
89 struct GNUNET_CADET_Hash cid; 99 struct GNUNET_CADET_Hash cid;
90 100
91}; 101};
@@ -96,14 +106,19 @@ struct GNUNET_CADET_ConnectionACK
96 */ 106 */
97struct GNUNET_CADET_KX 107struct GNUNET_CADET_KX
98{ 108{
99 /** 109 /**
100 * Type: #GNUNET_MESSAGE_TYPE_CADET_KX. 110 * Type: #GNUNET_MESSAGE_TYPE_CADET_KX.
101 */ 111 */
102 struct GNUNET_MessageHeader header; 112 struct GNUNET_MessageHeader header;
113
114 /**
115 * For alignment.
116 */
117 uint32_t reserved GNUNET_PACKED;
103 118
104 /** 119 /**
105 * ID of the connection. 120 * ID of the connection.
106 */ 121 */
107 struct GNUNET_CADET_Hash cid; 122 struct GNUNET_CADET_Hash cid;
108 123
109 /* Specific KX message follows. */ 124 /* Specific KX message follows. */
@@ -222,9 +237,9 @@ struct GNUNET_CADET_ChannelCreate
222 struct GNUNET_MessageHeader header; 237 struct GNUNET_MessageHeader header;
223 238
224 /** 239 /**
225 * ID of the channel 240 * Channel options.
226 */ 241 */
227 CADET_ChannelNumber chid GNUNET_PACKED; 242 uint32_t opt GNUNET_PACKED;
228 243
229 /** 244 /**
230 * Destination port. 245 * Destination port.
@@ -232,9 +247,9 @@ struct GNUNET_CADET_ChannelCreate
232 struct GNUNET_HashCode port; 247 struct GNUNET_HashCode port;
233 248
234 /** 249 /**
235 * Channel options. 250 * ID of the channel
236 */ 251 */
237 uint32_t opt GNUNET_PACKED; 252 CADET_ChannelNumber chid GNUNET_PACKED;
238}; 253};
239 254
240 255
@@ -367,6 +382,11 @@ struct GNUNET_CADET_ConnectionBroken
367 struct GNUNET_MessageHeader header; 382 struct GNUNET_MessageHeader header;
368 383
369 /** 384 /**
385 * For alignment.
386 */
387 uint32_t reserved GNUNET_PACKED;
388
389 /**
370 * ID of the connection. 390 * ID of the connection.
371 */ 391 */
372 struct GNUNET_CADET_Hash cid; 392 struct GNUNET_CADET_Hash cid;
@@ -394,6 +414,11 @@ struct GNUNET_CADET_ConnectionDestroy
394 struct GNUNET_MessageHeader header; 414 struct GNUNET_MessageHeader header;
395 415
396 /** 416 /**
417 * For alignment.
418 */
419 uint32_t reserved GNUNET_PACKED;
420
421 /**
397 * ID of the connection. 422 * ID of the connection.
398 */ 423 */
399 struct GNUNET_CADET_Hash cid; 424 struct GNUNET_CADET_Hash cid;
diff --git a/src/cadet/gnunet-service-cadet_channel.c b/src/cadet/gnunet-service-cadet_channel.c
index d1dcfdd2d..0e9b7a3af 100644
--- a/src/cadet/gnunet-service-cadet_channel.c
+++ b/src/cadet/gnunet-service-cadet_channel.c
@@ -94,25 +94,25 @@ struct CadetChannelQueue
94 */ 94 */
95struct CadetReliableMessage 95struct CadetReliableMessage
96{ 96{
97 /** 97 /**
98 * Double linked list, FIFO style 98 * Double linked list, FIFO style
99 */ 99 */
100 struct CadetReliableMessage *next; 100 struct CadetReliableMessage *next;
101 struct CadetReliableMessage *prev; 101 struct CadetReliableMessage *prev;
102 102
103 /** 103 /**
104 * Type of message (payload, channel management). 104 * Type of message (payload, channel management).
105 */ 105 */
106 int16_t type; 106 int16_t type;
107 107
108 /** 108 /**
109 * Tunnel Reliability queue this message is in. 109 * Tunnel Reliability queue this message is in.
110 */ 110 */
111 struct CadetChannelReliability *rel; 111 struct CadetChannelReliability *rel;
112 112
113 /** 113 /**
114 * ID of the message (ACK needed to free) 114 * ID of the message (ACK needed to free)
115 */ 115 */
116 uint32_t mid; 116 uint32_t mid;
117 117
118 /** 118 /**
@@ -120,9 +120,9 @@ struct CadetReliableMessage
120 */ 120 */
121 struct CadetChannelQueue *chq; 121 struct CadetChannelQueue *chq;
122 122
123 /** 123 /**
124 * When was this message issued (to calculate ACK delay) 124 * When was this message issued (to calculate ACK delay)
125 */ 125 */
126 struct GNUNET_TIME_Absolute timestamp; 126 struct GNUNET_TIME_Absolute timestamp;
127 127
128 /* struct GNUNET_CADET_Data with payload */ 128 /* struct GNUNET_CADET_Data with payload */
@@ -134,46 +134,46 @@ struct CadetReliableMessage
134 */ 134 */
135struct CadetChannelReliability 135struct CadetChannelReliability
136{ 136{
137 /** 137 /**
138 * Channel this is about. 138 * Channel this is about.
139 */ 139 */
140 struct CadetChannel *ch; 140 struct CadetChannel *ch;
141 141
142 /** 142 /**
143 * DLL of messages sent and not yet ACK'd. 143 * DLL of messages sent and not yet ACK'd.
144 */ 144 */
145 struct CadetReliableMessage *head_sent; 145 struct CadetReliableMessage *head_sent;
146 struct CadetReliableMessage *tail_sent; 146 struct CadetReliableMessage *tail_sent;
147 147
148 /** 148 /**
149 * DLL of messages received out of order. 149 * DLL of messages received out of order.
150 */ 150 */
151 struct CadetReliableMessage *head_recv; 151 struct CadetReliableMessage *head_recv;
152 struct CadetReliableMessage *tail_recv; 152 struct CadetReliableMessage *tail_recv;
153 153
154 /** 154 /**
155 * Messages received. 155 * Messages received.
156 */ 156 */
157 unsigned int n_recv; 157 unsigned int n_recv;
158 158
159 /** 159 /**
160 * Next MID to use for outgoing traffic. 160 * Next MID to use for outgoing traffic.
161 */ 161 */
162 uint32_t mid_send; 162 uint32_t mid_send;
163 163
164 /** 164 /**
165 * Next MID expected for incoming traffic. 165 * Next MID expected for incoming traffic.
166 */ 166 */
167 uint32_t mid_recv; 167 uint32_t mid_recv;
168 168
169 /** 169 /**
170 * Handle for queued unique data CREATE, DATA_ACK. 170 * Handle for queued unique data CREATE, DATA_ACK.
171 */ 171 */
172 struct CadetChannelQueue *uniq; 172 struct CadetChannelQueue *uniq;
173 173
174 /** 174 /**
175 * Can we send data to the client? 175 * Can we send data to the client?
176 */ 176 */
177 int client_ready; 177 int client_ready;
178 178
179 /** 179 /**
@@ -181,19 +181,19 @@ struct CadetChannelReliability
181 */ 181 */
182 int client_allowed; 182 int client_allowed;
183 183
184 /** 184 /**
185 * Task to resend/poll in case no ACK is received. 185 * Task to resend/poll in case no ACK is received.
186 */ 186 */
187 struct GNUNET_SCHEDULER_Task * retry_task; 187 struct GNUNET_SCHEDULER_Task * retry_task;
188 188
189 /** 189 /**
190 * Counter for exponential backoff. 190 * Counter for exponential backoff.
191 */ 191 */
192 struct GNUNET_TIME_Relative retry_timer; 192 struct GNUNET_TIME_Relative retry_timer;
193 193
194 /** 194 /**
195 * How long does it usually take to get an ACK. 195 * How long does it usually take to get an ACK.
196 */ 196 */
197 struct GNUNET_TIME_Relative expected_delay; 197 struct GNUNET_TIME_Relative expected_delay;
198}; 198};
199 199
@@ -203,85 +203,85 @@ struct CadetChannelReliability
203 */ 203 */
204struct CadetChannel 204struct CadetChannel
205{ 205{
206 /** 206 /**
207 * Tunnel this channel is in. 207 * Tunnel this channel is in.
208 */ 208 */
209 struct CadetTunnel *t; 209 struct CadetTunnel *t;
210 210
211 /** 211 /**
212 * Destination port of the channel. 212 * Destination port of the channel.
213 */ 213 */
214 struct GNUNET_HashCode port; 214 struct GNUNET_HashCode port;
215 215
216 /** 216 /**
217 * Global channel number ( < GNUNET_CADET_LOCAL_CHANNEL_ID_CLI) 217 * Global channel number ( < GNUNET_CADET_LOCAL_CHANNEL_ID_CLI)
218 */ 218 */
219 CADET_ChannelNumber gid; 219 CADET_ChannelNumber gid;
220 220
221 /** 221 /**
222 * Local tunnel number for root (owner) client. 222 * Local tunnel number for root (owner) client.
223 * ( >= GNUNET_CADET_LOCAL_CHANNEL_ID_CLI or 0 ) 223 * ( >= GNUNET_CADET_LOCAL_CHANNEL_ID_CLI or 0 )
224 */ 224 */
225 CADET_ChannelNumber lid_root; 225 CADET_ChannelNumber lid_root;
226 226
227 /** 227 /**
228 * Local tunnel number for local destination clients (incoming number) 228 * Local tunnel number for local destination clients (incoming number)
229 * ( >= GNUNET_CADET_LOCAL_CHANNEL_ID_SERV or 0). 229 * ( >= GNUNET_CADET_LOCAL_CHANNEL_ID_SERV or 0).
230 */ 230 */
231 CADET_ChannelNumber lid_dest; 231 CADET_ChannelNumber lid_dest;
232 232
233 /** 233 /**
234 * Channel state. 234 * Channel state.
235 */ 235 */
236 enum CadetChannelState state; 236 enum CadetChannelState state;
237 237
238 /** 238 /**
239 * Is the tunnel bufferless (minimum latency)? 239 * Is the tunnel bufferless (minimum latency)?
240 */ 240 */
241 int nobuffer; 241 int nobuffer;
242 242
243 /** 243 /**
244 * Is the tunnel reliable? 244 * Is the tunnel reliable?
245 */ 245 */
246 int reliable; 246 int reliable;
247 247
248 /** 248 /**
249 * Last time the channel was used 249 * Last time the channel was used
250 */ 250 */
251 struct GNUNET_TIME_Absolute timestamp; 251 struct GNUNET_TIME_Absolute timestamp;
252 252
253 /** 253 /**
254 * Client owner of the tunnel, if any 254 * Client owner of the tunnel, if any
255 */ 255 */
256 struct CadetClient *root; 256 struct CadetClient *root;
257 257
258 /** 258 /**
259 * Client destination of the tunnel, if any. 259 * Client destination of the tunnel, if any.
260 */ 260 */
261 struct CadetClient *dest; 261 struct CadetClient *dest;
262 262
263 /** 263 /**
264 * Flag to signal the destruction of the channel. 264 * Flag to signal the destruction of the channel.
265 * If this is set GNUNET_YES the channel will be destroyed 265 * If this is set to #GNUNET_YES the channel will be destroyed
266 * when the queue is empty. 266 * when the queue is empty.
267 */ 267 */
268 int destroy; 268 int destroy;
269 269
270 /** 270 /**
271 * Total (reliable) messages pending ACK for this channel. 271 * Total (reliable) messages pending ACK for this channel.
272 */ 272 */
273 unsigned int pending_messages; 273 unsigned int pending_messages;
274 274
275 /** 275 /**
276 * Reliability data. 276 * Reliability data.
277 * Only present (non-NULL) at the owner of a tunnel. 277 * Only present (non-NULL) at the owner of a tunnel.
278 */ 278 */
279 struct CadetChannelReliability *root_rel; 279 struct CadetChannelReliability *root_rel;
280 280
281 /** 281 /**
282 * Reliability data. 282 * Reliability data.
283 * Only present (non-NULL) at the destination of a tunnel. 283 * Only present (non-NULL) at the destination of a tunnel.
284 */ 284 */
285 struct CadetChannelReliability *dest_rel; 285 struct CadetChannelReliability *dest_rel;
286 286
287}; 287};
diff --git a/src/cadet/gnunet-service-cadet_channel.h b/src/cadet/gnunet-service-cadet_channel.h
index cc1eb4d8a..eeea02712 100644
--- a/src/cadet/gnunet-service-cadet_channel.h
+++ b/src/cadet/gnunet-service-cadet_channel.h
@@ -211,6 +211,7 @@ GCCH_handle_local_destroy (struct CadetChannel *ch,
211 struct CadetClient *c, 211 struct CadetClient *c,
212 int is_root); 212 int is_root);
213 213
214
214/** 215/**
215 * Handle a channel create requested by a client. 216 * Handle a channel create requested by a client.
216 * 217 *
@@ -219,7 +220,7 @@ GCCH_handle_local_destroy (struct CadetChannel *ch,
219 * @param c Client that requested the creation (will be the root). 220 * @param c Client that requested the creation (will be the root).
220 * @param msg Create Channel message. 221 * @param msg Create Channel message.
221 * 222 *
222 * @return GNUNET_OK if everything went fine, GNUNET_SYSERR otherwise. 223 * @return #GNUNET_OK if everything went fine, #GNUNET_SYSERR otherwise.
223 */ 224 */
224int 225int
225GCCH_handle_local_create (struct CadetClient *c, 226GCCH_handle_local_create (struct CadetClient *c,
@@ -240,6 +241,7 @@ GCCH_handle_data (struct CadetChannel *ch,
240 const struct GNUNET_CADET_Data *msg, 241 const struct GNUNET_CADET_Data *msg,
241 int fwd); 242 int fwd);
242 243
244
243/** 245/**
244 * Handler for cadet network traffic end-to-end ACKs. 246 * Handler for cadet network traffic end-to-end ACKs.
245 * 247 *
@@ -255,6 +257,7 @@ GCCH_handle_data_ack (struct CadetChannel *ch,
255 const struct GNUNET_CADET_DataACK *msg, 257 const struct GNUNET_CADET_DataACK *msg,
256 int fwd); 258 int fwd);
257 259
260
258/** 261/**
259 * Handler for channel create messages. 262 * Handler for channel create messages.
260 * 263 *
@@ -267,6 +270,7 @@ struct CadetChannel *
267GCCH_handle_create (struct CadetTunnel *t, 270GCCH_handle_create (struct CadetTunnel *t,
268 const struct GNUNET_CADET_ChannelCreate *msg); 271 const struct GNUNET_CADET_ChannelCreate *msg);
269 272
273
270/** 274/**
271 * Handler for channel NACK messages. 275 * Handler for channel NACK messages.
272 * 276 *
@@ -277,6 +281,7 @@ GCCH_handle_create (struct CadetTunnel *t,
277void 281void
278GCCH_handle_nack (struct CadetChannel *ch); 282GCCH_handle_nack (struct CadetChannel *ch);
279 283
284
280/** 285/**
281 * Handler for channel ack messages. 286 * Handler for channel ack messages.
282 * 287 *
@@ -292,6 +297,7 @@ GCCH_handle_ack (struct CadetChannel *ch,
292 const struct GNUNET_CADET_ChannelManage *msg, 297 const struct GNUNET_CADET_ChannelManage *msg,
293 int fwd); 298 int fwd);
294 299
300
295/** 301/**
296 * Handler for channel destroy messages. 302 * Handler for channel destroy messages.
297 * 303 *
@@ -307,6 +313,7 @@ GCCH_handle_destroy (struct CadetChannel *ch,
307 const struct GNUNET_CADET_ChannelManage *msg, 313 const struct GNUNET_CADET_ChannelManage *msg,
308 int fwd); 314 int fwd);
309 315
316
310/** 317/**
311 * Sends an already built message on a channel. 318 * Sends an already built message on a channel.
312 * 319 *
@@ -328,6 +335,7 @@ GCCH_send_prebuilt_message (const struct GNUNET_MessageHeader *message,
328 struct CadetChannel *ch, int fwd, 335 struct CadetChannel *ch, int fwd,
329 void *existing_copy); 336 void *existing_copy);
330 337
338
331/** 339/**
332 * Get the static string for identification of the channel. 340 * Get the static string for identification of the channel.
333 * 341 *
diff --git a/src/cadet/gnunet-service-cadet_connection.h b/src/cadet/gnunet-service-cadet_connection.h
index 261dd1067..e96e2f24c 100644
--- a/src/cadet/gnunet-service-cadet_connection.h
+++ b/src/cadet/gnunet-service-cadet_connection.h
@@ -96,7 +96,7 @@ struct CadetConnectionQueue;
96 * Check invariants for all connections using #check_neighbours(). 96 * Check invariants for all connections using #check_neighbours().
97 */ 97 */
98void 98void
99GCC_check_connections (); 99GCC_check_connections (void);
100 100
101 101
102/** 102/**
diff --git a/src/cadet/gnunet-service-cadet_local.c b/src/cadet/gnunet-service-cadet_local.c
index 4213ad278..303eaee86 100644
--- a/src/cadet/gnunet-service-cadet_local.c
+++ b/src/cadet/gnunet-service-cadet_local.c
@@ -47,51 +47,51 @@
47 */ 47 */
48struct CadetClient 48struct CadetClient
49{ 49{
50 /** 50 /**
51 * Linked list next 51 * Linked list next
52 */ 52 */
53 struct CadetClient *next; 53 struct CadetClient *next;
54 54
55 /** 55 /**
56 * Linked list prev 56 * Linked list prev
57 */ 57 */
58 struct CadetClient *prev; 58 struct CadetClient *prev;
59 59
60 /** 60 /**
61 * Tunnels that belong to this client, indexed by local id 61 * Tunnels that belong to this client, indexed by local id
62 */ 62 */
63 struct GNUNET_CONTAINER_MultiHashMap32 *own_channels; 63 struct GNUNET_CONTAINER_MultiHashMap32 *own_channels;
64 64
65 /** 65 /**
66 * Tunnels this client has accepted, indexed by incoming local id 66 * Tunnels this client has accepted, indexed by incoming local id
67 */ 67 */
68 struct GNUNET_CONTAINER_MultiHashMap32 *incoming_channels; 68 struct GNUNET_CONTAINER_MultiHashMap32 *incoming_channels;
69 69
70 /** 70 /**
71 * Channel ID for the next incoming channel. 71 * Channel ID for the next incoming channel.
72 */ 72 */
73 CADET_ChannelNumber next_chid; 73 CADET_ChannelNumber next_chid;
74 74
75 /** 75 /**
76 * Handle to communicate with the client 76 * Handle to communicate with the client
77 */ 77 */
78 struct GNUNET_SERVER_Client *handle; 78 struct GNUNET_SERVER_Client *handle;
79 79
80 /** 80 /**
81 * Ports that this client has declared interest in. 81 * Ports that this client has declared interest in.
82 * Indexed by port, contains *Client. 82 * Indexed by port, contains *Client.
83 */ 83 */
84 struct GNUNET_CONTAINER_MultiHashMap *ports; 84 struct GNUNET_CONTAINER_MultiHashMap *ports;
85 85
86 /** 86 /**
87 * Whether the client is active or shutting down (don't send confirmations 87 * Whether the client is active or shutting down (don't send confirmations
88 * to a client that is shutting down. 88 * to a client that is shutting down.
89 */ 89 */
90 int shutting_down; 90 int shutting_down;
91 91
92 /** 92 /**
93 * ID of the client, mainly for debug messages 93 * ID of the client, mainly for debug messages
94 */ 94 */
95 unsigned int id; 95 unsigned int id;
96}; 96};
97 97
@@ -146,7 +146,7 @@ static struct GNUNET_SERVER_NotificationContext *nc;
146 * @param key Port. 146 * @param key Port.
147 * @param value Client structure. 147 * @param value Client structure.
148 * 148 *
149 * @return GNUNET_OK, keep iterating. 149 * @return #GNUNET_OK, keep iterating.
150 */ 150 */
151static int 151static int
152client_release_ports (void *cls, 152client_release_ports (void *cls,
@@ -174,7 +174,7 @@ client_release_ports (void *cls,
174 * @param key The local channel id (used to access the hashmap). 174 * @param key The local channel id (used to access the hashmap).
175 * @param value The value stored at the key (channel to destroy). 175 * @param value The value stored at the key (channel to destroy).
176 * 176 *
177 * @return GNUNET_OK, keep iterating. 177 * @return #GNUNET_OK, keep iterating.
178 */ 178 */
179static int 179static int
180channel_destroy_iterator (void *cls, 180channel_destroy_iterator (void *cls,
@@ -230,6 +230,7 @@ client_destroy (struct CadetClient *c)
230 GNUNET_free (c); 230 GNUNET_free (c);
231} 231}
232 232
233
233/** 234/**
234 * Create a client record, register data and initialize memory. 235 * Create a client record, register data and initialize memory.
235 * 236 *
diff --git a/src/cadet/gnunet-service-cadet_tunnel.h b/src/cadet/gnunet-service-cadet_tunnel.h
index e836e4b24..ca553a7d3 100644
--- a/src/cadet/gnunet-service-cadet_tunnel.h
+++ b/src/cadet/gnunet-service-cadet_tunnel.h
@@ -47,24 +47,24 @@ extern "C"
47 */ 47 */
48enum CadetTunnelCState 48enum CadetTunnelCState
49{ 49{
50 /** 50 /**
51 * Uninitialized status, should never appear in operation. 51 * Uninitialized status, should never appear in operation.
52 */ 52 */
53 CADET_TUNNEL_NEW, 53 CADET_TUNNEL_NEW,
54 54
55 /** 55 /**
56 * No path to the peer known yet. 56 * No path to the peer known yet.
57 */ 57 */
58 CADET_TUNNEL_SEARCHING, 58 CADET_TUNNEL_SEARCHING,
59 59
60 /** 60 /**
61 * Request sent, not yet answered. 61 * Request sent, not yet answered.
62 */ 62 */
63 CADET_TUNNEL_WAITING, 63 CADET_TUNNEL_WAITING,
64 64
65 /** 65 /**
66 * Peer connected and ready to accept data. 66 * Peer connected and ready to accept data.
67 */ 67 */
68 CADET_TUNNEL_READY, 68 CADET_TUNNEL_READY,
69 69
70 /** 70 /**
@@ -142,13 +142,18 @@ struct CadetTunnelQueue;
142 * @param type Type of message sent. 142 * @param type Type of message sent.
143 * @param size Size of the message. 143 * @param size Size of the message.
144 */ 144 */
145typedef void (*GCT_sent) (void *cls, 145typedef void
146 struct CadetTunnel *t, 146(*GCT_sent) (void *cls,
147 struct CadetTunnelQueue *q, 147 struct CadetTunnel *t,
148 uint16_t type, size_t size); 148 struct CadetTunnelQueue *q,
149 uint16_t type, size_t size);
150
151typedef void
152(*GCT_conn_iter) (void *cls, struct CadetConnection *c);
153
149 154
150typedef void (*GCT_conn_iter) (void *cls, struct CadetConnection *c); 155typedef void
151typedef void (*GCT_chan_iter) (void *cls, struct CadetChannel *ch); 156(*GCT_chan_iter) (void *cls, struct CadetChannel *ch);
152 157
153 158
154/******************************************************************************/ 159/******************************************************************************/
diff --git a/src/include/gnunet_protocols.h b/src/include/gnunet_protocols.h
index 8da8fcd00..dc5b5deed 100644
--- a/src/include/gnunet_protocols.h
+++ b/src/include/gnunet_protocols.h
@@ -796,178 +796,6 @@ extern "C"
796#define GNUNET_MESSAGE_TYPE_DNS_HELPER 214 796#define GNUNET_MESSAGE_TYPE_DNS_HELPER 214
797 797
798 798
799/*******************************************************************************
800 * CADET message types
801 ******************************************************************************/
802
803/**
804 * Type of message used to transport messages throug a CADET-tunnel (LEGACY)
805 */
806#define GNUNET_MESSAGE_TYPE_CADET 215
807
808/**
809 * Type of message used to send another peer which messages we want to receive
810 * through a cadet-tunnel (LEGACY)
811 */
812#define GNUNET_MESSAGE_TYPE_CADET_HELLO 216
813
814/**
815 * Request the creation of a connection
816 */
817#define GNUNET_MESSAGE_TYPE_CADET_CONNECTION_CREATE 256
818
819/**
820 * Send origin an ACK that the connection is complete
821 */
822#define GNUNET_MESSAGE_TYPE_CADET_CONNECTION_ACK 257
823
824/**
825 * Notify that a connection is no longer valid
826 */
827#define GNUNET_MESSAGE_TYPE_CADET_CONNECTION_BROKEN 258
828
829/**
830 * At some point, the route will spontaneously change TODO
831 */
832#define GNUNET_MESSAGE_TYPE_CADET_PATH_CHANGED 259
833
834/**
835 * Payload data (usually inside a encrypted tunnel).
836 */
837#define GNUNET_MESSAGE_TYPE_CADET_DATA 260
838
839/**
840 * Confirm payload data end-to-end.
841 */
842#define GNUNET_MESSAGE_TYPE_CADET_DATA_ACK 261
843
844/**
845 * Key exchange encapsulation.
846 */
847#define GNUNET_MESSAGE_TYPE_CADET_KX 262
848
849/**
850 * Request the destuction of a connection
851 */
852#define GNUNET_MESSAGE_TYPE_CADET_CONNECTION_DESTROY 266
853
854/**
855 * Hop-by-hop, connection dependent ACK.
856 */
857#define GNUNET_MESSAGE_TYPE_CADET_ACK 268
858
859/**
860 * Poll for a hop-by-hop ACK.
861 */
862#define GNUNET_MESSAGE_TYPE_CADET_POLL 269
863
864/**
865 * Announce connection is still alive (direction sensitive).
866 */
867#define GNUNET_MESSAGE_TYPE_CADET_KEEPALIVE 270
868
869
870/**
871 * Ask the cadet service to create a new channel.
872 */
873#define GNUNET_MESSAGE_TYPE_CADET_CHANNEL_CREATE 273
874
875/**
876 * Ask the cadet service to destroy a channel.
877 */
878#define GNUNET_MESSAGE_TYPE_CADET_CHANNEL_DESTROY 274
879
880/**
881 * Confirm the creation of a channel
882 */
883#define GNUNET_MESSAGE_TYPE_CADET_CHANNEL_ACK 275
884
885/**
886 * Reject the creation of a channel
887 */
888#define GNUNET_MESSAGE_TYPE_CADET_CHANNEL_NACK 276
889
890/**
891 * Axolotl key exchange.
892 */
893#define GNUNET_MESSAGE_TYPE_CADET_AX_KX 281
894
895/**
896 * Axolotl encrypted data.
897 */
898#define GNUNET_MESSAGE_TYPE_CADET_AX 282
899
900/**
901 * Payload client <-> service
902 */
903#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_DATA 285
904
905/**
906 * Local ACK for data.
907 */
908#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_ACK 286
909
910/**
911 * Start listening on a port.
912 */
913#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_OPEN 287
914
915/**
916 * Stop listening on a port.
917 */
918#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_CLOSE 288
919
920/**
921 * Local information about all channels of service.
922 */
923#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_CHANNELS 290
924
925/**
926 * Local information of service about a specific channel.
927 */
928#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_CHANNEL 291
929
930/**
931 * Local information about all tunnels of service.
932 */
933#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_TUNNELS 292
934
935/**
936 * Local information of service about a specific tunnel.
937 */
938#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_TUNNEL 293
939
940/**
941 * Local information about all connections of service.
942 */
943#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_CONNECTIONS 294
944
945/**
946 * Local information of service about a specific connection.
947 */
948#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_CONNECTION 295
949
950/**
951 * Local information about all peers known to the service.
952 */
953#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEERS 296
954
955/**
956 * Local information of service about a specific peer.
957 */
958#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER 297
959
960/**
961 * Traffic (net-cat style) used by the Command Line Interface.
962 */
963#define GNUNET_MESSAGE_TYPE_CADET_CLI 298
964
965/**
966 * Debug request.
967 */
968#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_DUMP 299
969
970
971 799
972/******************************************************************************* 800/*******************************************************************************
973 * CHAT message types START 801 * CHAT message types START
@@ -1961,37 +1789,6 @@ extern "C"
1961#define GNUNET_MESSAGE_TYPE_TESTBED_LOGGER_ACK 601 1789#define GNUNET_MESSAGE_TYPE_TESTBED_LOGGER_ACK 601
1962 1790
1963 1791
1964/*******************************************************************************
1965 * EXPERIMENTATION message types
1966 ******************************************************************************/
1967
1968/**
1969 * Message for experimentation request
1970 */
1971#define GNUNET_MESSAGE_TYPE_EXPERIMENTATION_REQUEST 610
1972
1973/**
1974 * Message for experimentation response
1975 */
1976#define GNUNET_MESSAGE_TYPE_EXPERIMENTATION_RESPONSE 611
1977
1978/**
1979 * Message for experimentation response
1980 */
1981#define GNUNET_MESSAGE_TYPE_EXPERIMENTATION_START 612
1982
1983/**
1984 * Message for experimentation response
1985 */
1986#define GNUNET_MESSAGE_TYPE_EXPERIMENTATION_START_ACK 613
1987
1988/**
1989 * Message for experimentation response
1990 */
1991#define GNUNET_MESSAGE_TYPE_EXPERIMENTATION_STOP 614
1992
1993
1994
1995 1792
1996/** 1793/**
1997 * Advertise regex capability. 1794 * Advertise regex capability.
@@ -2478,72 +2275,6 @@ extern "C"
2478 2275
2479 2276
2480/******************************************************************************* 2277/*******************************************************************************
2481 * SENSOR message types
2482 ******************************************************************************/
2483
2484/**
2485 * Request information about all sensors
2486 */
2487#define GNUNET_MESSAGE_TYPE_SENSOR_GETALL 800
2488
2489/**
2490 * Request information about one sensor
2491 */
2492#define GNUNET_MESSAGE_TYPE_SENSOR_GET 801
2493
2494/**
2495 * Message carrying sensor information
2496 */
2497#define GNUNET_MESSAGE_TYPE_SENSOR_INFO 802
2498
2499/**
2500 * End of an iteration sequence
2501 */
2502#define GNUNET_MESSAGE_TYPE_SENSOR_END 803
2503
2504/**
2505 * Message carrying a single sensor reading
2506 */
2507#define GNUNET_MESSAGE_TYPE_SENSOR_READING 804
2508
2509/**
2510 * Request for sensor list from update point
2511 */
2512#define GNUNET_MESSAGE_TYPE_SENSOR_LIST_REQ 805
2513
2514/**
2515 * Messsage carrying brief sensor information (name, version)
2516 */
2517#define GNUNET_MESSAGE_TYPE_SENSOR_BRIEF 806
2518
2519/**
2520 * Request for full sensor information
2521 */
2522#define GNUNET_MESSAGE_TYPE_SENSOR_FULL_REQ 807
2523
2524/**
2525 * Full sensor information
2526 */
2527#define GNUNET_MESSAGE_TYPE_SENSOR_FULL 808
2528
2529/**
2530 * Sensor anomaly report
2531 */
2532#define GNUNET_MESSAGE_TYPE_SENSOR_ANOMALY_REPORT 809
2533
2534/**
2535 * Message sent from API to service to force a new sensor anomaly status
2536 * (For testing purposes only)
2537 */
2538#define GNUNET_MESSAGE_TYPE_SENSOR_ANOMALY_FORCE 810
2539
2540/**
2541 * Sensor anomaly report exchanged between peers
2542 */
2543#define GNUNET_MESSAGE_TYPE_SENSOR_ANOMALY_REPORT_P2P 811
2544
2545
2546/*******************************************************************************
2547 * PEERSTORE message types 2278 * PEERSTORE message types
2548 ******************************************************************************/ 2279 ******************************************************************************/
2549 2280
@@ -2851,9 +2582,184 @@ extern "C"
2851 2582
2852/*******************************************************************************/ 2583/*******************************************************************************/
2853 2584
2585
2586/*******************************************************************************
2587 * CADET message types
2588 ******************************************************************************/
2589
2590/**
2591 * Type of message used to transport messages throug a CADET-tunnel (LEGACY)
2592 */
2593#define GNUNET_MESSAGE_TYPE_CADET 1000
2594
2595/**
2596 * Type of message used to send another peer which messages we want to receive
2597 * through a cadet-tunnel (LEGACY)
2598 */
2599#define GNUNET_MESSAGE_TYPE_CADET_HELLO 1001
2600
2601/**
2602 * Request the creation of a connection
2603 */
2604#define GNUNET_MESSAGE_TYPE_CADET_CONNECTION_CREATE 1002
2605
2606/**
2607 * Send origin an ACK that the connection is complete
2608 */
2609#define GNUNET_MESSAGE_TYPE_CADET_CONNECTION_ACK 1003
2610
2611/**
2612 * Notify that a connection is no longer valid
2613 */
2614#define GNUNET_MESSAGE_TYPE_CADET_CONNECTION_BROKEN 1004
2615
2616/**
2617 * At some point, the route will spontaneously change TODO
2618 */
2619#define GNUNET_MESSAGE_TYPE_CADET_PATH_CHANGED 1005
2620
2621/**
2622 * Payload data (usually inside a encrypted tunnel).
2623 */
2624#define GNUNET_MESSAGE_TYPE_CADET_DATA 1006
2625
2626/**
2627 * Confirm payload data end-to-end.
2628 */
2629#define GNUNET_MESSAGE_TYPE_CADET_DATA_ACK 1007
2630
2631/**
2632 * Key exchange encapsulation.
2633 */
2634#define GNUNET_MESSAGE_TYPE_CADET_KX 1008
2635
2636/**
2637 * Request the destuction of a connection
2638 */
2639#define GNUNET_MESSAGE_TYPE_CADET_CONNECTION_DESTROY 1009
2640
2641/**
2642 * Hop-by-hop, connection dependent ACK.
2643 */
2644#define GNUNET_MESSAGE_TYPE_CADET_ACK 1010
2645
2646/**
2647 * Poll for a hop-by-hop ACK.
2648 */
2649#define GNUNET_MESSAGE_TYPE_CADET_POLL 1011
2650
2651/**
2652 * Announce connection is still alive (direction sensitive).
2653 */
2654#define GNUNET_MESSAGE_TYPE_CADET_KEEPALIVE 1012
2655
2656
2657/**
2658 * Ask the cadet service to create a new channel.
2659 */
2660#define GNUNET_MESSAGE_TYPE_CADET_CHANNEL_CREATE 1013
2661
2662/**
2663 * Ask the cadet service to destroy a channel.
2664 */
2665#define GNUNET_MESSAGE_TYPE_CADET_CHANNEL_DESTROY 1014
2666
2667/**
2668 * Confirm the creation of a channel
2669 */
2670#define GNUNET_MESSAGE_TYPE_CADET_CHANNEL_ACK 1015
2671
2672/**
2673 * Reject the creation of a channel
2674 */
2675#define GNUNET_MESSAGE_TYPE_CADET_CHANNEL_NACK 1016
2676
2677/**
2678 * Axolotl key exchange.
2679 */
2680#define GNUNET_MESSAGE_TYPE_CADET_AX_KX 1017
2681
2854/** 2682/**
2855 * Next available: 970 2683 * Axolotl encrypted data.
2684 */
2685#define GNUNET_MESSAGE_TYPE_CADET_AX 1018
2686
2687/**
2688 * Payload client <-> service
2689 */
2690#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_DATA 1019
2691
2692/**
2693 * Local ACK for data.
2694 */
2695#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_ACK 1020
2696
2697/**
2698 * Start listening on a port.
2699 */
2700#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_OPEN 1021
2701
2702/**
2703 * Stop listening on a port.
2704 */
2705#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_CLOSE 1022
2706
2707/**
2708 * Local information about all channels of service.
2856 */ 2709 */
2710#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_CHANNELS 1023
2711
2712/**
2713 * Local information of service about a specific channel.
2714 */
2715#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_CHANNEL 1024
2716
2717/**
2718 * Local information about all tunnels of service.
2719 */
2720#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_TUNNELS 1025
2721
2722/**
2723 * Local information of service about a specific tunnel.
2724 */
2725#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_TUNNEL 1026
2726
2727/**
2728 * Local information about all connections of service.
2729 */
2730#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_CONNECTIONS 1027
2731
2732/**
2733 * Local information of service about a specific connection.
2734 */
2735#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_CONNECTION 1028
2736
2737/**
2738 * Local information about all peers known to the service.
2739 */
2740#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEERS 1029
2741
2742/**
2743 * Local information of service about a specific peer.
2744 */
2745#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_PEER 1030
2746
2747/**
2748 * Traffic (net-cat style) used by the Command Line Interface.
2749 */
2750#define GNUNET_MESSAGE_TYPE_CADET_CLI 1031
2751
2752/**
2753 * Debug request.
2754 */
2755#define GNUNET_MESSAGE_TYPE_CADET_LOCAL_INFO_DUMP 1032
2756
2757
2758/**
2759 * Next available: 1060
2760 */
2761
2762
2857 2763
2858/** 2764/**
2859 * Type used to match 'all' message types. 2765 * Type used to match 'all' message types.