aboutsummaryrefslogtreecommitdiff
path: root/src/messenger/gnunet-service-messenger_member_session.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/messenger/gnunet-service-messenger_member_session.c')
-rw-r--r--src/messenger/gnunet-service-messenger_member_session.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/messenger/gnunet-service-messenger_member_session.c b/src/messenger/gnunet-service-messenger_member_session.c
index 636285d93..2e6eae59e 100644
--- a/src/messenger/gnunet-service-messenger_member_session.c
+++ b/src/messenger/gnunet-service-messenger_member_session.c
@@ -68,6 +68,7 @@ create_member_session (struct GNUNET_MESSENGER_Member *member,
68 68
69 init_list_messages(&(session->messages)); 69 init_list_messages(&(session->messages));
70 70
71 session->prev = NULL;
71 session->next = NULL; 72 session->next = NULL;
72 73
73 session->closed = GNUNET_NO; 74 session->closed = GNUNET_NO;
@@ -222,6 +223,7 @@ switch_member_session (struct GNUNET_MESSENGER_MemberSession *session,
222 copy_list_messages(&(next->messages), &(session->messages)); 223 copy_list_messages(&(next->messages), &(session->messages));
223 224
224 session->next = next; 225 session->next = next;
226 next->prev = session;
225 next->next = NULL; 227 next->next = NULL;
226 228
227 session->closed = GNUNET_YES; 229 session->closed = GNUNET_YES;
@@ -516,6 +518,14 @@ load_member_session (struct GNUNET_MESSENGER_Member *member, const char *directo
516 goto destroy_config; 518 goto destroy_config;
517 519
518 session = create_member_session(member, &key); 520 session = create_member_session(member, &key);
521
522 unsigned long long numeric_value;
523
524 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number(cfg, "session", "closed", &numeric_value))
525 session->closed = (GNUNET_YES == numeric_value? GNUNET_YES : GNUNET_NO);
526
527 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number(cfg, "session", "completed", &numeric_value))
528 session->completed = (GNUNET_YES == numeric_value? GNUNET_YES : GNUNET_NO);
519 } 529 }
520 530
521destroy_config: 531destroy_config:
@@ -599,6 +609,9 @@ load_member_session_next (struct GNUNET_MESSENGER_MemberSession *session, const
599 session->next = get_cycle_safe_next_session( 609 session->next = get_cycle_safe_next_session(
600 session, member? get_member_session (member, &next_key) : NULL 610 session, member? get_member_session (member, &next_key) : NULL
601 ); 611 );
612
613 if (session->next)
614 session->next->prev = session;
602 } 615 }
603 616
604destroy_config: 617destroy_config:
@@ -688,6 +701,9 @@ save_member_session (struct GNUNET_MESSENGER_MemberSession *session, const char
688 } 701 }
689 } 702 }
690 703
704 GNUNET_CONFIGURATION_set_value_number (cfg, "session", "closed", session->closed);
705 GNUNET_CONFIGURATION_set_value_number (cfg, "session", "completed", session->completed);
706
691 GNUNET_CONFIGURATION_write (cfg, config_file); 707 GNUNET_CONFIGURATION_write (cfg, config_file);
692 GNUNET_CONFIGURATION_destroy (cfg); 708 GNUNET_CONFIGURATION_destroy (cfg);
693 709