aboutsummaryrefslogtreecommitdiff
path: root/src/messenger/gnunet-service-messenger_room.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/messenger/gnunet-service-messenger_room.c')
-rw-r--r--src/messenger/gnunet-service-messenger_room.c228
1 files changed, 114 insertions, 114 deletions
diff --git a/src/messenger/gnunet-service-messenger_room.c b/src/messenger/gnunet-service-messenger_room.c
index 7a20d2191..068597f51 100644
--- a/src/messenger/gnunet-service-messenger_room.c
+++ b/src/messenger/gnunet-service-messenger_room.c
@@ -1,6 +1,6 @@
1/* 1/*
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2020--2021 GNUnet e.V. 3 Copyright (C) 2020--2022 GNUnet e.V.
4 4
5 GNUnet is free software: you can redistribute it and/or modify it 5 GNUnet is free software: you can redistribute it and/or modify it
6 under the terms of the GNU Affero General Public License as published 6 under the terms of the GNU Affero General Public License as published
@@ -43,8 +43,8 @@ static void
43idle_request_room_messages (void *cls); 43idle_request_room_messages (void *cls);
44 44
45struct GNUNET_MESSENGER_SrvRoom* 45struct GNUNET_MESSENGER_SrvRoom*
46create_room (struct GNUNET_MESSENGER_SrvHandle *handle, 46create_srv_room (struct GNUNET_MESSENGER_SrvHandle *handle,
47 const struct GNUNET_HashCode *key) 47 const struct GNUNET_HashCode *key)
48{ 48{
49 GNUNET_assert((handle) && (key)); 49 GNUNET_assert((handle) && (key));
50 50
@@ -58,9 +58,9 @@ create_room (struct GNUNET_MESSENGER_SrvHandle *handle,
58 58
59 room->tunnels = GNUNET_CONTAINER_multipeermap_create (8, GNUNET_NO); 59 room->tunnels = GNUNET_CONTAINER_multipeermap_create (8, GNUNET_NO);
60 60
61 init_member_store(get_room_member_store(room), room); 61 init_member_store(get_srv_room_member_store(room), room);
62 init_message_store (get_room_message_store(room)); 62 init_message_store (get_srv_room_message_store(room));
63 init_operation_store(get_room_operation_store(room), room); 63 init_operation_store(get_srv_room_operation_store(room), room);
64 64
65 init_list_tunnels (&(room->basement)); 65 init_list_tunnels (&(room->basement));
66 init_message_state(&(room->state)); 66 init_message_state(&(room->state));
@@ -71,7 +71,7 @@ create_room (struct GNUNET_MESSENGER_SrvHandle *handle,
71 room->idle = NULL; 71 room->idle = NULL;
72 72
73 if (room->service->dir) 73 if (room->service->dir)
74 load_room (room); 74 load_srv_room (room);
75 75
76 room->idle = GNUNET_SCHEDULER_add_with_priority (GNUNET_SCHEDULER_PRIORITY_IDLE, idle_request_room_messages, room); 76 room->idle = GNUNET_SCHEDULER_add_with_priority (GNUNET_SCHEDULER_PRIORITY_IDLE, idle_request_room_messages, room);
77 77
@@ -92,8 +92,8 @@ static void
92handle_room_messages (struct GNUNET_MESSENGER_SrvRoom *room); 92handle_room_messages (struct GNUNET_MESSENGER_SrvRoom *room);
93 93
94void 94void
95destroy_room (struct GNUNET_MESSENGER_SrvRoom *room, 95destroy_srv_room (struct GNUNET_MESSENGER_SrvRoom *room,
96 int deletion) 96 int deletion)
97{ 97{
98 GNUNET_assert(room); 98 GNUNET_assert(room);
99 99
@@ -113,14 +113,14 @@ destroy_room (struct GNUNET_MESSENGER_SrvRoom *room,
113 goto skip_saving; 113 goto skip_saving;
114 114
115 if (GNUNET_YES == deletion) 115 if (GNUNET_YES == deletion)
116 remove_room (room); 116 remove_srv_room (room);
117 else 117 else
118 save_room (room); 118 save_srv_room (room);
119 119
120skip_saving: 120skip_saving:
121 clear_member_store (get_room_member_store(room)); 121 clear_member_store (get_srv_room_member_store(room));
122 clear_message_store (get_room_message_store(room)); 122 clear_message_store (get_srv_room_message_store(room));
123 clear_operation_store(get_room_operation_store(room)); 123 clear_operation_store(get_srv_room_operation_store(room));
124 124
125 GNUNET_CONTAINER_multipeermap_destroy (room->tunnels); 125 GNUNET_CONTAINER_multipeermap_destroy (room->tunnels);
126 clear_list_tunnels (&(room->basement)); 126 clear_list_tunnels (&(room->basement));
@@ -133,7 +133,7 @@ skip_saving:
133} 133}
134 134
135struct GNUNET_MESSENGER_MemberStore* 135struct GNUNET_MESSENGER_MemberStore*
136get_room_member_store (struct GNUNET_MESSENGER_SrvRoom *room) 136get_srv_room_member_store (struct GNUNET_MESSENGER_SrvRoom *room)
137{ 137{
138 GNUNET_assert(room); 138 GNUNET_assert(room);
139 139
@@ -141,7 +141,7 @@ get_room_member_store (struct GNUNET_MESSENGER_SrvRoom *room)
141} 141}
142 142
143struct GNUNET_MESSENGER_MessageStore* 143struct GNUNET_MESSENGER_MessageStore*
144get_room_message_store (struct GNUNET_MESSENGER_SrvRoom *room) 144get_srv_room_message_store (struct GNUNET_MESSENGER_SrvRoom *room)
145{ 145{
146 GNUNET_assert(room); 146 GNUNET_assert(room);
147 147
@@ -149,7 +149,7 @@ get_room_message_store (struct GNUNET_MESSENGER_SrvRoom *room)
149} 149}
150 150
151struct GNUNET_MESSENGER_OperationStore* 151struct GNUNET_MESSENGER_OperationStore*
152get_room_operation_store (struct GNUNET_MESSENGER_SrvRoom *room) 152get_srv_room_operation_store (struct GNUNET_MESSENGER_SrvRoom *room)
153{ 153{
154 GNUNET_assert(room); 154 GNUNET_assert(room);
155 155
@@ -164,7 +164,7 @@ send_room_info (struct GNUNET_MESSENGER_SrvRoom *room,
164 if ((!handle) || (!is_tunnel_connected (tunnel))) 164 if ((!handle) || (!is_tunnel_connected (tunnel)))
165 return GNUNET_NO; 165 return GNUNET_NO;
166 166
167 return send_tunnel_message (tunnel, handle, create_message_info (get_handle_ego (handle))); 167 return send_tunnel_message (tunnel, handle, create_message_info (get_srv_handle_ego (handle)));
168} 168}
169 169
170static void* 170static void*
@@ -193,7 +193,7 @@ callback_room_connect (void *cls,
193 bind_tunnel(tunnel, channel); 193 bind_tunnel(tunnel, channel);
194 194
195 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "New tunnel in room (%s) established to peer: %s\n", 195 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "New tunnel in room (%s) established to peer: %s\n",
196 GNUNET_h2s(get_room_key(room)), GNUNET_i2s (source)); 196 GNUNET_h2s(get_srv_room_key(room)), GNUNET_i2s (source));
197 197
198 if (GNUNET_YES == send_room_info (room, room->host, tunnel)) 198 if (GNUNET_YES == send_room_info (room, room->host, tunnel))
199 return tunnel; 199 return tunnel;
@@ -213,15 +213,15 @@ join_room (struct GNUNET_MESSENGER_SrvRoom *room,
213{ 213{
214 GNUNET_assert((room) && (handle) && (member)); 214 GNUNET_assert((room) && (handle) && (member));
215 215
216 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Joining room: %s (%s)\n", GNUNET_h2s (get_room_key (room)), 216 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Joining room: %s (%s)\n", GNUNET_h2s (get_srv_room_key (room)),
217 GNUNET_sh2s (get_member_id(member))); 217 GNUNET_sh2s (get_member_id(member)));
218 218
219 const struct GNUNET_ShortHashCode *member_id = get_member_id(member); 219 const struct GNUNET_ShortHashCode *member_id = get_member_id(member);
220 220
221 if (GNUNET_OK != change_handle_member_id (handle, get_room_key(room), member_id)) 221 if (GNUNET_OK != change_srv_handle_member_id (handle, get_srv_room_key(room), member_id))
222 return GNUNET_NO; 222 return GNUNET_NO;
223 223
224 struct GNUNET_MESSENGER_Message *message = create_message_join (get_handle_ego (handle)); 224 struct GNUNET_MESSENGER_Message *message = create_message_join (get_srv_handle_ego (handle));
225 225
226 if (!message) 226 if (!message)
227 { 227 {
@@ -231,7 +231,7 @@ join_room (struct GNUNET_MESSENGER_SrvRoom *room,
231 } 231 }
232 232
233 GNUNET_memcpy(&(message->header.sender_id), member_id, sizeof(*member_id)); 233 GNUNET_memcpy(&(message->header.sender_id), member_id, sizeof(*member_id));
234 return send_room_message (room, handle, message); 234 return send_srv_room_message (room, handle, message);
235} 235}
236 236
237struct GNUNET_MESSENGER_MemberNotify 237struct GNUNET_MESSENGER_MemberNotify
@@ -250,7 +250,7 @@ notify_about_members (struct GNUNET_MESSENGER_MemberNotify *notify,
250 if (session->prev) 250 if (session->prev)
251 notify_about_members (notify, session->prev, map, GNUNET_YES); 251 notify_about_members (notify, session->prev, map, GNUNET_YES);
252 252
253 struct GNUNET_MESSENGER_MessageStore *message_store = get_room_message_store(notify->room); 253 struct GNUNET_MESSENGER_MessageStore *message_store = get_srv_room_message_store(notify->room);
254 struct GNUNET_MESSENGER_ListMessage *element; 254 struct GNUNET_MESSENGER_ListMessage *element;
255 255
256 for (element = session->messages.head; element; element = element->next) 256 for (element = session->messages.head; element; element = element->next)
@@ -269,7 +269,7 @@ notify_about_members (struct GNUNET_MESSENGER_MemberNotify *notify,
269 const struct GNUNET_MESSENGER_Message *message = get_store_message(message_store, &(element->hash)); 269 const struct GNUNET_MESSENGER_Message *message = get_store_message(message_store, &(element->hash));
270 270
271 if (message) 271 if (message)
272 notify_handle_message (notify->handle, notify->room, session, message, &(element->hash)); 272 notify_srv_handle_message (notify->handle, notify->room, session, message, &(element->hash));
273 } 273 }
274} 274}
275 275
@@ -295,15 +295,15 @@ static int
295join_room_locally (struct GNUNET_MESSENGER_SrvRoom *room, 295join_room_locally (struct GNUNET_MESSENGER_SrvRoom *room,
296 struct GNUNET_MESSENGER_SrvHandle *handle) 296 struct GNUNET_MESSENGER_SrvHandle *handle)
297{ 297{
298 const struct GNUNET_ShortHashCode *member_id = get_handle_member_id (handle, get_room_key(room)); 298 const struct GNUNET_ShortHashCode *member_id = get_srv_handle_member_id (handle, get_srv_room_key(room));
299 299
300 struct GNUNET_MESSENGER_MemberStore *member_store = get_room_member_store(room); 300 struct GNUNET_MESSENGER_MemberStore *member_store = get_srv_room_member_store(room);
301 struct GNUNET_MESSENGER_Member *member = add_store_member(member_store, member_id); 301 struct GNUNET_MESSENGER_Member *member = add_store_member(member_store, member_id);
302 302
303 if (GNUNET_NO == join_room (room, handle, member)) 303 if (GNUNET_NO == join_room (room, handle, member))
304 return GNUNET_NO; 304 return GNUNET_NO;
305 305
306 const struct GNUNET_MESSENGER_Ego *ego = get_handle_ego(handle); 306 const struct GNUNET_MESSENGER_Ego *ego = get_srv_handle_ego(handle);
307 struct GNUNET_MESSENGER_MemberSession *session = get_member_session (member, &(ego->pub)); 307 struct GNUNET_MESSENGER_MemberSession *session = get_member_session (member, &(ego->pub));
308 308
309 if (!session) 309 if (!session)
@@ -318,7 +318,7 @@ join_room_locally (struct GNUNET_MESSENGER_SrvRoom *room,
318 notify.handle = handle; 318 notify.handle = handle;
319 notify.session = session; 319 notify.session = session;
320 320
321 iterate_store_members(get_room_member_store(room), iterate_notify_about_members, &notify); 321 iterate_store_members(get_srv_room_member_store(room), iterate_notify_about_members, &notify);
322 322
323 return GNUNET_YES; 323 return GNUNET_YES;
324} 324}
@@ -336,16 +336,16 @@ callback_tunnel_disconnect (void *cls,
336 const struct GNUNET_CADET_Channel *channel); 336 const struct GNUNET_CADET_Channel *channel);
337 337
338int 338int
339open_room (struct GNUNET_MESSENGER_SrvRoom *room, 339open_srv_room (struct GNUNET_MESSENGER_SrvRoom *room,
340 struct GNUNET_MESSENGER_SrvHandle *handle) 340 struct GNUNET_MESSENGER_SrvHandle *handle)
341{ 341{
342 GNUNET_assert((room) && (handle)); 342 GNUNET_assert((room) && (handle));
343 343
344 if (room->port) 344 if (room->port)
345 return join_room_locally (room, handle); 345 return join_room_locally (room, handle);
346 346
347 struct GNUNET_CADET_Handle *cadet = get_room_cadet (room); 347 struct GNUNET_CADET_Handle *cadet = get_srv_room_cadet (room);
348 const struct GNUNET_HashCode *key = get_room_key (room); 348 const struct GNUNET_HashCode *key = get_srv_room_key (room);
349 349
350 struct GNUNET_MQ_MessageHandler handlers[] = { GNUNET_MQ_hd_var_size(tunnel_message, GNUNET_MESSAGE_TYPE_CADET_CLI, 350 struct GNUNET_MQ_MessageHandler handlers[] = { GNUNET_MQ_hd_var_size(tunnel_message, GNUNET_MESSAGE_TYPE_CADET_CLI,
351 struct GNUNET_MessageHeader, NULL), 351 struct GNUNET_MessageHeader, NULL),
@@ -358,14 +358,14 @@ open_room (struct GNUNET_MESSENGER_SrvRoom *room,
358 358
359 if (room->port) 359 if (room->port)
360 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Port of room (%s) was opened!\n", 360 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Port of room (%s) was opened!\n",
361 GNUNET_h2s(get_room_key(room))); 361 GNUNET_h2s(get_srv_room_key(room)));
362 else 362 else
363 GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "Port of room (%s) could not be opened!\n", 363 GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "Port of room (%s) could not be opened!\n",
364 GNUNET_h2s(get_room_key(room))); 364 GNUNET_h2s(get_srv_room_key(room)));
365 365
366 const struct GNUNET_ShortHashCode *member_id = get_handle_member_id (handle, get_room_key(room)); 366 const struct GNUNET_ShortHashCode *member_id = get_srv_handle_member_id (handle, get_srv_room_key(room));
367 367
368 struct GNUNET_MESSENGER_MemberStore *member_store = get_room_member_store(room); 368 struct GNUNET_MESSENGER_MemberStore *member_store = get_srv_room_member_store(room);
369 struct GNUNET_MESSENGER_Member *member = add_store_member(member_store, member_id); 369 struct GNUNET_MESSENGER_Member *member = add_store_member(member_store, member_id);
370 370
371 if ((GNUNET_NO == join_room (room, handle, member)) && (room->port)) 371 if ((GNUNET_NO == join_room (room, handle, member)) && (room->port))
@@ -380,13 +380,13 @@ open_room (struct GNUNET_MESSENGER_SrvRoom *room,
380 380
381 struct GNUNET_MESSENGER_Message *peer_msg = create_message_peer (room->service); 381 struct GNUNET_MESSENGER_Message *peer_msg = create_message_peer (room->service);
382 GNUNET_memcpy(&(peer_msg->header.sender_id), member_id, sizeof(*member_id)); 382 GNUNET_memcpy(&(peer_msg->header.sender_id), member_id, sizeof(*member_id));
383 return (room->port ? send_room_message (room, handle, peer_msg) : GNUNET_NO); 383 return (room->port ? send_srv_room_message (room, handle, peer_msg) : GNUNET_NO);
384} 384}
385 385
386int 386int
387enter_room_at (struct GNUNET_MESSENGER_SrvRoom *room, 387enter_srv_room_at (struct GNUNET_MESSENGER_SrvRoom *room,
388 struct GNUNET_MESSENGER_SrvHandle *handle, 388 struct GNUNET_MESSENGER_SrvHandle *handle,
389 const struct GNUNET_PeerIdentity *door) 389 const struct GNUNET_PeerIdentity *door)
390{ 390{
391 GNUNET_assert((room) && (handle) && (door)); 391 GNUNET_assert((room) && (handle) && (door));
392 392
@@ -423,24 +423,24 @@ enter_room_at (struct GNUNET_MESSENGER_SrvRoom *room,
423} 423}
424 424
425struct GNUNET_MQ_Envelope* 425struct GNUNET_MQ_Envelope*
426pack_room_message (const struct GNUNET_MESSENGER_SrvRoom *room, 426pack_srv_room_message (const struct GNUNET_MESSENGER_SrvRoom *room,
427 const struct GNUNET_MESSENGER_SrvHandle *handle, 427 const struct GNUNET_MESSENGER_SrvHandle *handle,
428 struct GNUNET_MESSENGER_Message *message, 428 struct GNUNET_MESSENGER_Message *message,
429 struct GNUNET_HashCode *hash, 429 struct GNUNET_HashCode *hash,
430 int mode) 430 int mode)
431{ 431{
432 GNUNET_assert((room) && (handle) && (message) && (hash)); 432 GNUNET_assert((room) && (handle) && (message) && (hash));
433 433
434 message->header.timestamp = GNUNET_TIME_absolute_hton (GNUNET_TIME_absolute_get ()); 434 message->header.timestamp = GNUNET_TIME_absolute_hton (GNUNET_TIME_absolute_get ());
435 435
436 const struct GNUNET_ShortHashCode *id = get_handle_member_id (handle, get_room_key(room)); 436 const struct GNUNET_ShortHashCode *id = get_srv_handle_member_id (handle, get_srv_room_key(room));
437 437
438 GNUNET_assert(id); 438 GNUNET_assert(id);
439 439
440 GNUNET_memcpy(&(message->header.sender_id), id, sizeof(struct GNUNET_ShortHashCode)); 440 GNUNET_memcpy(&(message->header.sender_id), id, sizeof(struct GNUNET_ShortHashCode));
441 get_message_state_chain_hash (&(room->state), &(message->header.previous)); 441 get_message_state_chain_hash (&(room->state), &(message->header.previous));
442 442
443 return pack_message (message, hash, get_handle_ego (handle), mode); 443 return pack_message (message, hash, get_srv_handle_ego (handle), mode);
444} 444}
445 445
446struct GNUNET_MESSENGER_ClosureSendRoom 446struct GNUNET_MESSENGER_ClosureSendRoom
@@ -473,7 +473,7 @@ iterate_send_room_message (void *cls,
473 473
474 if (closure->packed == GNUNET_NO) 474 if (closure->packed == GNUNET_NO)
475 { 475 {
476 env = pack_room_message (closure->room, closure->handle, closure->message, closure->hash, 476 env = pack_srv_room_message (closure->room, closure->handle, closure->message, closure->hash,
477 GNUNET_MESSENGER_PACK_MODE_ENVELOPE); 477 GNUNET_MESSENGER_PACK_MODE_ENVELOPE);
478 478
479 if (env) 479 if (env)
@@ -500,9 +500,9 @@ callback_room_handle_message (struct GNUNET_MESSENGER_SrvRoom *room,
500 const struct GNUNET_HashCode *hash); 500 const struct GNUNET_HashCode *hash);
501 501
502int 502int
503send_room_message (struct GNUNET_MESSENGER_SrvRoom *room, 503send_srv_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
504 struct GNUNET_MESSENGER_SrvHandle *handle, 504 struct GNUNET_MESSENGER_SrvHandle *handle,
505 struct GNUNET_MESSENGER_Message *message) 505 struct GNUNET_MESSENGER_Message *message)
506{ 506{
507 GNUNET_assert((room) && (handle)); 507 GNUNET_assert((room) && (handle));
508 508
@@ -510,10 +510,10 @@ send_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
510 return GNUNET_NO; 510 return GNUNET_NO;
511 511
512 if (GNUNET_YES == is_message_session_bound(message)) 512 if (GNUNET_YES == is_message_session_bound(message))
513 merge_room_last_messages(room, handle); 513 merge_srv_room_last_messages(room, handle);
514 514
515 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Sending message from handle with member id: %s\n", 515 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Sending message from handle with member id: %s\n",
516 GNUNET_sh2s(get_handle_member_id(handle, get_room_key(room)))); 516 GNUNET_sh2s(get_srv_handle_member_id(handle, get_srv_room_key(room))));
517 517
518 struct GNUNET_HashCode hash; 518 struct GNUNET_HashCode hash;
519 struct GNUNET_MESSENGER_ClosureSendRoom closure; 519 struct GNUNET_MESSENGER_ClosureSendRoom closure;
@@ -528,7 +528,7 @@ send_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
528 GNUNET_CONTAINER_multipeermap_iterate (room->tunnels, iterate_send_room_message, &closure); 528 GNUNET_CONTAINER_multipeermap_iterate (room->tunnels, iterate_send_room_message, &closure);
529 529
530 if (GNUNET_NO == closure.packed) 530 if (GNUNET_NO == closure.packed)
531 pack_room_message (room, handle, message, &hash, GNUNET_MESSENGER_PACK_MODE_UNKNOWN); 531 pack_srv_room_message (room, handle, message, &hash, GNUNET_MESSENGER_PACK_MODE_UNKNOWN);
532 532
533 const int new_message = update_room_message (room, message, &hash); 533 const int new_message = update_room_message (room, message, &hash);
534 534
@@ -558,10 +558,10 @@ send_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
558} 558}
559 559
560void 560void
561forward_room_message (struct GNUNET_MESSENGER_SrvRoom *room, 561forward_srv_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
562 struct GNUNET_MESSENGER_SrvTunnel *tunnel, 562 struct GNUNET_MESSENGER_SrvTunnel *tunnel,
563 struct GNUNET_MESSENGER_Message *message, 563 struct GNUNET_MESSENGER_Message *message,
564 const struct GNUNET_HashCode *hash) 564 const struct GNUNET_HashCode *hash)
565{ 565{
566 GNUNET_assert((room) && (tunnel)); 566 GNUNET_assert((room) && (tunnel));
567 567
@@ -584,13 +584,13 @@ forward_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
584} 584}
585 585
586void 586void
587check_room_peer_status (struct GNUNET_MESSENGER_SrvRoom *room, 587check_srv_room_peer_status (struct GNUNET_MESSENGER_SrvRoom *room,
588 struct GNUNET_MESSENGER_SrvTunnel *tunnel) 588 struct GNUNET_MESSENGER_SrvTunnel *tunnel)
589{ 589{
590 if (!room->peer_message) 590 if (!room->peer_message)
591 return; 591 return;
592 592
593 struct GNUNET_MESSENGER_MessageStore *message_store = get_room_message_store(room); 593 struct GNUNET_MESSENGER_MessageStore *message_store = get_srv_room_message_store(room);
594 594
595 const struct GNUNET_MESSENGER_Message *message = get_store_message(message_store, room->peer_message); 595 const struct GNUNET_MESSENGER_Message *message = get_store_message(message_store, room->peer_message);
596 596
@@ -601,7 +601,7 @@ check_room_peer_status (struct GNUNET_MESSENGER_SrvRoom *room,
601 return; 601 return;
602 } 602 }
603 603
604 struct GNUNET_MESSENGER_MemberStore *member_store = get_room_member_store(room); 604 struct GNUNET_MESSENGER_MemberStore *member_store = get_srv_room_member_store(room);
605 struct GNUNET_MESSENGER_Member *member = get_store_member_of(member_store, message); 605 struct GNUNET_MESSENGER_Member *member = get_store_member_of(member_store, message);
606 606
607 if (!member) 607 if (!member)
@@ -619,12 +619,12 @@ check_room_peer_status (struct GNUNET_MESSENGER_SrvRoom *room,
619 619
620resend_peer_message: 620resend_peer_message:
621 if (room->host) 621 if (room->host)
622 send_room_message (room, room->host, create_message_peer (room->service)); 622 send_srv_room_message (room, room->host, create_message_peer (room->service));
623} 623}
624 624
625void 625void
626merge_room_last_messages (struct GNUNET_MESSENGER_SrvRoom *room, 626merge_srv_room_last_messages (struct GNUNET_MESSENGER_SrvRoom *room,
627 struct GNUNET_MESSENGER_SrvHandle *handle) 627 struct GNUNET_MESSENGER_SrvHandle *handle)
628{ 628{
629 GNUNET_assert(room); 629 GNUNET_assert(room);
630 630
@@ -639,7 +639,7 @@ merge_next:
639 if (!hash) 639 if (!hash)
640 return; 640 return;
641 641
642 send_room_message (room, handle, create_message_merge (hash)); 642 send_srv_room_message (room, handle, create_message_merge (hash));
643 goto merge_next; 643 goto merge_next;
644} 644}
645 645
@@ -647,7 +647,7 @@ void
647callback_room_deletion (struct GNUNET_MESSENGER_SrvRoom *room, 647callback_room_deletion (struct GNUNET_MESSENGER_SrvRoom *room,
648 const struct GNUNET_HashCode *hash) 648 const struct GNUNET_HashCode *hash)
649{ 649{
650 if (GNUNET_OK != delete_store_message (get_room_message_store(room), hash)) 650 if (GNUNET_OK != delete_store_message (get_srv_room_message_store(room), hash))
651 { 651 {
652 GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "Deletion of message failed! (%s)\n", GNUNET_h2s(hash)); 652 GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "Deletion of message failed! (%s)\n", GNUNET_h2s(hash));
653 return; 653 return;
@@ -661,14 +661,14 @@ callback_room_merge (struct GNUNET_MESSENGER_SrvRoom *room,
661 if (!room->host) 661 if (!room->host)
662 return; 662 return;
663 663
664 send_room_message (room, room->host, create_message_merge (hash)); 664 send_srv_room_message (room, room->host, create_message_merge (hash));
665} 665}
666 666
667int 667int
668delete_room_message (struct GNUNET_MESSENGER_SrvRoom *room, 668delete_srv_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
669 struct GNUNET_MESSENGER_MemberSession *session, 669 struct GNUNET_MESSENGER_MemberSession *session,
670 const struct GNUNET_HashCode *hash, 670 const struct GNUNET_HashCode *hash,
671 const struct GNUNET_TIME_Relative delay) 671 const struct GNUNET_TIME_Relative delay)
672{ 672{
673 GNUNET_assert((room) && (session) && (hash)); 673 GNUNET_assert((room) && (session) && (hash));
674 674
@@ -680,7 +680,7 @@ delete_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
680 return GNUNET_SYSERR; 680 return GNUNET_SYSERR;
681 } 681 }
682 682
683 struct GNUNET_MESSENGER_MessageStore *message_store = get_room_message_store(room); 683 struct GNUNET_MESSENGER_MessageStore *message_store = get_srv_room_message_store(room);
684 684
685 const struct GNUNET_MESSENGER_Message *message = get_store_message(message_store, hash); 685 const struct GNUNET_MESSENGER_Message *message = get_store_message(message_store, hash);
686 686
@@ -695,7 +695,7 @@ delete_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
695 return GNUNET_NO; 695 return GNUNET_NO;
696 } 696 }
697 697
698 struct GNUNET_MESSENGER_OperationStore *operation_store = get_room_operation_store(room); 698 struct GNUNET_MESSENGER_OperationStore *operation_store = get_srv_room_operation_store(room);
699 699
700 if (GNUNET_OK != use_store_operation(operation_store, hash, GNUNET_MESSENGER_OP_DELETE, delay)) 700 if (GNUNET_OK != use_store_operation(operation_store, hash, GNUNET_MESSENGER_OP_DELETE, delay))
701 { 701 {
@@ -707,7 +707,7 @@ delete_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
707} 707}
708 708
709struct GNUNET_CADET_Handle* 709struct GNUNET_CADET_Handle*
710get_room_cadet (struct GNUNET_MESSENGER_SrvRoom *room) 710get_srv_room_cadet (struct GNUNET_MESSENGER_SrvRoom *room)
711{ 711{
712 GNUNET_assert(room); 712 GNUNET_assert(room);
713 713
@@ -715,7 +715,7 @@ get_room_cadet (struct GNUNET_MESSENGER_SrvRoom *room)
715} 715}
716 716
717const struct GNUNET_HashCode* 717const struct GNUNET_HashCode*
718get_room_key (const struct GNUNET_MESSENGER_SrvRoom *room) 718get_srv_room_key (const struct GNUNET_MESSENGER_SrvRoom *room)
719{ 719{
720 GNUNET_assert(room); 720 GNUNET_assert(room);
721 721
@@ -723,8 +723,8 @@ get_room_key (const struct GNUNET_MESSENGER_SrvRoom *room)
723} 723}
724 724
725const struct GNUNET_MESSENGER_SrvTunnel* 725const struct GNUNET_MESSENGER_SrvTunnel*
726get_room_tunnel (const struct GNUNET_MESSENGER_SrvRoom *room, 726get_srv_room_tunnel (const struct GNUNET_MESSENGER_SrvRoom *room,
727 const struct GNUNET_PeerIdentity *peer) 727 const struct GNUNET_PeerIdentity *peer)
728{ 728{
729 GNUNET_assert((room) && (peer)); 729 GNUNET_assert((room) && (peer));
730 730
@@ -738,7 +738,7 @@ request_room_message_step (struct GNUNET_MESSENGER_SrvRoom *room,
738 GNUNET_MESSENGER_MessageRequestCallback callback, 738 GNUNET_MESSENGER_MessageRequestCallback callback,
739 void* cls) 739 void* cls)
740{ 740{
741 struct GNUNET_MESSENGER_MessageStore *message_store = get_room_message_store(room); 741 struct GNUNET_MESSENGER_MessageStore *message_store = get_srv_room_message_store(room);
742 742
743 const struct GNUNET_MESSENGER_MessageLink *link = get_store_message_link( 743 const struct GNUNET_MESSENGER_MessageLink *link = get_store_message_link(
744 message_store, hash, GNUNET_YES 744 message_store, hash, GNUNET_YES
@@ -771,11 +771,11 @@ forward:
771} 771}
772 772
773int 773int
774request_room_message (struct GNUNET_MESSENGER_SrvRoom *room, 774request_srv_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
775 const struct GNUNET_HashCode *hash, 775 const struct GNUNET_HashCode *hash,
776 const struct GNUNET_MESSENGER_MemberSession *session, 776 const struct GNUNET_MESSENGER_MemberSession *session,
777 GNUNET_MESSENGER_MessageRequestCallback callback, 777 GNUNET_MESSENGER_MessageRequestCallback callback,
778 void* cls) 778 void* cls)
779{ 779{
780 GNUNET_assert((room) && (hash)); 780 GNUNET_assert((room) && (hash));
781 781
@@ -804,7 +804,7 @@ callback_room_disconnect (struct GNUNET_MESSENGER_SrvRoom *room,
804 return; 804 return;
805 805
806 if (GNUNET_YES == contains_list_tunnels (&(room->basement), &identity)) 806 if (GNUNET_YES == contains_list_tunnels (&(room->basement), &identity))
807 send_room_message (room, room->host, create_message_miss (&identity)); 807 send_srv_room_message (room, room->host, create_message_miss (&identity));
808} 808}
809 809
810int 810int
@@ -819,7 +819,7 @@ callback_verify_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
819 return GNUNET_SYSERR; 819 return GNUNET_SYSERR;
820 } 820 }
821 821
822 struct GNUNET_MESSENGER_MessageStore *message_store = get_room_message_store(room); 822 struct GNUNET_MESSENGER_MessageStore *message_store = get_srv_room_message_store(room);
823 823
824 const struct GNUNET_MESSENGER_Message *previous = get_store_message(message_store, &(message->header.previous)); 824 const struct GNUNET_MESSENGER_Message *previous = get_store_message(message_store, &(message->header.previous));
825 825
@@ -849,7 +849,7 @@ idle_request_room_messages (void *cls)
849 849
850 room->idle = NULL; 850 room->idle = NULL;
851 851
852 struct GNUNET_MESSENGER_OperationStore *operation_store = get_room_operation_store(room); 852 struct GNUNET_MESSENGER_OperationStore *operation_store = get_srv_room_operation_store(room);
853 const struct GNUNET_HashCode *hash = get_message_state_merge_hash(&(room->state)); 853 const struct GNUNET_HashCode *hash = get_message_state_merge_hash(&(room->state));
854 854
855 if ((hash) && 855 if ((hash) &&
@@ -870,14 +870,14 @@ idle_request_room_messages (void *cls)
870} 870}
871 871
872void 872void
873solve_room_member_collisions (struct GNUNET_MESSENGER_SrvRoom *room, 873solve_srv_room_member_collisions (struct GNUNET_MESSENGER_SrvRoom *room,
874 const struct GNUNET_IDENTITY_PublicKey *public_key, 874 const struct GNUNET_IDENTITY_PublicKey *public_key,
875 const struct GNUNET_ShortHashCode *member_id, 875 const struct GNUNET_ShortHashCode *member_id,
876 struct GNUNET_TIME_Absolute timestamp) 876 struct GNUNET_TIME_Absolute timestamp)
877{ 877{
878 GNUNET_assert ((room) && (public_key) && (member_id)); 878 GNUNET_assert ((room) && (public_key) && (member_id));
879 879
880 struct GNUNET_MESSENGER_MemberStore *member_store = get_room_member_store(room); 880 struct GNUNET_MESSENGER_MemberStore *member_store = get_srv_room_member_store(room);
881 struct GNUNET_MESSENGER_Member *member = get_store_member(member_store, member_id); 881 struct GNUNET_MESSENGER_Member *member = get_store_member(member_store, member_id);
882 882
883 if ((!member) || (1 >= GNUNET_CONTAINER_multihashmap_size(member->sessions))) 883 if ((!member) || (1 >= GNUNET_CONTAINER_multihashmap_size(member->sessions)))
@@ -888,13 +888,13 @@ solve_room_member_collisions (struct GNUNET_MESSENGER_SrvRoom *room,
888 888
889 for (element = handles->head; element; element = element->next) 889 for (element = handles->head; element; element = element->next)
890 { 890 {
891 if (0 != GNUNET_memcmp(member_id, get_handle_member_id(element->handle, get_room_key(room)))) 891 if (0 != GNUNET_memcmp(member_id, get_srv_handle_member_id(element->handle, get_srv_room_key(room))))
892 continue; 892 continue;
893 893
894 if (0 == GNUNET_memcmp(public_key, &(get_handle_ego(element->handle)->pub))) 894 if (0 == GNUNET_memcmp(public_key, &(get_srv_handle_ego(element->handle)->pub)))
895 continue; 895 continue;
896 896
897 struct GNUNET_MESSENGER_MemberSession *session = get_member_session(member, &(get_handle_ego(element->handle)->pub)); 897 struct GNUNET_MESSENGER_MemberSession *session = get_member_session(member, &(get_srv_handle_ego(element->handle)->pub));
898 898
899 if (!session) 899 if (!session)
900 continue; 900 continue;
@@ -907,12 +907,12 @@ solve_room_member_collisions (struct GNUNET_MESSENGER_SrvRoom *room,
907 struct GNUNET_ShortHashCode random_id; 907 struct GNUNET_ShortHashCode random_id;
908 generate_free_member_id (&random_id, member_store->members); 908 generate_free_member_id (&random_id, member_store->members);
909 909
910 send_room_message(room, element->handle, create_message_id(&random_id)); 910 send_srv_room_message(room, element->handle, create_message_id(&random_id));
911 } 911 }
912} 912}
913 913
914void 914void
915rebuild_room_basement_structure (struct GNUNET_MESSENGER_SrvRoom *room) 915rebuild_srv_room_basement_structure (struct GNUNET_MESSENGER_SrvRoom *room)
916{ 916{
917 GNUNET_assert(room); 917 GNUNET_assert(room);
918 918
@@ -961,8 +961,8 @@ rebuild_room_basement_structure (struct GNUNET_MESSENGER_SrvRoom *room)
961static void 961static void
962handle_room_messages (struct GNUNET_MESSENGER_SrvRoom *room) 962handle_room_messages (struct GNUNET_MESSENGER_SrvRoom *room)
963{ 963{
964 struct GNUNET_MESSENGER_MessageStore *message_store = get_room_message_store(room); 964 struct GNUNET_MESSENGER_MessageStore *message_store = get_srv_room_message_store(room);
965 struct GNUNET_MESSENGER_MemberStore *member_store = get_room_member_store(room); 965 struct GNUNET_MESSENGER_MemberStore *member_store = get_srv_room_member_store(room);
966 966
967 while (room->handling.head) 967 while (room->handling.head)
968 { 968 {
@@ -996,7 +996,7 @@ update_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
996{ 996{
997 GNUNET_assert((room) && (message) && (hash)); 997 GNUNET_assert((room) && (message) && (hash));
998 998
999 struct GNUNET_MESSENGER_OperationStore *operation_store = get_room_operation_store(room); 999 struct GNUNET_MESSENGER_OperationStore *operation_store = get_srv_room_operation_store(room);
1000 1000
1001 const int requested = (GNUNET_MESSENGER_OP_REQUEST == get_store_operation_type(operation_store, hash)? 1001 const int requested = (GNUNET_MESSENGER_OP_REQUEST == get_store_operation_type(operation_store, hash)?
1002 GNUNET_YES : GNUNET_NO 1002 GNUNET_YES : GNUNET_NO
@@ -1005,11 +1005,11 @@ update_room_message (struct GNUNET_MESSENGER_SrvRoom *room,
1005 if (GNUNET_YES == requested) 1005 if (GNUNET_YES == requested)
1006 cancel_store_operation(operation_store, hash); 1006 cancel_store_operation(operation_store, hash);
1007 1007
1008 struct GNUNET_MESSENGER_MessageStore *message_store = get_room_message_store(room); 1008 struct GNUNET_MESSENGER_MessageStore *message_store = get_srv_room_message_store(room);
1009 1009
1010 const struct GNUNET_MESSENGER_Message *old_message = get_store_message (message_store, hash); 1010 const struct GNUNET_MESSENGER_Message *old_message = get_store_message (message_store, hash);
1011 1011
1012 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Handle a message in room (%s).\n", GNUNET_h2s (get_room_key(room))); 1012 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Handle a message in room (%s).\n", GNUNET_h2s (get_srv_room_key(room)));
1013 1013
1014 if ((old_message) || (GNUNET_OK != put_store_message (message_store, hash, message))) 1014 if ((old_message) || (GNUNET_OK != put_store_message (message_store, hash, message)))
1015 { 1015 {
@@ -1087,7 +1087,7 @@ callback_room_handle_message (struct GNUNET_MESSENGER_SrvRoom *room,
1087 const struct GNUNET_MESSENGER_Message *message, 1087 const struct GNUNET_MESSENGER_Message *message,
1088 const struct GNUNET_HashCode *hash) 1088 const struct GNUNET_HashCode *hash)
1089{ 1089{
1090 struct GNUNET_MESSENGER_MemberStore *member_store = get_room_member_store(room); 1090 struct GNUNET_MESSENGER_MemberStore *member_store = get_srv_room_member_store(room);
1091 struct GNUNET_MESSENGER_Member *member = get_store_member_of(member_store, message); 1091 struct GNUNET_MESSENGER_Member *member = get_store_member_of(member_store, message);
1092 1092
1093 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Callback for message (%s)\n", GNUNET_h2s (hash)); 1093 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Callback for message (%s)\n", GNUNET_h2s (hash));
@@ -1169,11 +1169,11 @@ get_room_data_subdir (struct GNUNET_MESSENGER_SrvRoom *room,
1169{ 1169{
1170 GNUNET_assert((room) && (dir)); 1170 GNUNET_assert((room) && (dir));
1171 1171
1172 GNUNET_asprintf (dir, "%s%s%c%s%c", room->service->dir, "rooms", DIR_SEPARATOR, GNUNET_h2s (get_room_key(room)), DIR_SEPARATOR); 1172 GNUNET_asprintf (dir, "%s%s%c%s%c", room->service->dir, "rooms", DIR_SEPARATOR, GNUNET_h2s (get_srv_room_key(room)), DIR_SEPARATOR);
1173} 1173}
1174 1174
1175void 1175void
1176load_room (struct GNUNET_MESSENGER_SrvRoom *room) 1176load_srv_room (struct GNUNET_MESSENGER_SrvRoom *room)
1177{ 1177{
1178 GNUNET_assert(room); 1178 GNUNET_assert(room);
1179 1179
@@ -1182,9 +1182,9 @@ load_room (struct GNUNET_MESSENGER_SrvRoom *room)
1182 1182
1183 if (GNUNET_YES == GNUNET_DISK_directory_test (room_dir, GNUNET_YES)) 1183 if (GNUNET_YES == GNUNET_DISK_directory_test (room_dir, GNUNET_YES))
1184 { 1184 {
1185 load_member_store (get_room_member_store(room), room_dir); 1185 load_member_store (get_srv_room_member_store(room), room_dir);
1186 load_message_store (get_room_message_store(room), room_dir); 1186 load_message_store (get_srv_room_message_store(room), room_dir);
1187 load_operation_store(get_room_operation_store(room), room_dir); 1187 load_operation_store(get_srv_room_operation_store(room), room_dir);
1188 1188
1189 char *basement_file; 1189 char *basement_file;
1190 GNUNET_asprintf (&basement_file, "%s%s", room_dir, "basement.list"); 1190 GNUNET_asprintf (&basement_file, "%s%s", room_dir, "basement.list");
@@ -1199,7 +1199,7 @@ load_room (struct GNUNET_MESSENGER_SrvRoom *room)
1199} 1199}
1200 1200
1201void 1201void
1202save_room (struct GNUNET_MESSENGER_SrvRoom *room) 1202save_srv_room (struct GNUNET_MESSENGER_SrvRoom *room)
1203{ 1203{
1204 GNUNET_assert(room); 1204 GNUNET_assert(room);
1205 1205
@@ -1209,9 +1209,9 @@ save_room (struct GNUNET_MESSENGER_SrvRoom *room)
1209 if ((GNUNET_YES == GNUNET_DISK_directory_test (room_dir, GNUNET_NO)) || 1209 if ((GNUNET_YES == GNUNET_DISK_directory_test (room_dir, GNUNET_NO)) ||
1210 (GNUNET_OK == GNUNET_DISK_directory_create (room_dir))) 1210 (GNUNET_OK == GNUNET_DISK_directory_create (room_dir)))
1211 { 1211 {
1212 save_member_store(get_room_member_store(room), room_dir); 1212 save_member_store(get_srv_room_member_store(room), room_dir);
1213 save_message_store (get_room_message_store(room), room_dir); 1213 save_message_store (get_srv_room_message_store(room), room_dir);
1214 save_operation_store(get_room_operation_store(room), room_dir); 1214 save_operation_store(get_srv_room_operation_store(room), room_dir);
1215 1215
1216 char *basement_file; 1216 char *basement_file;
1217 GNUNET_asprintf (&basement_file, "%s%s", room_dir, "basement.list"); 1217 GNUNET_asprintf (&basement_file, "%s%s", room_dir, "basement.list");
@@ -1226,7 +1226,7 @@ save_room (struct GNUNET_MESSENGER_SrvRoom *room)
1226} 1226}
1227 1227
1228void 1228void
1229remove_room (struct GNUNET_MESSENGER_SrvRoom *room) 1229remove_srv_room (struct GNUNET_MESSENGER_SrvRoom *room)
1230{ 1230{
1231 GNUNET_assert(room); 1231 GNUNET_assert(room);
1232 1232