aboutsummaryrefslogtreecommitdiff
path: root/src/rps
diff options
context:
space:
mode:
authorJulius Bünger <buenger@mytum.de>2016-05-14 17:29:48 +0000
committerJulius Bünger <buenger@mytum.de>2016-05-14 17:29:48 +0000
commitda72f158c616fe40c5b254e5db78ef5884a0f525 (patch)
tree4c6529c3a47542d2eecbe6dae81301a18446f6c9 /src/rps
parent2e9c33a97aaf0431f6c79ba87597e052b7c95e1b (diff)
downloadgnunet-da72f158c616fe40c5b254e5db78ef5884a0f525.tar.gz
gnunet-da72f158c616fe40c5b254e5db78ef5884a0f525.zip
-rps: fixed storing valid peers
Diffstat (limited to 'src/rps')
-rw-r--r--src/rps/gnunet-service-rps_peers.c37
1 files changed, 6 insertions, 31 deletions
diff --git a/src/rps/gnunet-service-rps_peers.c b/src/rps/gnunet-service-rps_peers.c
index 2bbb8d705..93c9bef86 100644
--- a/src/rps/gnunet-service-rps_peers.c
+++ b/src/rps/gnunet-service-rps_peers.c
@@ -709,33 +709,6 @@ mq_notify_sent_cb (void *cls)
709} 709}
710 710
711/** 711/**
712 * @brief Clear the stored valid peers.
713 */
714static void
715clear_valid_peer_storage ()
716{
717 struct GNUNET_DISK_FileHandle *fh;
718
719 if (GNUNET_OK != GNUNET_DISK_file_test (filename_valid_peers))
720 {
721 return;
722 }
723 fh = GNUNET_DISK_file_open (filename_valid_peers,
724 GNUNET_DISK_OPEN_WRITE,
725 GNUNET_DISK_PERM_USER_READ |
726 GNUNET_DISK_PERM_USER_WRITE);
727 if (NULL == fh)
728 {
729 LOG (GNUNET_ERROR_TYPE_WARNING,
730 "Not able to clear file `%s' containing valid peers\n",
731 filename_valid_peers);
732 return;
733 }
734 GNUNET_DISK_file_write (fh, "", 0);
735 GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fh));
736}
737
738/**
739 * @brief Iterator function for #store_valid_peers. 712 * @brief Iterator function for #store_valid_peers.
740 * 713 *
741 * Implements #GNUNET_CONTAINER_PeerMapIterator. 714 * Implements #GNUNET_CONTAINER_PeerMapIterator.
@@ -789,11 +762,9 @@ store_valid_peers ()
789 { 762 {
790 GNUNET_break (0); 763 GNUNET_break (0);
791 } 764 }
792 clear_valid_peer_storage ();
793 fh = GNUNET_DISK_file_open (filename_valid_peers, 765 fh = GNUNET_DISK_file_open (filename_valid_peers,
794 GNUNET_DISK_OPEN_WRITE | 766 GNUNET_DISK_OPEN_WRITE |
795 GNUNET_DISK_OPEN_CREATE | 767 GNUNET_DISK_OPEN_CREATE,
796 GNUNET_DISK_OPEN_APPEND,
797 GNUNET_DISK_PERM_USER_READ | 768 GNUNET_DISK_PERM_USER_READ |
798 GNUNET_DISK_PERM_USER_WRITE); 769 GNUNET_DISK_PERM_USER_WRITE);
799 if (NULL == fh) 770 if (NULL == fh)
@@ -881,7 +852,7 @@ restore_valid_peers ()
881 } 852 }
882 fh = GNUNET_DISK_file_open (filename_valid_peers, 853 fh = GNUNET_DISK_file_open (filename_valid_peers,
883 GNUNET_DISK_OPEN_READ, 854 GNUNET_DISK_OPEN_READ,
884 GNUNET_DISK_PERM_USER_READ); 855 GNUNET_DISK_PERM_NONE);
885 GNUNET_assert (NULL != fh); 856 GNUNET_assert (NULL != fh);
886 GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_handle_size (fh, &file_size)); 857 GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_handle_size (fh, &file_size));
887 num_peers = file_size / 53; 858 num_peers = file_size / 53;
@@ -897,6 +868,10 @@ restore_valid_peers ()
897 "Restored valid peer %s from disk\n", 868 "Restored valid peer %s from disk\n",
898 GNUNET_i2s_full (peer)); 869 GNUNET_i2s_full (peer));
899 } 870 }
871 LOG (GNUNET_ERROR_TYPE_DEBUG,
872 "num_peers: %" PRIu32 ", _size (valid_peers): %u\n",
873 num_peers,
874 GNUNET_CONTAINER_multipeermap_size (valid_peers));
900 GNUNET_assert (num_peers == GNUNET_CONTAINER_multipeermap_size (valid_peers)); 875 GNUNET_assert (num_peers == GNUNET_CONTAINER_multipeermap_size (valid_peers));
901 GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fh)); 876 GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fh));
902 LOG (GNUNET_ERROR_TYPE_DEBUG, 877 LOG (GNUNET_ERROR_TYPE_DEBUG,