diff options
Diffstat (limited to 'src/transport/transport_api_cmd_start_peer.c')
-rw-r--r-- | src/transport/transport_api_cmd_start_peer.c | 34 |
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; |