aboutsummaryrefslogtreecommitdiff
path: root/src/block/plugin_block_dht.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/block/plugin_block_dht.c')
-rw-r--r--src/block/plugin_block_dht.c83
1 files changed, 39 insertions, 44 deletions
diff --git a/src/block/plugin_block_dht.c b/src/block/plugin_block_dht.c
index 0e499b821..1fe51e1a3 100644
--- a/src/block/plugin_block_dht.c
+++ b/src/block/plugin_block_dht.c
@@ -50,14 +50,13 @@
50 */ 50 */
51static enum GNUNET_BLOCK_EvaluationResult 51static enum GNUNET_BLOCK_EvaluationResult
52block_plugin_dht_evaluate (void *cls, 52block_plugin_dht_evaluate (void *cls,
53 enum GNUNET_BLOCK_Type type, 53 enum GNUNET_BLOCK_Type type,
54 const GNUNET_HashCode *query, 54 const GNUNET_HashCode * query,
55 struct GNUNET_CONTAINER_BloomFilter **bf, 55 struct GNUNET_CONTAINER_BloomFilter **bf,
56 int32_t bf_mutator, 56 int32_t bf_mutator,
57 const void *xquery, 57 const void *xquery,
58 size_t xquery_size, 58 size_t xquery_size,
59 const void *reply_block, 59 const void *reply_block, size_t reply_block_size)
60 size_t reply_block_size)
61{ 60{
62 switch (type) 61 switch (type)
63 { 62 {
@@ -67,7 +66,7 @@ block_plugin_dht_evaluate (void *cls,
67 if (reply_block_size == 0) 66 if (reply_block_size == 0)
68 return GNUNET_BLOCK_EVALUATION_REQUEST_VALID; 67 return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
69 GNUNET_break (NULL == *bf); 68 GNUNET_break (NULL == *bf);
70 return GNUNET_BLOCK_EVALUATION_OK_LAST; 69 return GNUNET_BLOCK_EVALUATION_OK_LAST;
71 default: 70 default:
72 return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED; 71 return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED;
73 } 72 }
@@ -87,10 +86,9 @@ block_plugin_dht_evaluate (void *cls,
87 */ 86 */
88static int 87static int
89block_plugin_dht_get_key (void *cls, 88block_plugin_dht_get_key (void *cls,
90 enum GNUNET_BLOCK_Type type, 89 enum GNUNET_BLOCK_Type type,
91 const void *block, 90 const void *block,
92 size_t block_size, 91 size_t block_size, GNUNET_HashCode * key)
93 GNUNET_HashCode *key)
94{ 92{
95 const struct GNUNET_MessageHeader *msg; 93 const struct GNUNET_MessageHeader *msg;
96 const struct GNUNET_HELLO_Message *hello; 94 const struct GNUNET_HELLO_Message *hello;
@@ -99,37 +97,34 @@ block_plugin_dht_get_key (void *cls,
99 if (type != GNUNET_BLOCK_TYPE_DHT_HELLO) 97 if (type != GNUNET_BLOCK_TYPE_DHT_HELLO)
100 return GNUNET_SYSERR; 98 return GNUNET_SYSERR;
101 if (block_size < sizeof (struct GNUNET_MessageHeader)) 99 if (block_size < sizeof (struct GNUNET_MessageHeader))
102 { 100 {
103 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, 101 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
104 "block-dht", 102 "block-dht",
105 _("Block not of type %u\n"), 103 _("Block not of type %u\n"), GNUNET_BLOCK_TYPE_DHT_HELLO);
106 GNUNET_BLOCK_TYPE_DHT_HELLO); 104 return GNUNET_NO;
107 return GNUNET_NO; 105 }
108 }
109 msg = block; 106 msg = block;
110 if (block_size != ntohs (msg->size)) 107 if (block_size != ntohs (msg->size))
111 { 108 {
112 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, 109 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
113 "block-dht", 110 "block-dht",
114 _("Size mismatch for block\n"), 111 _("Size mismatch for block\n"),
115 GNUNET_BLOCK_TYPE_DHT_HELLO); 112 GNUNET_BLOCK_TYPE_DHT_HELLO);
116 return GNUNET_NO; 113 return GNUNET_NO;
117 } 114 }
118 hello = block; 115 hello = block;
119 pid = (struct GNUNET_PeerIdentity*) key; 116 pid = (struct GNUNET_PeerIdentity *) key;
120 if (GNUNET_OK != 117 if (GNUNET_OK != GNUNET_HELLO_get_id (hello, pid))
121 GNUNET_HELLO_get_id (hello, 118 {
122 pid)) 119 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
123 { 120 "block-dht",
124 GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, 121 _("Block of type %u is malformed\n"),
125 "block-dht", 122 GNUNET_BLOCK_TYPE_DHT_HELLO);
126 _("Block of type %u is malformed\n"), 123 return GNUNET_NO;
127 GNUNET_BLOCK_TYPE_DHT_HELLO); 124 }
128 return GNUNET_NO;
129 }
130 return GNUNET_OK; 125 return GNUNET_OK;
131} 126}
132 127
133 128
134/** 129/**
135 * Entry point for the plugin. 130 * Entry point for the plugin.
@@ -137,11 +132,11 @@ block_plugin_dht_get_key (void *cls,
137void * 132void *
138libgnunet_plugin_block_dht_init (void *cls) 133libgnunet_plugin_block_dht_init (void *cls)
139{ 134{
140 static enum GNUNET_BLOCK_Type types[] = 135 static enum GNUNET_BLOCK_Type types[] =
141 { 136 {
142 GNUNET_BLOCK_TYPE_DHT_HELLO, 137 GNUNET_BLOCK_TYPE_DHT_HELLO,
143 GNUNET_BLOCK_TYPE_ANY /* end of list */ 138 GNUNET_BLOCK_TYPE_ANY /* end of list */
144 }; 139 };
145 struct GNUNET_BLOCK_PluginFunctions *api; 140 struct GNUNET_BLOCK_PluginFunctions *api;
146 141
147 api = GNUNET_malloc (sizeof (struct GNUNET_BLOCK_PluginFunctions)); 142 api = GNUNET_malloc (sizeof (struct GNUNET_BLOCK_PluginFunctions));