diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-03-21 17:22:21 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-03-21 17:22:21 +0000 |
commit | 05f760855eafbfcfc1f99e290f8a1a28b399b686 (patch) | |
tree | 56610e6595478109af1d35a90c7d1f82d0720c1c /src | |
parent | b99555d0cf6abbf74b4adab736658ed44ea2f3bd (diff) | |
download | gnunet-05f760855eafbfcfc1f99e290f8a1a28b399b686.tar.gz gnunet-05f760855eafbfcfc1f99e290f8a1a28b399b686.zip |
- remove name if no rec is left
Diffstat (limited to 'src')
-rw-r--r-- | src/namestore/gnunet-service-namestore.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/namestore/gnunet-service-namestore.c b/src/namestore/gnunet-service-namestore.c index 5647dd311..493d1f574 100644 --- a/src/namestore/gnunet-service-namestore.c +++ b/src/namestore/gnunet-service-namestore.c | |||
@@ -985,6 +985,7 @@ struct RemoveRecordContext | |||
985 | { | 985 | { |
986 | struct GNUNET_NAMESTORE_RecordData *rd; | 986 | struct GNUNET_NAMESTORE_RecordData *rd; |
987 | struct GNUNET_CRYPTO_RsaPrivateKey *pkey; | 987 | struct GNUNET_CRYPTO_RsaPrivateKey *pkey; |
988 | int remove_name; | ||
988 | uint16_t op_res; | 989 | uint16_t op_res; |
989 | }; | 990 | }; |
990 | 991 | ||
@@ -1046,6 +1047,26 @@ handle_record_remove_it (void *cls, | |||
1046 | return; | 1047 | return; |
1047 | } | 1048 | } |
1048 | 1049 | ||
1050 | if (rd_count-1 == 0) | ||
1051 | { | ||
1052 | struct GNUNET_CRYPTO_ShortHashCode pubkey_hash; | ||
1053 | GNUNET_CRYPTO_short_hash (zone_key, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &pubkey_hash); | ||
1054 | res = GSN_database->remove_records (GSN_database->cls, | ||
1055 | &pubkey_hash, | ||
1056 | name); | ||
1057 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1058 | "No records left for name `%s', removing name\n", | ||
1059 | name, res); | ||
1060 | if (GNUNET_OK != res) | ||
1061 | { | ||
1062 | /* Could put records into database */ | ||
1063 | rrc->op_res = 4; | ||
1064 | return; | ||
1065 | } | ||
1066 | rrc->op_res = 0; | ||
1067 | return; | ||
1068 | } | ||
1069 | |||
1049 | rd_count_new = rd_count -1; | 1070 | rd_count_new = rd_count -1; |
1050 | struct GNUNET_NAMESTORE_RecordData rd_new[rd_count_new]; | 1071 | struct GNUNET_NAMESTORE_RecordData rd_new[rd_count_new]; |
1051 | 1072 | ||