aboutsummaryrefslogtreecommitdiff
path: root/src/transport/transport_api_cmd_start_peer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/transport_api_cmd_start_peer.c')
-rw-r--r--src/transport/transport_api_cmd_start_peer.c34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/transport/transport_api_cmd_start_peer.c b/src/transport/transport_api_cmd_start_peer.c
index c2cc20a2a..b2b26194a 100644
--- a/src/transport/transport_api_cmd_start_peer.c
+++ b/src/transport/transport_api_cmd_start_peer.c
@@ -95,6 +95,8 @@ struct StartPeerState
95 95
96 char *n; 96 char *n;
97 97
98 char *local_m;
99
98 unsigned int finished; 100 unsigned int finished;
99 101
100 const char *system_label; 102 const char *system_label;
@@ -104,7 +106,7 @@ struct StartPeerState
104 */ 106 */
105 unsigned int no; 107 unsigned int no;
106 108
107 struct GNUNET_CONTAINER_MultiPeerMap *connected_peers_map; 109 struct GNUNET_CONTAINER_MultiShortmap *connected_peers_map;
108 110
109 struct GNUNET_TESTING_System *tl_system; 111 struct GNUNET_TESTING_System *tl_system;
110 112
@@ -190,7 +192,9 @@ notify_connect (void *cls,
190 struct GNUNET_MQ_Handle *mq) 192 struct GNUNET_MQ_Handle *mq)
191{ 193{
192 struct StartPeerState *sps = cls; 194 struct StartPeerState *sps = cls;
193 195 struct GNUNET_ShortHashCode *key = GNUNET_new (struct GNUNET_ShortHashCode);
196 struct GNUNET_HashCode hc;
197 int node_number;
194 198
195 void *ret; 199 void *ret;
196 200
@@ -201,8 +205,16 @@ notify_connect (void *cls,
201 sps->no, 205 sps->no,
202 GNUNET_i2s (&sps->id)); 206 GNUNET_i2s (&sps->id));
203 207
204 GNUNET_CONTAINER_multipeermap_put (sps->connected_peers_map, 208 // TODO we need to store with a key identifying the netns node in the future. For now we have only one connecting node.
205 peer, 209 node_number = 1;
210 GNUNET_CRYPTO_hash (&node_number, sizeof(node_number), &hc);
211
212
213 memcpy (key,
214 &hc,
215 sizeof (*key));
216 GNUNET_CONTAINER_multishortmap_put (sps->connected_peers_map,
217 key,
206 mq, 218 mq,
207 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); 219 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
208 220
@@ -428,7 +440,7 @@ start_peer_traits (void *cls,
428 struct StartPeerState *sps = cls; 440 struct StartPeerState *sps = cls;
429 struct GNUNET_TRANSPORT_ApplicationHandle *ah = sps->ah; 441 struct GNUNET_TRANSPORT_ApplicationHandle *ah = sps->ah;
430 struct GNUNET_PeerIdentity *id = &sps->id; 442 struct GNUNET_PeerIdentity *id = &sps->id;
431 struct GNUNET_CONTAINER_MultiPeerMap *connected_peers_map = 443 struct GNUNET_CONTAINER_MultiShortmap *connected_peers_map =
432 sps->connected_peers_map; 444 sps->connected_peers_map;
433 char *hello = sps->hello; 445 char *hello = sps->hello;
434 size_t hello_size = sps->hello_size; 446 size_t hello_size = sps->hello_size;
@@ -498,7 +510,7 @@ GNUNET_TRANSPORT_get_trait_connected_peers_map (const struct
498 GNUNET_TESTING_Command 510 GNUNET_TESTING_Command
499 *cmd, 511 *cmd,
500 struct 512 struct
501 GNUNET_CONTAINER_MultiPeerMap ** 513 GNUNET_CONTAINER_MultiShortmap **
502 connected_peers_map) 514 connected_peers_map)
503{ 515{
504 return cmd->traits (cmd->cls, 516 return cmd->traits (cmd->cls,
@@ -545,20 +557,24 @@ GNUNET_TRANSPORT_cmd_start_peer (const char *label,
545 const char *system_label, 557 const char *system_label,
546 char *m, 558 char *m,
547 char *n, 559 char *n,
560 char *local_m,
548 struct GNUNET_MQ_MessageHandler *handlers, 561 struct GNUNET_MQ_MessageHandler *handlers,
549 const char *cfgname) 562 const char *cfgname)
550{ 563{
551 struct StartPeerState *sps; 564 struct StartPeerState *sps;
552 struct GNUNET_CONTAINER_MultiPeerMap *connected_peers_map = 565 struct GNUNET_CONTAINER_MultiShortmap *connected_peers_map =
553 GNUNET_CONTAINER_multipeermap_create (1,GNUNET_NO); 566 GNUNET_CONTAINER_multishortmap_create (1,GNUNET_NO);
554 unsigned int i; 567 unsigned int i;
555 568
556 LOG (GNUNET_ERROR_TYPE_ERROR, 569 LOG (GNUNET_ERROR_TYPE_ERROR,
557 "start peer 0.1\n"); 570 "start peer 0.1 with cfg: %s\n",
571 cfgname);
558 572
559 sps = GNUNET_new (struct StartPeerState); 573 sps = GNUNET_new (struct StartPeerState);
560 sps->m = m; 574 sps->m = m;
561 sps->n = n; 575 sps->n = n;
576 sps->local_m = local_m;
577 sps->no = (atoi (n) - 1) * atoi (sps->local_m) + atoi (m);
562 sps->system_label = system_label; 578 sps->system_label = system_label;
563 sps->connected_peers_map = connected_peers_map; 579 sps->connected_peers_map = connected_peers_map;
564 sps->cfgname = cfgname; 580 sps->cfgname = cfgname;